Yazılımın Edindirdiği Tecrübeler [Yaşanmış Hikayeler] I
- Programlama dili sadece dildir. Hangi dili kullandığınızınönemi sadece o dilin size sunduğu teknik kolaylıklar (geliştirme ve yayımlama)kadar önemlidir.
- Tasarım desenlerinden ziyade asıl olan tasarımprensipleridir. Prensipler bir konunun genel kaidelerini, desenler ise birproblemin çözüm şeklini verir. Ne kadar çok desen bilirseniz, o kadar çokproblemlerin çözüm yollarını tecrübe etmiş olursunuz ama konuya ancak ve ancakprensipleri bildiğinizde hâkim olursunuz. (Teori = Prensip, Uygulama = Desen)
- Temiz kodlama yazılımın olmazsa olmazdır. Ne yazarsanız yazın, temiz yazın.
- Her kod mutlaka yeniden düzenlemeye (refactor) ihtiyaçduyar.
- Devredilebilir fakat sade kod, işlevsel ama karmaşası yüksekkoddan daha iyidir.
- Bakım maliyeti, geliştirme maliyetinden yüksek olan proje,hem mimarisel anlamda hem de proje yönetimi açısından başarısız bir projedir.
- Kontrolsüz güç, güç değildir. Gerçekleştirilen ufak birdeğişimin, oluşturacağı maliyet kestirilemeyen kod kontrollü ve yönetilebilir değildir. Kontrolün sizde olmadığı yazılım, sizi hiç olmadık zamanda yarı yolda bırakabilir.
- Merkezileştirin. Herşeyin merkezi bir yerden yönetilmesini sağlayın. Bu sayede hem daha hızlı, hem daha güvenli hem de bakımı kolay yazılım geliştirmiş olursunuz. Geliştirmesi ve yönetilmesimerkezileştirilmemiş olmayan kod, kontrolsüzdür.
- Standartları olmayan kodun binlerce standardı olur. En iyisitek bir standarda (yanlış da olsa) bağlı kalmaktadır.
- Sadece değişim değişmezdir. Yazılım asla bitmez.
- Bir işi bir kişi yapabilecek kadar sade ve basit, herkesinyaptığı her işi birbiriyle bağlayabilecek kadar esnek olun.
- Bir işi sadece ve sadece tek kişi yapsın. X tablosundan veriokuyan sadece ve sadece tek bir metodunuz olsun. Diğer metotlar bu metodukullanarak kendi işini yapsın.
- Önce doğru mimari kurgulayın. Kurguladığınız mimari hatalıkod geliştirebilmenizin önüne geçebilecek kadar sürecinize yardımcı olsun.
- Geliştirdiğiniz kodu mutlaka test edin. Daha henüz yazarkenkafanızdan derleyin. Kafanızda derleyemediğiniz kod, ne süreç olarak ne deteknik olarak net değildir.
- Her başarınızı mutlaka ödüllendirin. Kendinizi süreklimotive edin. Ama sakın kendi motivasyonunuzu başkalarına bırakmayın. Üstünüzdahi olsa!
- Gelişiminizi asla başkalarına endekslemeyin ve dolayısıylakimsenin sizin gelişimini engellemesine izin vermeyin.
- Öğretmek için öğrenin. Çevrenizdekilere öğrendiklerinizi aktarın.Fikir alış verişinde bulunun. Konuşunama amansız tartışmalara girmeyin.
- Beraber kod yazın (pair programming). Kod yazarken neyi niyeyaptığınızı mutlaka anlatın.
- Kodunuzu mutlaka dokümente edin. Bu hem daha sonra o kodu tekrarkullandığınızda sizin için, hem de sizden sonrakilerin sizi iyi anmaları içingereklidir.
- Kodunuzu, algoritmalarınızı sadeleştirin. Ne kadar az satıro kadar az sade, ne kadar açık kod o kadar anlaşılır demektir. Az ve açıklıkkonusunda ayarı mutlaka koruyun. Gereksiz yere kodu azaltmayın, açıkçabelirmeniz gereken yerleri mutlaka detaylandırın.
- Ne yazdığınızın bilincinde olun. Tam olarak hakimolmadığınız bir işe kalkışmayın. Eğer illa yazmanız gerekiyorsa, hakimolduğunuz bölümleri öncelikle hazırlayın.
- Hiçbir projeyi basite almayın. Her iş önemlidir.
- Hiçbir şeye garanti gözüyle bakmayın. Kontrol etmediğiniz hiçbir koda güvenmeyin.
- Ana fonksiyonalitelerinizi asla tek bir ürüne, kodabağlamayın. Alternatifleriniz olsun.
- Sabırlı olun. Uzun olanlardan kaçmayın. Sabredin ve sonunakadar gidin.
- Raporlanmamış iş bitmiş değildir. Bitmemiş iş sizindeğildir.
- Hayallerinizden ziyade planlarınız olsun. Mutlaka kağıt kalem alarak çalışın. Ana hatlarıyla ne yapacağınızı yazın,çizin, karalayın.
- Hayal gücünüz hiç bitmesin. Düşünün, sürekli düşünün. Büyük düşününün ve planlayın.
- İşinize odaklanın. AR-GE çalışmalarınızı işiniz için yapın. Bu sayade yaptığınız çalışmayı hem hayata geçirme fırsatınız olacaktır, hem de bu çalışma size iş hayatında katma değer sağyacaktır.
- Neyi araştırdığınızı mutlaka araştırma öncesinde belirleyin. Bilgi ucu bucağı olmayan bir denizdir. Her yeni öğrendiğiniz bilgi, size bilmediğiniz başka bilgilerinin varlığını gösterecektir. Araştırmanızın dağılmaması için, neyi araştırdığınızı unutmayın ve o araştırmayı sonuçlandırana kadar sadece ona yoğunlaşın.
Bu yazının devamına (Yazılımın Edindirdiği Tecrübeler [Yaşanmış Hikayeler] II) buradan ve Yazılımın Edindirdiği Tecrübeler [Yaşanmış Hikayeler] III‘e buradan ulabilirsiniz.
Geri bildirim: Yazılımın Edindirdiği Tecrübeler [Yaşanmış Hikayeler] II « Mehmet Özakan
Geri bildirim: Yazılımcının Gelişim Süreçleri / Kariyer Yolculuğu « Mehmet Özakan