- Mutlak düşünmemeye çalışın. Bilgisayarlar ikili düşünme konusunda harikadır, insanlar ise pek değil. Her kuralın bir istisnası, her mimari yaklaşımın bir ödünleşimi vardır.
- Hata ayıklanabilirlik çok az önemsenir. Kod yazarken nasıl çalışacağını düşünmek zorundasınız. Ayrıca nasıl başarısız olacağını ve *production*da nasıl hata ayıklayacağınızı da düşünmeniz gerekir. Kendinize denetim izleri(audit trails) bırakın, verileri insan tarafından okunabilir formatlarda saklayın ve yönetici araçlarına yatırım yapın.
- Projeler geç kalıyor, hem de çok. Bu durum yazılıma özgü değildir. Gerçek şu ki zaman sürekli aleyhimize işliyor ve beklenmedik şeyler olduğunda planladığımızdan çok daha uzun sürebiliyor. Ve yazılımda, belirli bir özelliğe veya sisteme her zaman ekleyebileceğimiz daha fazla şey vardır. Elinizden gelenin en iyisini yapın ve paydaşlarınızı ilerleme ve engeller konusunda bilgilendirin.
- Kapsamı agresif bir şekilde yönetin. Yukarıdakilerle bağlantılı olarak, projenizin kapsamını koruyun. İnsanlar proje boyunca sık sık bir şeyler eklemeye çalışacağından, savunma amaçlı olarak. İstemiyorsanız geri adım atmak zorunda değilsiniz, ancak bunun proje teslimatını nasıl etkileyeceği konusunda şeffaf olun ve bunu geniş çapta iletin. Saldırgan bir şekilde, kesebileceğiniz şeyleri arayın veya benim favorim, lansmandan SONRA gönderebileceğiniz şeyleri arayın ve sonunda bunlara öncelik vermek için zorlayın. İyi bir "hızlı takip "i severim.
- Staging hemen hemen her zaman bozuktur. Birçok genç geliştiricinin test ortamları hakkında ellerini ovuşturduğunu görüyorum. Beni yanlış anlamayın, test ortamları harikadır ve onları kullanmalısınız. Ancak sistemleriniz büyüdükçe, üretimi anlamlı bir şekilde yansıtan paralel bir ortamı sürdürmek daha da zorlaşır. Elinizden gelenin en iyisini yapın - ancak bunun dışında terlemeyin ve üretimde bir şeyleri test etmekten korkmayın (güvenli bir şekilde, feauture flagleri arkadaşınızdır).
- Eylem ödüllendirilir. Sorunlara işaret etmek veya şikayet etmek ödüllendirilmez.
- Sistemlerinize sahip çıkın. Sadece *kodunuzu* değil. Üzerinde çalıştığınız sistemlerin başarısından uçtan uca kişisel olarak sorumluymuşsunuz gibi davranın (çünkü öylesiniz!).
- Siz daha büyük bir organizasyonun parçasısınız. Ürettiğiniz yazılım para kazanmak için satılan bir ürün olabilir, ancak bu sizin işinizin evrenin merkezi olduğu anlamına gelmez. Diğer fonksiyonlardan (satış, pazarlama, finans, vb.) insanlarla tanışmak için zaman ayırın ve onların nasıl düşündüklerini ve çalıştıklarını öğrenin. Tüm iş hakkında çok daha bütünsel bir görüşe sahip olacaksınız ve etrafınızda alınan kararlar çok daha mantıklı olacaktır. Bu, en küçük girişimler için bile geçerlidir.
- Aptalca sorular sorun. Bir grup insanla birlikteyseniz ve tartışılan konuyla ilgili bir sorunuz varsa, gruptaki başka birinin de aynı soruya sahip olma ihtimali çok yüksektir. Yüksek sesle konuşun! Bu soruyu ekibin iyiliği için sorun. Kimse soru sorduğunuzu hatırlamayacak, ancak siz ve diğer herkes cevaptaki bilgiye sonsuza kadar sahip olacaksınız.
- Geri dönüp teknik borcu düzeltmek için zamanınız olmayacak. Kendinizi kandırmayın. Önceden en aza indirmek için elinizden geleni yapın ve öngörülebilir gelecekte neyle yaşamakta sorun yaşamayacağınıza göre neleri ele alacağınıza öncelik verin. Yüzde 99/100, sistemin belirli bir bölümünün büyük bir revizyona ihtiyacı olana kadar geri dönüp düzeltmeyeceksiniz ve bunun ne zaman olacağını bilmiyorsunuz.
- Keyfini çıkarın! Eğer siz de benim gibiyseniz, kodla çalışmak eğlencelidir.