5 Temmuz 2017 Çarşamba

Programlamanın Taousu - 7. Kitap - Şirket Bilgeliği

Şoyle dedi usta programcı: "Bir şirket yoneticisi için program demosu sunabilirsiniz ama onu bilgisayardan anlayan biri haline getiremezsiniz."

7.1
Acemi programcı ustaya sordu: "Doğuda insanların 'Şirket Karargahı' dedikleri bir ağaç yapısı var. Bir suru mudur yardımcısı ve muhasebeci ile dolu. Ortalıkta 'Şuraya git!', 'Buraya git!', 'şunu yap, bunu yap' yazan bir suru not var ama kimse bunların tam olarak ne anlama geldiğini bilmiyor. Her yıl bu ağaca yeni isimler ekleniyor ama hiçbir işe yaramıyor. Bu kadar garip bir ucube varlığını nasıl oluyor da surdurebiliyor?"

Usta cevapladı: "Bu koca yapıyı algılıyor ve onun mantıklı bir amacı olmamasından oturu rahatsız oluyorsun. Onun devasa donuşlerinden zevk almayı oğrenemez misin? Onun koruyucu dalları altında sakince program yazmanın guzelliğinin farkına varamaz mısın? Onun kullanışsızlığı seni neden bu kadar rahatsız ediyor?"

7.2
Doğuda tum balıklardan daha buyuk olan bir kopekbalığı yaşar. Kanatları bulutları kaplayan bir kuşa donuşur. Bu kuş hareket eder etmez Şirket Karagahından bir mesaj getirir. Bu mesaj programcıların ortasına duşer, tıpkı dalış yapan bir martı gibi. Ve sonra kuş ruzgarı arkasına alır, mavi gokyuzune doğru yukselip evine doner.

Acemi programcı şaşkınlık içinde kuşa bakakalır çunku onun ne olduğunu anlamaz. Ortalama programcı kuştan çekinir çunku getirdiği mesajdan korkar. Usta programcı bilgisayarının başında çalışmaya devam eder çunku O kuşun ne geldiğini fark eder ne de gittiğini.

7.3
Fildişi Kule'nin Buyucusu son icadını getirip usta programcının onunde koydu. Buyucu koca siyah bir kutuyu ustanın ofisine suruklerken usta sessizce olup bitenleri izliyordu.
"Bu entegre, dağıtık, genel amaçlı bir iş istasyonudur!" diye başladı buyucu ve devam etti, "ozel bir işletim sistemi ile ergonomik olarak tasarlanmış, içinde altıncı kuşak dilleri ve teknoloji harikası kullanıcı arabirimleri barındıran bir bilgisayardır. Asistanlarımın yuzlerce adam yılına mal oldu bunu tasarlamak. Nasıl sence de buyuleyici değil mi?"
Usta hafifçe kaşlarını kaldırdı ve "Gerçekten de buyuleyici," dedi.
"Şirket Karargahı'ndan gelen emirlere gore yeni programlar için artık bu makinayi platform olarak kullanacaksınız, bu konuda anlaştık mı?"
"Elbette," diye cevapladı usta, "Hemen onu bilgi işlem merkezine yollayacağım!" Ve buyucu mutlu bir şekilde kulesine geri dondu.
Gunler sonra bir acemi, ustanın odasına girdi ve "Yeni programımın yazıcı çıktısını bulamıyorum bir turlu, siz gordunuz mu acaba?" diye sordu.
"Evet," diye cevapladı usta, kağıtlar bilgi işlem merkezindeki platformun uzerinde yığılı."

7.4
Usta programcı bir programdan diğerine korkusuzca geçer. Yonetimdeki hiçbir değişiklik ona zarar veremez. Proje iptal edilse bile o kovulmaz. Neden? Çunku o Tao ile doludur!

Programlamanın Taousu - 6. Kitap - Yönetim


Ve şoyle dedi usta programcı:
"Programcılar çok ve yoneticiler az olsun - o zaman herkes çok daha uretken olur."

6.1
Yoneticiler bitmek bilmeyen toplantılar yaparken programcılar oyun yazar. Muhasebeciler son donem karlarından bahsederken programcıların butçesi kesilmek uzeredir. Bilimadamları gokyuzunden bahsederken ortalığı bulutlar kaplar.
Gerçekten de programlanın Tao'su bu değildir.
Yoneticiler kendilerini adadıklarında, oyun programları ihmal edilir. Muhasebeciler uzun donemli plan yaptıklarında uyum ve duzen geri doner. Bilimadamları eldeki problemleri incelemeye başladıklarında problemler çozulur.
Gerçekten de programlamanın Tao'su budur.

6.2
Programcılar neden uretken değildir?
Çunku vakitleri toplantılarda harcanır.
Programcılar neden isyankardır?
Çunku yonetim işlerine çok fazla karışır.
Programcılar neden tek tek istifa ederler?
Çunku kendilerini tuketilmiş hissederler.
Kotu yonetim için çalışmışlardır ve artık işlerine değer vermiyorlardır.

6.3
Bir yonetici kovulmak uzere iken onun için çalışan bir programcı yeni bir program geliştirdi, bu meşhur olup çok sattı ve yonetici yerini korudu.
Yonetici programcıya prim vermeye çalıştı ancak programcı reddetti ve dedi ki "O programı yazdım çunku fikir hoşuma gitmişti, bu yuzden de odul beklemiyorum."
Bunu duyan yonetici, "Bu programcı bir çalışanın gorevlerini mukemmel bir şekilde anlamış durumda, o halde onu yonetici danışman yaparak onurlandıralım!" dedi.
Bunu duyan programcı bir kez daha reddetti ve dedi ki: "Benim varlık amacım programlamak. Terfi edersem herkesin vaktini çalarım. Şimdi bana musaade. Üzerinde çalıştığım bir program var da."

6.4
Bir yonetici programcılarına gidip dedi ki: "İş saatlerinizle ilgili olarak, artık sabah 9'da gelecek ve akşam 5'te çıkacasınız." Bunu duyar duymaz çoğu programcı hemen oracıkta bastı istifayı.
Bunu goren yonetici dedi ki: "Pekala, pekala. O halde iş saatleerinizi kendiniz ayarlayın, proje zamanında yetiştiği surece ozgursunuz." Tatmin olan programcılar oğlen gelip sabahın erken saatlerine dek çalışmaya başladılar.

Programlamanın Taousu - 5. Kitap - Bakım


Ve şoyle dedi usta programcı:
"Bir program uç satırı geçtiyse bir gun mutlaka bakıma ihtiyaç duyar."

5.1
İyi kullanılan bir kapıya yağ gerekmez.
Akan su kir tutmaz.
Ne duşunceler ne de sesler boşlukta hareket edebilir.
Kullanılmayan yazılım çurur.
Bunlar buyuk sırlardır.

5.2
Bir mudur bir programcıya uzerinde çalıştığı programı ne kadar surede bitirebileceğini sordu. "Yarın bitecek," diye cevapladı programcı tereddut etmeden.
"Bu bana pek gerçekçi gelmedi açıkçası," dedi mudur. "Açık konuş, ne kadar surer?"
Programcı durup biraz duşundu. "Eklemek istediğim bir iki ozellik daha var. İki hafta alır," dedi.
"Bu bile iyimser bir beklenti!" diye ısrar etti mudur, "Bana kısaca programın ne zaman tamamlanacağını soyler misin?"
Programcı bunu kabul etti.
Yıllar sonra, mudur emekli oldu. Emekliliğini kutlama yemeğine çıkarken programcıyı bilgisayarı başında uyurken gordu. Sabaha kadar program yazmıştı.

5.3
Bir gun bir çırak programcıya bir muhasebe paketi yazma gorev verildi.
Çırak gunlerce deliler gibi çalıştı ancak usta programı incelediğinde sistemde bir ekran editoru, genelleştirilmiş grafik rutinleri, bir tur yapay zeka arabirimi bulunduğunu gordu. Muhasebeye yonelik hiçbir şey yoktu.
Usta bu noktaya dikkat çekince çırak biraz bozuldu, "Lutfen bu kadar sabırsız olmayın, sureç içinde muhasebe fonksiyonlarını da ekleyeceğim."

5.4
İyi bir çiftçi ekinini ihmal eder mi?
İyi bir oğretmen en aptal oğrenciye bile kotu davranır mı?
İyi bir baba bir çocuğunu açlığa makhum eder mi?
İyi bir pogramcı programının bakımını yapmayı reddeder mi?

Programlamanın Taousu - 4. Kitap - Kodlama


Ve şoyle dedi usta programcı: "İyi yazılmış bir program kendi içinde bir cennettir, kotu bir program ise cehennemin ta kendisi."

4.1
Bir program hafif ve çevik olmalıdır. Alt rutinleri inci dizileri gibi bağlanmalıdır. Programın ruhu ve amacı surekli goz onunde bulundurulmalıdır. Fazla ya da az olmamalı, gereksiz donguler ve değişkenler kullanılmamalıdır. Ancak yapıdan yoksunluk ya da değiştirilemez bir katılık da bulunmamalıdır.

Bir program "En Kuçuk Şaşkınlık" yasasını takip etmelidir. Nedir bu yasa? Program kullanıcıya daima onu en az şaşırtacak şekilde cevap vermelidir.
Bir program, ne kadar karmaşık olursa olsun, tek bir birim gibi çalışmalıdır. Program dış gorunuşu tarafından değil içsel mantığı tarafından yonlendiriliyor olmalıdır.
Eğer program bu ihtiyaçları karşılamazsa duzensizlik ve karmaşa hakim olur. Bunu duzeltmenin tek yolu programı yeniden yazmaktır.

4.2
Bir çırak ustaya sordu: "Bazen çalışan, bazen de çoken bir programım var. Programlama kurallarına uydum ama gene de apışıp kaldım. Bunun sebebi ne olabilir?"

Usta şoyle cevapladı: "Kafan karışmış çunku Tao'yu anlamıyorsun. Sadece bir insan etrafındaki insanlardan rasyonel davranışlar bekler. Sen neden aynı şeyi insanların yaptığı bir makinadan bekliyorsun? Bilgisayarlar determinizmi sadece simule ederler, mukemmel olan ise sadece Tao'dur.
Programlama kuralları geçicidir. Sadece Tao kalıcıdır. Bu yuzden aydınlanabilmek için once Tao'yu kavramalısın."

"Peki ama aydınlandığımı nasıl anlayacağım?" diye sordu çırak.
Usta cevap verdi: "Programın duzgun çalışacak."

4.3
Bir usta çıraklardan birine Tao'nun doğasını anlatıyordu: "Tao tum yazılımların içinde vardır, ne kadar kuçuk olurlarsa olsun bu yazılımlar."

"Bir hesap makinasında Tao var mıdır?" diye sordu bir çırak.
"Vardır."
"Peki bir video oyununda da var mıdır Tao?" diye devam etti çırak.
"Bir video oyununda bile vardır," dedi usta.
"Peki, kişisel bilgisayardaki Windows sisteminde de Tao var mıdır?" diye sordu çırak.
Usta oksurdu, boğazın temizledi, biraz kımıldandı ve "Bugunku dersimiz bu kadar," dedi.

4.4
Prens Wang'ın programcısı yazılım kodluyordu. Parmakları klavye uzerinde dans ediyor, programları tek bir hata mesajı olmadan derleniyor ve ruzgar gibi çalışıyordu.

"Mukemmel!" diye bağırdı Prens. "Tekniğin kusursuz!"
"Teknik mi?" dedi programcı ve terminalinden yukarı doğru baktı. "Benim takip ettiğim şey Tao'dur - tum tekniklerin otesinde. Programlamaya ilk kez başladığımda tum problemi tek bir kutle gibi goruyordum. Aradan yıllar geçtikten sonra o kutleyi gormuyorum. Bunun yerine alt rutinler kullanıyordum. Ancak şimdi artık hiçbir şey gormuyorum. Tum varlığım şekilsiz bir boşluk gibi. Ruhum plansız programsız, içgudulerini takip ederek ozgurce çalışabiliyor. Kısaca programım kendi kendini yazıyor. Evet, doğru, bazen guç problemlerle karşılaştığım oluyor. Onların geldiğini goruyorum ve yavaşlayıp sessizce izliyorum. Sonra tek bir satırı değiştiriyorum ve problemler duman gibi uçup gidiyor. Programı derliyorum ve yapılan işin guzelliği varlığıma işliyor. Gozlerimi kapatıyorum ve sonra sistemden çıkıyorum."

Bunun uzerine Prens Wang dedi ki "Keşke tum programcılarım senin kadar bilge olsaydı."

Programlamanın Taousu - 3. Kitap - Tasarım


Ve şoyle dedi usta programcı:
"Program test edilmeye başlandığında tasarım değişiklikleri yapmak için artık çok geçtir."

3.1
Bir zamanlar bir bilgisayar fuarına giden bir adam vardı. Her gun girişteki guvenlik gorevlisine şoyle diyordu: "Ben buyuk bir hırsızım, arakladığım şeyler yuzunden meşhurum. Seni uyarıyorum bu fuar da benden nasibini alacak."

Bu konuşma guvenlik gorevlisini çok rahatsız etmişti çunku içeride milyonlarca dolar değerinde bilgisayar ekipmanı vardı ve o da bu yuzden hırsız olduğunu soyleyen adamı yakın takibe almaya karar verdi. Ancak adam bir standdan diğerine gidiyor ve kendine kendine mırıldanıyordu, tum yaptığı buydu.

Adam fuarı terk eder etmez, guvenlik gorevlisi onu bir kenara çekiyor baştan sonra arama tarama yapıyordu. Adamın hırsızlığına işaret eden hiçbir şey çıkmıyordu uzerinden.

Ertesi gunu fuara gelen adam guvenlik gorevlisine yanaşıp dedi ki: "Dun iyi iş çıkardım ama bugun daha da iyi olacak." Tum huzuru kaçan bu sefer takip işini daha sıkı tutmaya karar vermişti ancak sonuç gene husrandı.

Fuarın son gununde dayanamayan guvenlik gorevlisi adama gidip şoyle dedi:"Sayın Hırsız, o kadar şaşırmış durumdayım ki huzurum kaçtı, çok kotu durumayım, lutfen beni aydınlatın, çaldığınız şey nedir?"

Adam gülümsedi ve tek bir cumle sarf etti:"Fikir çalıyorum."

3.2
Bir zamanlar yapısal olmayan programlar yazan bir usta programcı vardı. Çomez programcı onu taklit etmeye yeltendi ve o da yapısal olmayan programlar yazmaya başladı. Sonra ustaya gidip programlarını değerlendirmesini isteyince usta ona yapısal olmaya programlar yazmadığı için kızdı ve dedi ki: "Usta için uygun olan çomez için uygun değildir. Yapıyı aşmadan once Tao'yu kavramalısın."

3.3
Bir zamanlar savaş lordu Wu'nun topraklarında yaşayan bir programcı vardı. Wu onu huzuruna getirtti ve sordu: "Hangisini tasarlamak daha kolaydır, bir muhasebe paketi mi yoksa bir işletim sistemi mi?"
Programcı cevapladı: "Bir işletim sistemi."
Kulaklarına inanamayan savaş lordu içini çekti ve dedi ki: "Bir işletim sistemi ile kıyaslandığında muhasebe yazılımının çok basit olduğu su goturmez!"
"Tam olarak oyle denemez efendim", dedi programcı, "bir muhabesebe paketi tasarlarken programcı değişik fikirleri olan insanlarla muhatap olmak zorunda kalır: program nasıl çalışmalıdır, raporlar nasıl gorunmelidir, vergi kanunlarına ne şekilde uymaldıdır, vs. Oysa bir işletim sistemi dış gorunuş ile sınırlandırılamaz. Bir işletim sistemi tasarlarken programcı makina ve fikirler arasındaki en basit uyumu arar bu yuzden de işletim sistemi tasarlamak daha kolaydır."
Savaş lordu Wu başını onaylar biçinde salladı ve gulumsedi: "Guzel ve akıllıca! Peki hangisinin hatalarını ayıklamak daha kolaydır?"
Programcı cevap vermedi.

3.4
Bir mudur usta programcıya gitti ve yeni bir uygulama ile ilgili ozellik listesini gosterdi. Sonra da sordu: "Eğer 5 programcıyı gorevlendirirsem sistemin tasarlanması ne kadar surer?"
"1 yıl," diye cevapladı usta hiç tereddut etmeden.
"Fakat bu iş çok acil! 10 programcı çalıştırsak?"
Ustanın kaşları çatıldı. "Bu durumda iki yıl surer" dedi.
"Peki ya 100 programcı çalıştırsak?"
Usta omuz silkti ve "O zaman tasarım asla tamamlanmaz" dedi.

Copyright 2013-2017 | İbrahim BAYRAKTAR /dev/null Web Günlüğü