Ulasan Buku: The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition

Frederick P. Brooks, Jr. The Mythical Man-Month (MM-M) adalah salah satu buku yang paling terkenal dalam semua literatur pengembangan perisian dan boleh dibilang buku yang paling terkenal mengenai pengurusan pembangunan perisian. Sudah ada banyak ulasan mengenai kelas ini, tetapi saya menyemaknya semula dalam siaran ini untuk para pembangun perisian yang belum membacanya dan menginginkan gambaran keseluruhan kecil tentang apa yang disukai mengenainya. Lagipun, ini adalah tajuk PC Dunia # 1 dalam senarai Sepuluh Buku IT Teratas yang Tidak Pernah Mengaku Anda Belum Baca. Tajuk penuh edisi yang saya kaji dalam catatan ini ialah The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition.

"Edisi Ulang Tahun" The Mythical Man-Month (diterbitkan pada tahun 1995) menambah kandungan penting di atas dan di luar apa yang diterbitkan dalam edisi asal pada tahun 1975. "Edisi Ulang Tahun" mengandungi buku asli dalam bentuk aslinya (walaupun dengan penyertaan pembetulan yang ditambahkan dalam cetakan semula 1982) dan menambah empat bab baru. Lima belas bab pertama dalam Edisi Ulang Tahun adalah bab dari buku asal. Bab-bab yang ditambahkan termasuk kertas Brooks yang terpisah tetapi sama terkenal IFIPS (1986) / IEEE Computer Magazine (1987) No Silver Bullet: Essence and Accencies of Software Engineering dan susulan yang disebut No Silver Bullet ReFired. Bab 18 dan 19 Edisi Ulang Tahun memberi tumpuan kepada perspektif diri Brooks 1995 mengenai apa yang ditulisnya pada tahun 1975.Brooks menunjukkan apa yang dia salah dan apa yang dia betul (ada lebih banyak kes yang terakhir daripada yang pertama).

Terdapat banyak ulasan mengenai The Mythical Man-Month yang merangkumi liputan menyeluruh mengenai topik dan petikan dari buku ini (artikel Wikipedia, Bernard I. Ng's The Mythical Man-Month ringkasan, Beberapa pandangan dari The Mythical Man Bulan bermula dari Bab 11, The Manthical Man-Month - Ekstrak I, The Mythical Man-Month - Extracts II, The Mythical Man-Bulan Kuliah, dan Ulasan / Ringkasan The Mythical Man-Month, misalnya). Daripada mengulangi gambaran keseluruhan kandungan buku secara keseluruhan, saya memfokuskan pada catatan ini pada beberapa perkara penting dan berdasarkan beberapa amalan dan ideologi terbaik perisian moden.

Bab 19 ("Cadangan Bulan-Bulan Mitos: Betul atau Salah? ") Dari" Edisi Ulang Tahun "akan menarik minat pembaca yang tidak sabar atau tidak mempunyai masa untuk membaca keseluruhan buku, tetapi ingin mendapatkan pandangan keseluruhan mengenai pernyataan Brooks. Kerana Brooks menggunakan bab ini untuk membentangkan "intipati buku 1975" dalam "bentuk garis besar," penegasan Brooks ("fakta dan generalisasi jenis-jempol dari pengalaman") dari buku asalnya disajikan dalam "bentuk tegas" (kira-kira 20 halaman). kehadiran bab ini dalam "Edisi Ulang Tahun" adalah satu lagi sebab saya tidak membongkar buku ini demi bab di sini. Bab ini lebih banyak daripada sekadar meringkaskan pernyataan dari buku asal; ia juga merangkumi beberapa Brooks 's 1995 komen berdasarkan 20 tahun lagi pemerhatian dan faedah dari pandangan belakang.

Dalam tulisannya The Mythical Man Month: Book Review, Mark Needham menyimpulkan ulasannya terhadap buku ini dengan pernyataan, "Saya sangat senang membaca buku ini dan melihat bagaimana banyak idea dalam metodologi yang lebih moden telah diketahui pada tahun 1980-an dan pada dasarnya bukan idea baru. " Saya dengan sepenuh hati setuju dengan pernyataan ini, walaupun kebenarannya mungkin lebih mengejutkan: ini adalah pemerhatian dalam sebuah buku yang diterbitkan pada tahun 1975 berdasarkan pengalaman Brooks yang bekerja pada pengembangan OS / 360 pada pertengahan tahun 1960-an dan perbualan lanjutan di yang lewat 1960s. Dengan kata lain, beberapa perkara yang mungkin kita fikirkan "baru" atau "bergaya" hari ini sudah ada dan terkenal selama 45 tahun atau lebih! Sebagai catatan sampingan, ini mengingatkan saya pada persembahan Alan M. Davis kepada Kumpulan Pengguna Denver Java ("Apa Yang Baru Mengenai Kaedah Baru Pembangunan Perisian?") Pada akhir tahun 2006 di mana dia menunjukkan berapa banyak metodologi "baru" dan taktik masa kini mempunyai pendahulu yang serupa pada tahun-tahun yang lalu dan bagaimana kita kelihatan berpusing di antara mereka selama beberapa dekad.

Perkara-perkara berikut yang dibuat oleh Brooks sangat menarik perhatian apabila seseorang menyimpan pemikirannya bahawa buku ini diterbitkan pada tahun 1975 berdasarkan pengalaman pada pertengahan hingga akhir 1960-an (petikan ini adalah dari ringkasan Bab 19 tetapi berdasarkan teks dalam edisi 1975):

  • "Pengaturcara profesional yang sangat baik sepuluh kali lebih produktif daripada yang miskin ..." [ketukangan]
  • "Pasukan tajam kecil terbaik - sekerap mungkin." [Tangkas]
  • "Memperbaiki kecacatan memiliki peluang besar (20 hingga 50 persen) untuk memperkenalkan yang lain. Setelah setiap pembetulan, seseorang mesti menjalankan seluruh kes ujian yang sebelumnya dijalankan terhadap sistem untuk memastikan ia tidak rusak dengan cara yang tidak jelas." [ujian regresi]
  • "Adalah bermanfaat untuk membina banyak perancah debug dan kod ujian, bahkan mungkin 50 persen lebih banyak daripada produk yang di-debug." [ujian unit]
  • "Untuk menjaga dokumentasi tetap terjaga, sangat penting untuk dimasukkan ke dalam program sumber, dan bukan disimpan sebagai dokumen yang terpisah ... bahkan sintaks bahasa tingkat tinggi sama sekali tidak menyampaikan tujuan." [Prinsip KERING]

Terdapat banyak lagi pemerhatian dalam The Mythical Man-Month yang menunjukkan bahawa Brooks dan pembangun lain pada masa itu memahami banyak asas pengembangan perisian yang sama yang kita fahami (dan kadang-kadang "ditemui" lagi) hari ini. Sebilangan besar ini lebih terkenal dan disebut dalam ulasan lain dan oleh itu saya tidak menyenaraikannya di sini kecuali petikan yang mesti disenaraikan:

  • "Lebih banyak projek perisian tidak berfungsi kerana kekurangan waktu kalendar daripada semua sebab lain yang digabungkan."
  • Undang-undang Brooke: "Menambah tenaga kerja untuk projek perisian yang lewat membuatnya kemudian."
  • "Oleh itu bulan-bulan sebagai unit untuk mengukur ukuran pekerjaan adalah mitos yang berbahaya dan menipu."

Salah satu bahagian yang saya dapati sangat tepat pada masanya (terutama untuk buku tahun 1975 pada tahun 2011) adalah liputan Brooks mengenai bagaimana arkitek perisian dapat mempengaruhi pelaksanaannya. Perkara ini sangat sensitif apabila visi arkitek tidak dilaksanakan oleh pemaju dengan cara yang dikehendaki oleh arkitek. Petua Brooks nampaknya sangat praktikal. Dia menyatakan bahawa arkitek harus setuju dengan fakta bahawa orang yang melaksanakan kod tersebut mempunyai "tanggungjawab kreatif" untuk pelaksanaan itu. Dia seterusnya menasihatkan bahawa arkitek harus selalu mempunyai idea untuk melaksanakan rancangannya, tetapi pada masa yang sama harus bersedia menerima pendekatan alternatif yang sama baiknya yang dicadangkan oleh orang yang melaksanakan kod tersebut. Brooks mengesyorkan agar arkitek membuat semua cadangan mengenai pelaksanaansecara senyap dan tertutup, "bersiaplah untuk mengabaikan kredit," dan bersedia mendengar cadangan pelaksana untuk penambahbaikan seni bina. "Ini seolah-olah nasihat yang baik bagi saya berdasarkan pengalaman saya di kedua-dua belah hubungan ini.

Dalam artikel 2005 yang Dikutip Sering, Diikuti Jarang, Brooks menyatakan:

Buku ini lebih mementingkan pengurusan daripada teknologi. Teknologi telah banyak berubah, jadi beberapa bab lama benar-benar tidak selaras. Sebaliknya, orang tidak banyak berubah. Itulah sebabnya Homer dan Shakespeare dan Alkitab masih relevan, kerana semuanya berkaitan dengan fitrah manusia. Saya rasa itu adalah sebahagian daripada penjelasan untuk buku ini: Masalah menguruskan orang dalam pasukan tidak berubah, walaupun media di mana orang merancang dan alat yang mereka gunakan ada. Sebilangan orang menyebut buku itu "Alkitab kejuruteraan perisian." Saya setuju dengan itu dalam satu aspek: iaitu, semua orang memetiknya, beberapa orang membacanya, dan beberapa orang mengikutinya.

Konsep yang terkandung dalam petikan ini mungkin merupakan perkara terpenting untuk disampaikan dalam tinjauan The Mythical Man-Month. Daya tarikan buku ini adalah liputan dan fokus pada pengurusan orang. Itu kekal abadi dan tidak berubah selama beberapa dekad. Teknologi pasti berubah dengan ketara dan mungkin merupakan negatif terbesar mengenai buku ini. Contoh Brooks berdasarkan produk, alat, dan bahasa tertentu pada tahun 1975 pastinya lebih banyak gambaran daripada pada masa kini untuk pembaca biasa. Sebagai contoh, bukunya tahun 1975 menyebut PL / I "satu-satunya calon yang munasabah untuk pengaturcaraan sistem hari ini." Kadang-kadang, sebilangan bacaan dapat menjadi lebih mencabar dengan kekurangan pengalaman langsung dengan produk yang disebut oleh Brooks. Walau bagaimanapun, dalam kebanyakan kes, ini tidak menjadi penghalang pada akhirnya kerana unsur manusia adalah fokus buku dan ini kebanyakannya tidak berubah bahkan sekarang. Dalam Bab 19 Edisi Ulang Tahun,Brooks merenungkan populariti bukunya yang berterusan dan menyatakan: "sejauh ituMM-M adalah mengenai orang dan pasukan, ketinggalan zaman harus perlahan. "

The mitos Man Bulan adalah benar-benar tentang projek-projek pembangunan perisian perusahaan yang sangat besar. Ini penting untuk diingat ketika membaca perkara yang kelihatan jelas bagi seseorang yang sedang mengerjakan projek kecil. Bahagian terakhir petikan di atas terkenal: "Sebilangan orang menyebut buku itu 'Alkitab kejuruteraan perisian.' Saya setuju dengan itu dalam satu aspek: iaitu, semua orang memetiknya, beberapa orang membacanya, dan beberapa orang mengikutinya. " Buku Brooks dipenuhi dengan rujukan Alkitab dan dia jelas mengenal Alkitab. Malangnya, petikan Brooks "semua orang memetiknya, beberapa orang membacanya, dan sebilangan orang mengikutinya" semuanya benar hari ini. Kami akan terus membacanya, tetapi ada baiknya melakukan lebih banyak perkara untuk mengubah perkara dalam projek pembangunan perisian berskala besar.

Sebilangan orang merasakan bahawa The Mythical Man-Monthadalah kekalahan dan juga menyedihkan. Saya tidak mendapat perasaan yang sama dengan membacanya. Sebaliknya, saya merasakan bahawa ini mengingatkan kita bahawa tingkah laku tertentu memudaratkan dan tidak berfungsi. Ini juga mengingatkan kita bahawa kita tidak harus menunggu "perkara besar berikutnya", tetapi sebaliknya harus terus meningkatkan kerajinan kita dengan sebaik mungkin. Banyak petua dan cadangan praktikal diberikan. Brooks jelas suka berada dalam bidang pengembangan perisian dan ini ditunjukkan berulang kali dalam bukunya. Brooks menyimpulkan buku "Epilogue: Fifty Years of Wonder, Excitement, and Joy", membicarakan bagaimana dia dulu dapat "membaca semua jurnal dan prosiding persidangan," tetapi akhirnya terpaksa melepaskan minat khusus satu persatu sebagai pengetahuan meletup. Dia menyimpulkan, "Terlalu banyak minat, terlalu banyak peluang menarik untuk belajar,penyelidikan, dan pemikiran. Betapa sukarnya keadaan ini! Bukan hanya akhir yang tidak kelihatan, laju tidak melambat. Kami mempunyai banyak kegembiraan di masa depan. "Saya pasti setuju.

Pengeposan asal boleh didapati di //marxsoftware.blogspot.com/ (Diilhamkan oleh Peristiwa Sebenar)

Kisah ini, "Ulasan Buku: The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition" pada mulanya diterbitkan oleh JavaWorld.