Çalıştığım şirketin kitaplığında görüp okuma listeme aldığım kitaplardan biriydi, "Dreaming in Code". Programcılar arasında oldukça popüler olan ve birçok sitede iyi yorumlar alan bir eser bu. Kitap temel olarak önceki işlerinde oldukça başarılı olmuş bir grup teknoloji insanının Chandler isimli dünyayı değiştireceğine inandıkları yeni bir yazılım projesi üzerinde çalışmalarını anlatıyor.

Kitabın yazarı Salon.com kurucularından Scott Rosenberg. Salon.com'u takip ediyorsanız bilirsiniz, oldukça kaliteli bir haber/yorum sitesidir. Kitabın akıcılığını biraz da bu geleneğe bağlıyorum, 300 küsür sayfayı okurken pek sıkılmıyorsunuz. Scott Rosenberg yazılımın kaderinin tam olarak ne olacağını bilmemekle birlikte projeyi takip etmeye ve kitabını hazırlamaya başlıyor. Hemen hemen bütün yazılım projelerinde geri kalmalar, hatalar, başarısızlıklar olduğu için temkinli davranıyor ama o bile 3 sene sonra 1.0 sürümünün çıkamamasına biraz şaşırıyor ve belki de 1.0 ile kitabı bitirme planlarını değiştirip kitabı daha önce baskıya göndermeye karar veriyor.

Chandler büyük hedeflerle başlanan bir proje, birçok şeyi aynı anda yapmaya çalışıyor. Sağlam temellere dayanmıyor, devrimci olabilmek için yeni şeyler gerektiğini düşünüyor ve hepsini kendisi geliştirmek istiyor. Bu yüzden bir tarayıcı içinde yaşamak istemiyor, sonradan vazgeçilse de başlarda P2P modeli benimseniyor, Windows, Mac ve Linux'larda hepsinde çalışacak bir masaüstü uygulaması hedefleniyor. Sonuçta Chandler'ın ilk tüm sürümleri planlanandan daha geç, daha az özellik ve daha fazla hatayla, daha masraflı olarak yayınlanıyor.

Kitabın büyük bölümü projede yaşanan olayları anlatıyor. Teknik zorluklar, yönetimsel sorunlar, her yazılım projesinde olan planlama zorlukları, kesin olarak neyi nasıl yapacağını bilememek... Rosenberg kendisi de bilişim sektöründen olduğu için olayları anlıyor ve tam olarak programcı olmadığı için de akıcı bir biçimde farklı bir bakış açısıyla bizlere anlatabiliyor.

Scott Rosenberg arada birkaç bölüm Chandler'ın sıkıntılarını anlatmayı bırakıp bilgisayar mühendisliğinin nasıl bir mühendislik olduğundan, klasik mühendisliklerden örneğin inşaat mühendisliği gibi olgunlaşmamış olduğundan, tıp gibi çok karmaşık olmasından bahsediyor, bilgisayar bilimlerinin kısa bir tarihinden bahsediyor. Frederick Brooks'dan, Donald Knuth'dan, Alan Kay'den bolca bahsediyor, önemli eserlerden bolca alıntılar ve özetler veriyor. Bilgisayar bilimlerinin kendi metodolojilerinden, ilk zamanlardaki NATO konferanslarından tutun da CMM seviyelerine, Çevik Programlama'ya, ve Ruby on Rails'in açtığı yola, 37 Signals'a kadar o kadar çok noktaya değiniyor ki, bu bölümleri bitirince bilgisayar bilimlerinde emin olunan çok da konu olmadığını anlıyorsunuz. Yazarın farklı bakış açılarını kitapta eşit bir biçimde sunması da bunda etkili.

Sonuç olarak bilgisayar bilimlerini daha iyi anlamak istiyorsanız okumanızı önereceğim bir kitap bu. Bana inanmıyorsanız, belki Joel Spolsky sizi ikna edecektir (kitapta kendisinden de bahsediliyor).

Keyifli okumalar.