Pragmatik Programcı — 1
Eğer kendinizi Pragmatik Programcı olarak adlandırıyorsanız, şöyle özellikleriniz olmalıdır;
- Bu yazı The Pragmatic Programmer kitabından anladığımın özetidir. Orjinal halini buradan alabilirsiniz.
Erken ve hızlı adapte olan: Teknolojiler ve teknikler için sezgileriniz olmalı ve bunları denemeyi sevmelisiniz.
Meraklı: Soru sormaktan çekinmemelisiniz.
Eleştirel düşünen: Gerçekleri elde etmeden verilenleri hemen almamalısınız.
Gerçekçi: Karşılaştığınız problemin altında yatan sebepleri anlamaya çalışmalısınız. Bu size karşılaştığınız şeylerin ne kadar zor olduğunu öğretir.
Her işte ustalaşan: Geniş bir teknoloji alanında kendinize yatırım yapın. Yaptığınız işte uzman olmanız gerekebilir ama yeni alanlara ve zorluklara her an gidebilecek gibi hazır olun.
Sonuç olarak;
1.Tavsiye: Zanaatınızla ilgilenin, ona yatırım yapın.
Yazılım geliştirmeyi iyi yapmaya özen göstermedikten sonra, onu yapmanın bir anlamı da kalmıyor aslında.
2.Tavsiye: Yaptığınız iş hakkında düşünün.
Bu düşünme işi tek seferlik bir pratik değildir. Bu süregiden, eleştirel bir değerlendirmedir ve her alınan kararda, her gün, her geliştirmede devam eder. Hiçbir zaman oto-pilota bağlama. Gerçek zamanda yaptığın iş üzerinde her zaman eleştirel ol ve hakkında düşün.
Sorumluluk Alın
Sorumluluk alma isteği her zaman bulunması gerekir. Bir şeylerin doğru yapılması için katkı sun. Kendi işini doğru yapmakla beraber, kontrolün dışındaki riskli durumlar için analiz yap.
İmkansız durumlar için sorumluluk almak zorunda değilsin, bunu da kendi etik ve yargılamalarına göre karar ver.
Hata yaptığın zaman(ki herkes hata yapar) dürüstçe kabul et ve başka yollar öner. Başkasını ve başka şeyi suçlama.
Satıcının senin için zamanında gelmesinde bir risk varsa, acil durum planın olsun. Eğer diskler bozulursa ve kodların versiyon yönetiminde değilse bu senin suçundur.
3.Tavsiye: Seçenekler sunun, sudan mazeretler uydurmayın.
Herhangi birine bir işin neden yapılamadığını, bozulduğunu veya durduğunu söylemeden önce, aynada kendinize söyleyin. Söyledikleriniz size mantıklı geliyor mu?
Karşı taraftan gelecek sorulara karşı hazırlıklı olun.
Neyin yapılamayacağını söylemek yerine durumu kurtarmak için neyin yapılabileceğini söyleyin. Kod çok kötü ve atılması mı gerekiyor? O zaman yeniden düzenlemenin(Refactor) ne olduğunu ve nasıl yapıldığını öğretin.
Yazılım Düzensizliği
Yazılımda düzensizlik olursa, bir süre sonra yazılım çürümesi meydana gelir. Peki yazılım çürümesi nasıl meydana gelir? Bunu tek kırık pencere örneğiyle açıklayabiliriz.
Tek bir kırık pencerenin bir süre tamir edilmeden kalması, orada yaşayanlara buranın terk edilmiş hissini aşılar. Bu da binanın önemsiz bir yer olduğu izlenimini verir. İnsanlar çöp atmaya başlar, duvar yazıları ortaya çıkar, ciddi zararlar verilmeye başlanır ve bir süre sonra bina tamir edilmeyecek hale gelir.
Kırık Pencere Teorisi birçok noktada halkın güvenliğini sağlayan ekiplere ilham olmuştur.
4.Tavsiye: Kırılmış pencerelerle ile yaşamayın.
Kötü tasarım, yanlış kararlar ve zayıf kodlama gibi kırık pencereleri tamirsiz bırakmayın. Bunları bulur bulmaz tamir edin. Zamanınız yoksa bunları takvimlendirin.
Projenizde ki kırık camları temizlemek için kimsenin zamanı olmadığını düşünüyorsanız, çöplükte yaşamaya hazırlanmanız gerekir ya da başka bir mahalleye taşınmanız gerekir. Düzensizliğin kazanmasına izin vermeyin.
Taş Çorbası ve Haşlanmış Kurbağa
Savaştan dönen ve aç olan 3 asker varmış, bir köye varmışlar. Köylülerde uzun süre savaşta sıkıntı çektikleri için kimse kapısını açmamış ve askerlere yiyecek bir şey vermemişler.
Kararlı bir asker biraz taş almış ve suyun içine atıp pişirmeye başlamış. Şaşıran köylüler sormuş. “Bu nedir?”.
“Taş çorbası” demiş asker.
Köylüler, “sadece bunu mu koydunuz”?
Asker: “Evet ama biraz havuç olsa daha iyi olurdu”
Köylüler hemen havuç getirmiş.
Asker: “Biraz patates olsaydı tadı daha güzel olurdu”.
Başka bir köylüde hemen patates getirmiş. Bir süre sonra askerlerin bir sürü yiyecek bir şeyleri olmuş ve hep beraber aylar sonra ilk defa bir şey yemişler.
Bu hikayedeki püf nokta, askerler katalizör gibi davranmış ve sonuç olarak herkes kazanmış.
Sende neler yapabileceğini sor ve onu iyi bir şekilde yap. İnsanlara göster ve onları büyüle. İnsanlar devam eden başarılara daha kolay katılırlar.
5.Tavsiye: Değişim için katalizör olun.
Projeler zamanla ve yavaşça elden kayabilir. Birçok yazılım felaketi ufak kazalarla meydana gelir. Günden güne eklenen her bir yama bir süre sonra yazılımın orjinalliğinden bir şey bırakmaz. Bu yine ufak şeylerin birikmesinden meydana gelir.
6.Tavsiye: Büyük resmi her zaman hatırlayın.
Şöyle bir hikaye anlatılır. Eğer bir kurbağayı kaynayan bir suya atarsanız kurbağa hemen geri sıçrar ama soğuk suya atıp altını yavaş yavaş ısıtırsanız, haşlanana kadar suyun içinde kalır.
Kırık Pencere Teorisinde, insanlar, kimse umursamadığı için, düzensizliğe karşı savaşma isteğini kaybetmişlerdi. Kurbağada ise değişiklik farkedilmiyor.