İlginizi Çekebilir
Typescript-Nedir-2
  1. Ana Sayfa
  2. Yazılım
  3. Bir Yazılım Projesine Başlamak- Tavsiyeler #1
Trendlerdeki Yazı
kz_g_n

Bir Yazılım Projesine Başlamak- Tavsiyeler #1

Merhabalar. Bu yazımda işin bir alaylısı olarak tecrübelerimden derlediğim bir yazılım projesine başlamak - dikkat edilmesi gerekenler  konusuna değinmek istedim.  Bu yazıda göreceğiniz şeylerin her birini bir yerde bulmanızın imkansız olduğu düşünüyorum. Sayısız araştırmalar yaparak ve sayısız proje geliştirerek geçirdiğim 5 yıldan fazla sürede elde ettiğim tüm püf noktaları paylaşıyor olacağım.

Bir Yazılım Projesine Başlamak
1

Merhabalar. Bu yazımda işin bir alaylısı olarak tecrübelerimden derlediğim bir yazılım projesine başlamak – dikkat edilmesi gerekenler  konusuna değinmek istedim.  Bu yazıda göreceğiniz şeylerin her birini bir yerde bulmanızın imkansız olduğu düşünüyorum. Sayısız araştırmalar yaparak ve sayısız proje geliştirerek geçirdiğim 5 yıldan fazla sürede elde ettiğim tüm püf noktaları paylaşıyor olacağım.

Gerek üniversite zamanlarında işi öğrenmek için yazdığım projelerden, bir zamanlar var olan kendi şirketimde geliştirdiğim projelerden ve iş hayatında geliştirdiğim ya da destek verdiğim projelerin tamamında geçerli olan püf noktaları vereceğim. Geliştirdiğim ve katkı sağladığım her projede “keşke bunu önceki projelerimde de kullansaydım.” dediğim noktalar. Bazı projelerim için bu o anda öğrendiğim ya da keşfettiğim şeyleri eklemek kolay olsada bazıları için imkansızdı. Çünkü proje hali hazırda bayağı ilerlemişti.

Bu tarz keşkeler zaten kaçınılmazdır. Aslında bu keşkeler gelişmekte ve öğrenmeye devam edebildiğimizin göstergesi değil midir?

Bir sorunu çözebilmek, bir tıkanıklığı açabilmek için kafa patlatıp güzel bir çözüm bulduğumuzda, önceki projelerimizde takılı kaldığımız noktaları da, bulduğumuz bu çözüm ile aşabileceğimizi fark ediyoruz değil mi? “Keşke o zamanda bu çözüm aklıma gelseydi” deriz içimizden. Bilmeliyiz ki bu cümleyi kurabiliyor isek bir adım daha ileri gidebilmişizdir. Bulduğumuz o çözümü zaten bulduğumuz anda bulmuş olmamız gerekiyordu. İşin içinde pişmek de aslında böyle bir şey.

Bir yazılım projesine başlamak her zaman çok hoş oluyor değil mi? Yeni aldığınız bir kitabın kapağını ilk kez açtığınızda burnunuza gelen o hoş kokunun verdiği his ile aynı. Hatta böyle eski projeleriniz içinde kaybolduğunuz, bug ayıklamak ya da hataları çözme ile geçen bir sürenin ardından yeni ve temiz bir yazılım projesine başlamak çok güzel bir his. Tabi ilerledikçe yine sarpa sarmalar başlayacak. Şurasını nasıl çözeceğim? Burada bunu yapsak nasıl olur? sorunsalları baş gösterecek… Aslında bu yazı serime bu sorunsalları biraz azaltma amacı da güdüyor.

Bir Yazılım Projesine Başlamak

Giriş kısmı biraz uzun oldu ama olsun. Bu teknik bir yazı olmadığından, biraz muhabbet tadında ve motive edici olmasında bir sorun yok bence.

Nasıl bir proje geliştirdiğimiz bu noktada önem arz ediyor. Örneğin ben genelde  sipariş takip, üretim takip gibi projeler geliştiriyorum. En genel adı ile ERP ve CRM tarzı progamlar. Uzmanlık alanım bu diyebilirim. Elbette kendimi yine de bu alanla sınırlamıyorum. Hobi olarak da farklı konularda da projeler çıkarmaya çalışıyorum.

Konu ERP ve CRM tarzı programlar olduğundan dolayı vereceğim tavsiyelerde en çok bu tarz projeler geliştirenler için faydalı olacaktır. Bir yazılım projesine başlamadan önce bu yazı serimin tamamnını mutlaka okumanızı tavsiye ederim.

KOD Mantığı Kullanmak

Stok, Cari, Personel, Kullanıcı, İş Emri, Sipariş, Teklif vs. gibi kavramlarda her zaman Kodlama mantığı kullanılmalıdır. StokKodu, CariKodu vs. şeklinde kodlamalar ile gidilmesi bir çok açıdan faydalıdır. Yerine göre hayati bir önem taşır. Bu başlığı açıklarken Stok Tanımlarını ele alalım. Diğer tanımlar için de bu açıklamalar geçerlidir.

 

 * Kod Mantığı Kullanmanın Amacı Nedir?

Kodlama mantığını kullanmadan bir stok kartı tanımladınız. Bu stok kartı ile işlemler yaptınız. Her yere bu stoğun adını kullandınız. Sonra bir şeyler oldu ve stoğun adını değiştirdiniz.

Bir gün, müdürünüz, adını değiştirdiğiniz stok (ürün) hakkında sizden raporlar istedi. Bu raporlarda örneğin, “Şu stoğumuzdan elde ettiğimiz kazanç nedir?”, “Bu stoğumuz hakkında gelen şikayetler nelerdir?” olsun. Bu stoğun adı ile database’de arattığınızda ne bulabileceksiniz? Ben size söyleyeyim. Hiçbir şey bulamayacaksınız. Her yerde stoğun adını kullandınız ve o her yerde kullandığınız adı değiştirdiniz. Eski adını hatırlıyorsanız soruları yanıtlayabilirsiniz ama hatırlayacağınızı hiç sanmıyorum.

Bazılarınız çıkacak “Bizde ID (Identity) alanını kullanırız o halde!” diyecek. Bende o zaman böyle düşünenlere şunu sorayım. Ya stoğu bilerek yada bilmeyerek silip yeniden eklediysek? Silmek zorunda kaldıysak? Biz değilde başak birisi sildiyse? O zaman her yerde kullandığım ID numarası da değişmiş olacak. Yine aynı soruna düşmüş olacağız.

Ancak bir kod kullandıysam… Stoğun adını değiştirsem de silip yeniden eklesem de stok kodu aynı olduğu sürece hiçbir sorun yaşamayacağım.

 

 * Hiyerarşik Yapı Kullanmaya Müsaittir

Eğer kodlama mantığını kullanır isek stokları rahatlıkla guruplayabiliriz.

Şirketimizde kullandığımız Sarf Stoklar için bir ana kod verelim ve bu ana kodda 010 olsun. Stok kodu 010 ile başlayan bir stok gördüğümüzde anında bunun bir sarf stok olduğunu artık anlayabiliriz. Bir alt kod daha verelim ve 001 diyelim. 001 ise Ofis Sarfları olsun. Son olarak da stoğun kendine bir kod verelim ve ona da 0001 diyelim. Stoğumuzun kendisi de A4 Kağıt olsun.

Bu A4 stoğunun kodu 010.001.0001 oldu. Şimdi bu stok koduna baktığımız anda bunun bir sarf stok olduğunu ve bu sarf stoğunun da ofiste kullanılan bir sarf olduğunu rahatlıkla anlayabiliriz.

Bu kısmı belirledik ve diğer stoklarımızı da tanımladık. Zımba, zımba teli, poşet dosya, mavi dosya, klasör vs. tüm stoklarımızı bu kodlama mantığına göre ekledik. Şimdi de Kalite biriminin kullandığı sarf stokları için bir gruplama verelim.

Stok ana kodumuz yine 010 ama bu sefer farklı birim için olduğundan alt kodunu değiştirip 002 yapalım. Stoğun kodu ise yine 0001 ‘en başlayacak. ekleyeceğimiz ilk stok da AAAA olsun.

Burada ayraç olarak ( – ) , ( . ) yada ( ‘ ‘ – boşluk )  kullanabiliriz. Hiç karakter kullanmadan da yapabilirsiniz ama okunabilirlik açısından kötü olacaktır ama veri boyutu açısından olumlu olacaktır.

  • 010 – Sarf Stoklar
  • 010.001 – Ofis Sarfları
  • 010.001.0001 – A4 Kağıdı
  • 010.001.0002 – Zımba Teli
  • 010.002 – Kalite Sarfları
  • 010.002.0001 – AAAA
  • 010.002.0002 – BBBB
  • 010.003 – Üretim Sarfları
  • 010.004 – Depo Sarfları
  • 020 – Ham Maddeler
  • 030 – Yarı Mamuller
  • 040 – Mamuller

Daha net anlaşılması için bir görsel ile de destekleyelim. Aşağıdaki görselde örnek bir stok kodunu görmektesiniz.

Bir Yazılım Projesine Başlamak -kod mantığını kullanma örnek görseli

Şimdi neden 010 ile başladık. Yani neden 001 değil yada neden 100 değil. Bu aslında biraz keyfi. Yani 001’den de başlayabilirdim ama 999 farklı ana kod açılmasını gerektirecek kadar çok stok bilgisi görmedim. Yani 010 ana koduna ve 001 alt koduna bağlı 999 tane farklı stoktan bahsediyorum… Belki dünya çapında iş yapan e-ticaret siteleri için 999 bile yetmeyebilir ve ana kod 0001’den başlayabilir. Bu biraz şirketlerin yaptığı işe bağlı. Bunu siz belirleyeceksiniz.

Aynı şekilde alt kod içinde geçerli çok fazla alt koda ihtiyaç yok ise iki karakter de olabilir tek karakterde. Ve yine aynı şeyler stoğun kodu içinde geçerli.

 

 * Rakam Kullanmak Neden Önemlidir?

Bu konu hakkında son olarak rakam değilde harf de kullanabilirsiniz. Ancak rakam kullanmanızı tavsiye ederim. Burası aslında ince bir nokta. Verilerin saklanma şekli ile ilgili. Veri tipi int yada string olması bir anlam ifade etmiyor rakamlar için. Çok büyük bir fark oluşturmasa da veri boyutu açısından olabildiğince daha az yer tutmasını istiyoruz. Bu sebeple de olabildiğince harf kullanmaktan kaçınıyoruz. Aynı zamanda Veritabanı için performans açısında da faydalı olacaktır..

Elbette her şirkette milyonlarca stok olmayacaktır. Belki bazılarında 100’ü bile geçmiyordur ama bu şekilde bir kodlama yapılması bence es geçilmemelidir.

 

Kodlama Mantığı sizin Hayal Gücünüze Bağlı

“Sadece stoklardan bahsettin. Diğerlerinde bunları nasıl kullanacağız?” diye düşünmüş olabilirsiniz. Aklınızdan şöyle bir geçmiş de olabilir. Kısaca bahsedeyim.

Cari bilgileri için örnek kodlama; Biliyorsunuz muhasebe de cariler 120 ve 320 olarak gruplanırlar. 120’li cariler Alıcılar olarak bilinir. 320’li cariler ise Satıcılar olarak bilinir. Fark ettiniz mi?

Ana kodumuz bu olacak elbette. Bir bakıma olmak zorunda diyebiliriz.  Şimdi ana kodumuz belli olduğuna göre alt kodumuz ne olabilir? Alt kod olarak ne belirlersek mantıklı olur? Aklınıza bir şey geldi mi? Türkiye’de yaşıyoruz. O halde alt kodumuzu şehir kodlarını verebiliriz. Son kodumuz ise zaten belli. Sıra numarası. O halde şöyle bir bakalım kodumuza.

KOD Mantığı Kullanmak - cari kodlama şekli örneği

Başka neyimiz vardı? Personel’ler var. Örnek bir personel kodu şekline bakalım…

Şirketteki tüm departmanların birer kodları olduğunu varsayalım. 01 Yönetim, 02 Muhasebe, 03 Finans vs. vs. Personellerimizi de çalıştığı departmanlara göre kodlayabiliriz. Burada şunu da söylemeden geçme olmak. Şirkette personellerin pozisyonları sürekli bir şekilde değişme eğilimi gösteriyor ise Personeller için bu şekilde bir kodlama sıkıntılı olabilir. Öyle bir durumda Personel’in mesleğine göre kodlama da yapılabilir. Aynı şekilde program kullanıcıları içinde bir kodlama yapılabilir.

Kod Mantığı Kullanmanın Amacı Nedir

İş Emirleri’nden de bahsetmiştik. O en basiti aslında… Aşağıda iki örnek vereyim.

  • 19-SP-256-0000001
    • 19 = Yıl
    • SP = Sipariş Evrak Serisi
    • 256 = Sipariş Evrak Sırası (Kaçıncı Sipariş)
    • 0000001 = Verilen İş Emrinin Sırası
  • IH-19-0000001
    • YD = Yurt Dışına üretim olduğu bilgisi (YI = Yurt İçi üretim, ST= Stoğa üretim)
    • 19 = Yıl
    • 0000001 = Verilen İş Emrinin Sırası

 

Bir Yazılım Projesine Başlamak Hakkında Son Olarak…

Bu ve bunlar gibi kodlamalar yapabilirsiniz. Gerisi artık sizin hayal gücünüze kalmış olacak. Projenize ve projeyi geliştirdiğiniz şirkete göre neler yapmanız gerektiğine siz karar vereceksiniz ki bu yazıdan sonra bu kararı vermek artık çok kolay olacak. En azından benim düşüncelerim bu yönde… 🙂

Projeniz küçük olsa da siz büyük düşünün. Geleceğe yönelik düşünün ve projelerinizi öyle hazırlayın. Hayal ettiklerinizi yazmaya çalışın. Yöntemler arayın. En güzel en mantıklı yöntemi bulun ve projelerinize göre uyarlayın. Kendinizi geliştirmediğiniz her an geride kalıyorsunuz. Siz geri gitmiyorsunuz, herkes ilerliyor….

Bu konuyu iyice anladığınızı düşünüyorum. Eğer anlamadığınız bir nokta var ise yorum olarak yazabilirsiniz. En kısa sürede cevap vereceğim…


Bir Yazılım Projesine Başlamak yazım ile yeni projeye başlarken dikkat edilmesi gerekenler yazı serisine başlamış olduk. Şimdilik bu kadar.

Eğer ilginizi çekebildiysem o zaman takipte kalın. Yeni bir yazının ne zaman geleceği belli değil.

Yazılım konusunda daha fazla içerik için tıklayabilirsiniz.

Yorum Yap

Yazar Hakkında

Liseden, Ağ Sistemleri ve Yönetimi bölümünden mezun oldum. Üniversiteden (2 yıllık), Bilgisayar Programcılığı bölümünden mezun oldum. Şuanda da AÖF, Yönetim Bilişim Sistemleri bölümünde okumaktayım. Uzmanlık alanlarım; Windows Sistemleri, HTML, CSS, C# ve SQL’dir. Hobi olarak uğraştığım genel konular, Photoshop, After Affects, Corel Draw’dır. Film, YABANCI dizi, Anime izlemeyi ve Manga okumayı severim. Arkadaşlarımla yürüyüş yapmayı ve grup olarak aktivitelere gitmeyi severim. Geri kalan zamanlarımın tümü bilgisayar karşısında geçer.

Yorum Yap

Yorumlar (2)

  1. Alper Karaman

    Görsellerle analtılması çok başarılı olmuş. Bu bizimle paylaştığın yazı sadece yazılım projesi için değil bir çok projede de kullanılabilecek bir temel. Çünkü stok sistemleri, çalışan kontrolleri ve herhangi bir ticari platformda bu tarz kodlamalar kullanılması gerekiyor. Ben çok faydalı ve anlaşılır buldum. Eline sağlık Mustafa

    • 9 ay önce

      Teşekkür ederim güzel yorumun için. Elimden geldiğinde bu tarz yazılar yazmaya ve tecrübelerimi paylaşmaya devam edeceğim. 🙂