Mesleğimizin listeleri hızlı yaşlanır: birkaç yıl önce özenle öğrenilen çerçeve, bugün "eski teknoloji" bölümüne düşmüştür. Araçlar arasında yaşanan bu hızlı değişim, yeni başlayanları şaşırtır; deneyimlileri ise şaşırtmaz, çünkü onlar listeden değil listeden bağımsız olan bir şeyden kazandı: ilkelerden. Okunabilir kod, küçük ve tek amaclı işlevler, bağımlılıkların açık olması, hataların erken yakalanması — bunlar hiçbir çerçevenin sürüm notunda yer almaz ama hepsinde geçerlidir.

Araç Dili, İlke Grameridir

Her araç bir dildir ve öğrenilmesi gerekir; ilkeler ise o dilin grameri gibidir. Yeni çerçeve öğrenmek, kelime ezberlemeye benzer: hızlıdır, işe yarar, ama cümle kurmayı bilmezseniz bir süre sonra susarsınız. İlke bilen kişi, yeni bir araca geçtiğinde kelimeleri değiştirir, cümle yapısını korur. Bu yüzden deneyimli yazılımcının yeni teknolojiye geçişi hızlıdır; zaten öğrendiği şey, aracın kendisi değil onun sunduğu çözümlerin yeni adlarıdır.

Aynı ilke, ekiplerin iş birliğini de açıklar. Farklı dillerden gelen iki yazılımcı, kod incelemesinde ilkeler üzerinden anlaşır: isim neyi anlatıyor, bu işlev tek işi mi yapıyor, hata yukarıya iletiliyor mu. Bu sorular dilden bağımsızdır; depo değişse, ekip değişse, on yıl geçse bile soru aynıdır. İlkeler, ekiplerin ortak dilbilgisidir.

İlkelerin kalıcılığının bir de karanlık yüzü vardır: ilke, gerekçesi unutulduğunda keşişe döner. "Küçük işlevler" ilkesi, yüz satırlık on işleve bölünen bir kodu gerektirmez; amaç okunabilirlikti, sayı değil. Bu nedenle ilkeler, ezberlenen değil sorgulanan kurallar olmalıdır. Yeni gelenin "bunu neden yapıyoruz" sorusu, ekibin ilkelerini tazeleyen en değerli iksirdir; cevabı olan ilke güçlenir, cevabı olmayan kural ise artık ilke değildir, sadece alışkanlıktır. Araçları her yıl yenileyen ekip, ilkelerini de her yıl bu sorularla yeniler; ikisinin arasındaki fark, birinin ömrü sürümle, diğerinin ömrü gerekçeyle ölçülmesidir.

İlkeleri Taşımak, Kariyeri Taşımaktır

Kariyerin uzun mesafesini ilkeler koşar. Bir araç uzmanı, aracın pazarı daralınca yeniden başlar; bir ilke uzmanı, aracını değiştirir, kendisini değiştirmez. Bu nedenle genç yazılımcılara verilecek en iyi tavsiye, araç öğrenmeyi bırakmaları değildir; araç öğrenirken ilkeleri aramalarıdır. Her yeni çerçevede kendinize sorun: bu sorun, önceki araçta nasıl çözülüyordu, hangi sorun burada yeni adla geçiyor, hangi kural dil değişse de ayakta kalıyor.

Araç bir dönem askeridir; ilke ise generaldir. General değişmediği sürece ordu, yeni askerlere kolayca dönüşür.

Tabii ki ilkeler da kutsal kitap değildir; zamanla derinleşir, bazen yeniden yazılır. Ama araçların hızına kıyasla onların takvimi yüz yıllıktır. Bu takvim farkı, mesleğin en adil özelliklerinden biridir: emek, araçta erir; ilkede birikir.

Araçlar eskir, ilkeler kalır; çünkü araçlar problemi çözer, ilkeler problemi tanımlar. Tanım yaşadığı sürece, çözüm her zaman yeni bir ad bulur.