22 Eylül 2020 Salı

Frederick Brooks

Giriş
Frederick Brooks'un çokça atıfta bulunulan bazı eserleri ile ilgili notlarım aşağıda.

Mythical Man-Month Kitabı
İlk basımı 1975 yılında olan bir kitap halen okunuyor ve tartışılıyor. Bu kitaptaki bir cümle şöyle
"The programmer, like the poet, works only slightly removed from pure thought-stuff. [They] build castles in the air, from air, creating by exertion of the imagination."
1. Bölünebilen İşler
Bu kitapta bazı işlerin bölünüp parçalanabildiği, bazılarını ise bölünemeyeceği anlatılıyor.
It takes a woman nine months to have a baby. Nine women will not reduce this nine month interval one iota.
Bu söz aslında başka birine ait ancak Frederick Brooks meşhur hale getirmiş. Açıklaması şöyle
and originated from Theodore von Kármán in the unique form “Everyone knows it takes a woman nine months to have a baby. But you Americans think if you get nine women pregnant, you can have a baby in a month.” Fred Brooks made this a very popular statement in the software industry ...
Bölünebilen işler için ekibe daha fazla adam eklemek aslında iletişim yükünü artırdığı için belli bir noktadan sonra hızlanma yerine yavaşlamaya sebep olur

9 adam/aylık bir proje için ideal sayının 3 olduğu belirtiliyor.

2. Surgical Team
Bir işi yaparken cerrah en önemli işi yaparken diğerleri ona yardımcı olur. Yönetici açısından ideal, ancak yan rolü oynayan kişinin egosu açısından ideal değil :)
Mills proposes that each segment of a large job be tackled a team, but that the team be organized like a surgical team rather than a hog-butchering team. That is, instead of each member cutting away on the problem, one does the cutting and the others give him every support that will enhance his effectiveness and productivity.
3. Second System Effect Nedir?
Aynı işi ikinci kere yaparken, sistemin gereksiz bir sürü özellik ile şişebildiğini anlatıyor.
An architect’s first work is apt to be spare and clean. He knows he doesn’t know what he’s doing, so he does it carefully and with great restraint.

As he designs the first work, frill after frill and embellishment after embellishment occur to him. These get stored away to be used “next time.” Sooner or later the first system is finished, and the architect, with firm confidence and a demonstrated mastery of that class of systems, is ready to build a second system.

This second is the most dangerous system a man ever designs. When he does his third and later ones, his prior experiences will confirm each other as to the general characteristics of such systems, and their differences will identify those parts of his experience that are particular and not generalizable.

The general tendency is to over-design the second system, using all the ideas and frills that were cautiously sidetracked on the first one. The result, as Ovid says, is a “big pile.”
4. No Silver Bullet Makalesi
1986 yılında yazılan bu makalede yazılım geliştirirken karşılaşılan sıkıntıları, 
- yazılımın doğasından kaynaklananlar (essential complexity) ve 
- iyileştirilebilecek olanlar (accidental complexity) 
şeklinde ayırmış. 

Essential Complexity
Yazılımın doğasından kaynaklanan complexity, conformity, changeability, invisibility gibi özelliklerin ne yaparsak yapalım giderilemeyeceğini, ancak araç/gereç, insan ve süreçlerin iyileştirilebileceğini söylüyor. 

Acidental Complexity
İyileştirmeler için ise hiç bir iyileştirmenin 10 kat verimlilik artışı getirmeyeceğini söylüyor.
There is no single development, in either technology or in management technique, that by itself promises even one order-of-magnitude improvement in productivity, in reliability, in simplicity.
Bir başka açıklama şöyle
Complexity: One reason for a muddled architecture is that software often reflects the inherent complexity of the application domain. This is what Brooks called “essential complexity” [Brooks 1995]. In other words, the software is ugly because the problem is ugly, or at least not well understood. “






Hiç yorum yok:

Yorum Gönder