Yeni bir elektronik devre tasarlarken, direnci yeniden icat etmezsiniz. Transistörü uygulamanız için yeniden tasarlamazsınız. Var olan SPI protokolünü beğenmediğiniz için değiştirmezsiniz. Bunun yerine, standart bileşenleri — belirli toleranslara sahip dirençleri, belgelenmiş davranışlara sahip entegre devreleri ve yayınlanmış anlambilime sahip protokolleri — özel bir problemi çözmek üzere bir araya getirirsiniz. Tasarım yaratıcı bir eylemdir; altyapı ise standartlaşmıştır.
Bu standartlaşma tesadüf değildir. Elektronik endüstrisi, on yıllar boyunca süren bir endüstrileşme sürecinden geçmiştir. Standart bileşen değerleri (E serisi, 20. yüzyılın ortaları), standart üretim süreçleri (silikon arıtma, on yıldan on yıla) ve standart arayüzler (Ethernet 1980, I2C 1982, USB 1996) bu sürecin temel taşlarıdır. Tasarım kurallarını kodlayan araçlar, mühendisin her projede bu kuralları yeniden çıkarmasını engeller. Sonuç? Tasarım yoğun bir şekilde yaratıcı tercihlerle dolu olsa da, bu tercihlerin altında yatan altyapı endüstriyel olarak derindir.
Yazılım ise genellikle tam tersini yapmıştır. Her yeni nesil, yeniden yeni bileşen sözcükleri, yeni derleme sistemleri ve yeni tasarım kalıpları icat etmiştir. Bu altyapı, her beş yılda bir kötü bir şekilde yeniden keşfedilmiştir. Ancak bu durum değişiyor. Üretim ve elektronikte ilk olarak yaşanan endüstrileşme süreci, yazılımın da kullanabileceği dersler sunuyor. Ve bu sürecin adımları, son on yılda yazılımda yaşanan belirli değişimlerle doğrudan örtüşüyor.
Üretimin Endüstrileşmesindeki Dört Dönüm Noktası
1798 yılında Eli Whitney, on bin tüfeklik bir sözleşme imzaladı ve bu sözleşmeye daha önce görülmemiş bir özellik ekledi: her kilit, her tüfeğe uyar. Whitney’den önce, her tüfek kilidi elle uyumlandırılıyordu. Kırılan bir parça yenilenmezdi — ustaların elinden geçerek yeniden uyarlanırdı. Whitney’nin parçaları ise tüfeğe uymak zorunda değildi; bir spesifikasyona uymak zorundaydı. Değişkenlik toleransa dönüştü. Tolerans ise standartlaşmanın birimi haline geldi.
1913 yılında Henry Ford’un Highland Park’taki montaj hattı, Whitney’nin ilkesini bir adım öteye taşıdı. Standartlaşmış parçalar, çalışanların da standartlaşmasını sağladı. Herhangi bir çalışan, herhangi bir istasyonda görev alabilirdi. Model T, o gün hangi zanaatkarın atölyede olduğunu artık umursamıyordu. Kalite ve verimlilik, ustaların başındaki kabile bilgisine bağımlı olmaktan çıktı. Sistem, teknolojinin ta kendisiydi; tek bir çalışanın becerisine değil.
1950’lerin sonlarından itibaren başlayan ve 1970’ler ile 1980’lerde olgunlaşan CAD/CAM devrimi, ne yapılacağını ile nasıl yapılacağını birbirinden ayırdı. Bilgisayar Destekli Tasarım (CAD) araçları, mühendislerin geometriyi elle çizmek yerine parametrik olarak tanımlamasına olanak tanıdı. Bilgisayar Destekli Üretim (CAM) ise bu parametrik tasarımları makine talimatlarına çevirdi. Tasarımcıların karşılaştığı sürprizler — bu uyacak mı, bu geçecek mi, bu üretilebilir mi — belirsizliğin ortadan kalkmasıyla çöktü. Tasarım yaratıcı kaldı; tasarımdan üretime giden yol ise belirlenebilir hale geldi.
1961 yılında General Motors’taki ilk endüstriyel robot olan Unimate, kaynak yapmaya başladı. Bu robot mühendisi yerinden etmedi. Yargı gerektirmeyen üretim kısımlarını üstlendi. Mühendisler ise tasarım, denetim, kalite ve problem çözme gibi daha üst düzey görevlere odaklandı. Mesleğin zemini yükseldi. Mühendislik işi değişti.
Her adımın yerleşmesi yıllar aldı. Her adım, mesleğin ne yapabileceğinin zeminini yükseltti. Hiçbir adım yaratıcı çalışmayı ortadan kaldırmadı — sadece geriye kalan kısımlardan kurtardı.
Bu Sürecin Yazılıma Uyarlanması
Her endüstriyel adımın bir yazılım karşılığı vardır. Ve bu karşılıkların zamanlaması, yazılımın bugün hangi noktada olduğunu gösteriyor — sıkıştırılmış bir versiyon olarak.
Whitney’nin Değiştirilebilir Parçaları → Standartlaştırılmış Sözcük Dağarcığı
Yazılımda standartlaştırılmış sözcük dağarcığı genellikle yereldir. Bir takımın koddaki ifadeleri. Bir çerçevenin kuralları. Bir dilin ana akım kalıpları. Takımlar arasında değiştirilebilirlik ise tarih boyunca düşük olmuştur — yeni bir kod tabanına katılan bir geliştirici, on yıllar boyunca yerel sözcük dağarcığına uyum sağlamak zorunda kalmıştır, çünkü kod tabanları arası standartlar yoktu. Java Backend Coding Technology (JBCT), herhangi bir kod tabanında kullanılabilen küçük, adlandırılmış bir sözcük dağarcığı sunar: üç konteyner, altı desen ve bir sınırlama ilkelini içerir. Bu dağarcığı bilen her geliştirici, herhangi bir JBCT kod tabanını okuyabilir. Parçaların (kod yapılarının) ve insanların (geliştiricilerin) değiştirilebilirliği artık mümkün.
Ford’un Montaj Hattı → JBCT’nin Teknoloji Olarak Konumu
Ford’un asıl katkısı hız değil, standartlaşmanın kendisinin teknoloji olmasıydı. Montaj hattı, hangi çalışanın hangi istasyonda görev yaptığına bakılmaksızın tutarlı çıktı üreten, kasıtlı olarak tasarlanmış bir sistemdi. JBCT de aynı şekilde konumlanır — tercihe göre benimsenen bir metodoloji değil, hangi mühendisin hangi modülü yazdığına bakılmaksızın tutarlı kod üreten bir teknolojidir. Tutarlılık bireysel disiplinden değil, sistemden gelir.
CAD/CAM → JBDT
Java Backend Design Technology (JBDT), Java Backend Design Technology: A Process-First Methodology kitabında anlatılan bir yaklaşımdır. Bu, yazılımın CAD/CAM’ıdır. Sistemin ne yapması gerektiğini ile nasıl inşa edildiğini birbirinden ayırır. Tasarımcı, sınırlar, bağımlılıklar, kipler ve süreç şekli hakkında yapılandırılmış bir dizi soruya yanıt verir ve bu yanıtlar o kadar belirlenebilirdir ki, uygulama açık bir yorumlama değil, bir türetme haline gelir. Tasarımcıların karşılaştığı sürprizler — bu ölçeklenir mi, bu test edilebilir mi, bu bakımı kolay mı — belirsizliğin ortadan kalkmasıyla çöker. Tasarım yaratıcı kalır; tasarımdan koda giden yol ise belirlenebilir hale gelir.
Endüstriyel Robotlar → Yapay Zeka
Yapay zeka asistanları, üretim sürecinin sonlarında gelen ve şimdi yazılımda da ortaya çıkan rutin iş otomasyonudur. Tasarımcıyı yerinden etmezler. Kod üretiminin rutin kısımlarını — iskele kodları, tekrarlayan bileşenler, iyi bilinen desenler — üstlenirler. Mühendisler ise tasarım, denetim ve problem çözme gibi daha karmaşık görevlere odaklanır. Mesleğin zemini yeniden yükselir. Yazılımcının işi değişir.
Her adım yıllar aldı. Her adım, mesleğin ne yapabileceğinin zeminini yükseltti. Hiçbir adım yaratıcı çalışmayı ortadan kaldırmadı — sadece geriye kalan kısımlardan kurtardı. Yazılımın endüstrileşme süreci de aynı şekilde ilerliyor. Standardizasyon, araçlar ve otomasyonun birleşimi, geliştiricilerin daha büyük ve daha karmaşık sistemler üzerinde çalışmasına olanak tanıyor. Gelecekte, bu eğilimin daha da hızlanması ve yazılımın bugün hâlâ elle yapılan birçok parçasının otomatikleşmesi bekleniyor.
Yapay zeka özeti
Yazılımda standardizasyon ve endüstrileşme süreci nasıl ilerliyor? JBCT, JBDT ve yapay zekanın rolünü keşfedin ve geleceğin kod yazma yöntemlerini anlayın.