Press "Enter" to skip to content

Kitap Tanıtımı – Mythical Man Month


Yazılımın her an daha fazla hayatlarımıza girdiği bu dönemde, yazılımla ilgili bir iş yapacak kişinin okuması gereken kitaplardan bir tanesi muhtemelen Mythical Man Month’dır. Yazılım yönetimi ile ilgili olarak teknik olmayan insanların anlayabileceği dersler veren kitabın yazarı Fred Brooks bu kitabı 1975 yılında yazmış olmasına rağmen, kitap hala çok ilgi çekiyor. İlgi çektiğini biliyorum çünkü Amazon’da 40 sene önce yazılmış olup ta, Kindle versiyonu 25 dolara satılan çok az kitap vardır.  Kitaba 1995 yılında ek bölümler ekleyen Brooks, kitap ile ilgili eleştrilere cevap vermiş (bunlar haklı, bunlar haksız diye). Kitabı okuyacak sadece bir saatiniz varsa 16 – 19. bölümleri okumanız epeyce yararlı olacaktır.

Kitapta konuşulan başlıca kavramlar
– Kitaba ismini veren Mythical Man Month’ın olayı şu: Bir proje geç kalıyorsa ve onu hızlıca bitirmek için projeye insan eklerseniz, bu proje daha da geç kalacaktır. Bunun sebebi projeye gelecek kişinin projeyi öğrenmesi gerekecek ve proje için gerekli olan iletişimi arttıracaktır. Bunların hepsinin zaman maliyeti vardır.
– Yazılım dünyasındaki etkinlik donanım dünyasındaki kadar hızlı artmıyor ve muhtemelen de asla artmayacak. Bunun sebebi yazılımın yavaşca gelişmesi değil, donanımın çok hızlı gelişmesi. Moore yasasını biliyorsunuzdur, 18 ayda bir santimetrekareye girecek transistör sayısı iki katına çıkar. Moore yasası onlarca yıldan beri geçerliliğini koruyor ama böyle bir gelişme yazılımda yok çünkü her yazılım kendine hastır. Aynı şeyin tekrarı yoktur.
– Yazılım dünyasında çok hızlı gelişim olmaması, yazılımda gümüş kurşun olmadığı manasına gelir. Tabii ki buna yaklaşan şeyler vardır (yüksek seviyeli diller gibi) ama bunları oluşmasını ve her şeyi yapmasını beklemektense bol bol normal kurşun kullanmak daha iyidir.
– Yazılım mimarisi ve uygulaması zor bir alan olduğu için, iyi yemekler geç piştiği gibi iyi yazılımlarda geç oluşabilir.
– Yazılım ile ilgili en önemli şey  Conceptual Integrity dediği yazılımın kavramsal bütünlüğe sahip olmasıdır. Yani, yazılım mümkünse tek bir kişi ya da benzer düşünen kişiler tarafından tasarlanmalıdır çünkü tasarımcının amacı hem yazılımı kuvvetli yapmak hem de kullanılabilir yapmak. Bu bir denge işidir ve bu sadece tek bir kişi ya da benzer düşünen kişiler tarafından ortaya çıkarılabilir. Aksi takdirde ya işlevsellik zarar görür ya da kullanılabilirlik (veya ikisi de)
– Kavramsal Bütünlük için demokrasiye ihtiyaç yoktur. İşi en iyi bilen, bu işi yapmalıdır. İşi bilen kişi isterse başkalarını dinleyebilir ama dinlese bile kendi kafasına göre takılmalıdır.

Kitapda yazılımın neden zevkli olduğundan (bir şey yapabilme zevki, yeni bir şeyler öğrenme zevki…) yazılım içi dokümantasyona, bilgi saklamanın faydalarına kadar daha birçok konu var.

İyi okumalar dilerim!

Comments are closed.