Resensi Buku: The Mythical Man-Month: Essays on Software Engineering, Edisi Anniversary

The Mythical Man-Month (MM-M) karya Frederick P. Brooks, Jr. adalah salah satu buku paling terkenal di semua literatur pengembangan perangkat lunak dan bisa dibilang THE buku paling terkenal tentang manajemen pengembangan perangkat lunak. Sudah ada ulasan yang tak terhitung banyaknya dari kelas ini, tetapi saya mengulasnya lagi di posting ini untuk para pengembang perangkat lunak yang belum membacanya dan ingin gambaran kecil tentang apa yang disukai tentangnya. Bagaimanapun, ini adalah judul # 1 Dunia PC dalam daftar Sepuluh Buku IT Teratas yang Tidak Pernah Anda Akui Anda Belum Baca. Judul lengkap dari edisi yang saya ulas dalam posting ini adalah The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition.

"Edisi Peringatan" dari The Mythical Man-Month (diterbitkan pada 1995) menambahkan konten yang signifikan di atas dan di luar apa yang telah diterbitkan dalam edisi aslinya pada tahun 1975. "Edisi Peringatan" berisi buku asli dalam bentuk aslinya (meskipun dengan penyertaan koreksi ditambahkan dalam cetak ulang 1982) dan menambahkan empat bab baru. Lima belas bab pertama dalam Edisi Peringatan adalah bab-bab dari buku aslinya. Bab-bab tambahan termasuk makalah Brooks yang terpisah tetapi sama-sama terkenal IFIPS (1986) / IEEE Computer Magazine (1987) No Silver Bullet: Essence and Accidents of Software Engineering dan tindak lanjut yang disebut No Silver Bullet ReFired. Bab 18 dan 19 dari Anniversary Edition berfokus pada perspektif-diri Brooks tahun 1995 tentang apa yang dia tulis pada tahun 1975.Brooks menunjukkan apa yang dia salah dan apa yang dia benar (ada lebih banyak kasus yang terakhir daripada yang pertama).

Ada banyak ulasan tentang The Mythical Man-Month yang mencakup liputan lengkap tentang topik dan kutipan dari buku ini (artikel Wikipedia, ringkasan The Mythical Man-Month karya Bernard I. Ng, Beberapa wawasan dari The Mythical Man Month mulai dari Bab 11, The Mythical Man-Month - Extracts I, The Mythical Man-Month - Extracts II, The Mythical Man-Month Lecture, dan Review / Summary of The Mythical Man-Month, misalnya). Daripada mengulang ikhtisar konten buku secara keseluruhan, saya fokus pada posting ini pada beberapa poin utama dan dalam terang beberapa praktik dan ideologi terbaik perangkat lunak modern.

Bab 19 ("Proposisi The Mythical Man-Month: Benar atau Salah? ") Dari" Edisi Peringatan "akan sangat menarik bagi pembaca yang tidak sabar atau tidak punya waktu untuk membaca keseluruhan buku, tetapi ingin mendapatkan gambaran keseluruhan tentang pernyataan Brooks. Karena Brooks menggunakan bab ini untuk menyajikan "inti dari buku tahun 1975" dalam "bentuk garis besar", pernyataan Brooks ("fakta dan generalisasi aturan praktis dari pengalaman") dari buku aslinya disajikan dalam "bentuk nyata" (sekitar 20 halaman). Kehadiran bab ini dalam "Edisi Peringatan" adalah alasan lain saya tidak memecah buku ini bab demi bab di sini. Bab ini tidak lebih dari sekadar meringkas pernyataan dari buku aslinya; ini juga mencakup beberapa dari Brooks 'Komentar tahun 1995 berdasarkan pengamatan selama 20 tahun lebih dan manfaat melihat ke belakang.

Dalam postingannya The Mythical Man Month: Book Review, Mark Needham menyimpulkan reviewnya atas buku ini dengan pernyataan, "Saya sangat menikmati membaca buku ini dan melihat betapa banyak ide dalam metodologi yang lebih modern telah diketahui di tahun 1980-an dan pada dasarnya bukanlah ide baru. " Saya sepenuhnya setuju dengan pernyataan ini, meskipun kebenarannya mungkin lebih mengejutkan: ini adalah pengamatan dalam sebuah buku yang diterbitkan pada tahun 1975 berdasarkan pengalaman Brooks mengerjakan pengembangan OS / 360 di pertengahan 1960-an dan pada percakapan lanjutan di yang akhir 1960s. Dengan kata lain, beberapa hal yang mungkin kita anggap "baru" atau "trendi" saat ini telah ada dan dikenal selama 45 tahun atau lebih! Sebagai catatan tambahan, ini mengingatkan saya pada presentasi Alan M. Davis kepada Grup Pengguna Java Denver ("What's New About New Methods of Software Development?") Pada akhir 2006 di mana dia mendemonstrasikan berapa banyak metodologi "baru" dan taktik hari ini memiliki pendahulu yang sangat mirip di tahun-tahun lalu dan bagaimana kita tampaknya berputar di antara mereka selama beberapa dekade.

Hal-hal berikut yang dibuat oleh Brooks sangat menarik ketika seseorang terus mengingat di benaknya bahwa buku ini diterbitkan pada tahun 1975 berdasarkan pengalaman di pertengahan hingga akhir 1960-an (kutipan ini berasal dari ringkasan Bab 19 tetapi berdasarkan teks pada edisi 1975):

  • "Pemrogram profesional yang sangat baik sepuluh kali lebih produktif daripada yang miskin ..." [keahlian]
  • "" Tim kecil yang tajam adalah yang terbaik - sesedikit mungkin pikiran. "[Gesit]
  • "Memperbaiki cacat memiliki peluang besar (20 hingga 50 persen) untuk memperkenalkan yang lain. Setelah setiap perbaikan, seseorang harus menjalankan seluruh bank kasus uji yang sebelumnya dijalankan terhadap sistem untuk memastikan bahwa itu tidak rusak dengan cara yang tidak jelas." [pengujian regresi]
  • "Ini bermanfaat untuk membangun banyak perancah debugging dan kode uji, bahkan mungkin 50 persen sebanyak produk yang sedang di-debug." [pengujian unit]
  • "Untuk menjaga dokumentasi tetap terjaga, sangat penting bahwa itu dimasukkan dalam program sumber, daripada disimpan sebagai dokumen terpisah ... bahkan sintaks bahasa tingkat tinggi sama sekali tidak menyampaikan tujuan." [Prinsip KERING]

Ada lebih banyak pengamatan dalam The Mythical Man-Month yang menunjukkan bahwa Brooks dan pengembang lain pada masa itu memahami banyak dasar pengembangan perangkat lunak yang sama yang kita pahami (dan terkadang "temukan" lagi) hari ini. Banyak dari ini lebih terkenal dan disebutkan dalam ulasan lain, jadi saya tidak mencantumkannya di sini kecuali untuk kutipan yang harus daftar ini:

  • "Lebih banyak proyek perangkat lunak yang kacau karena kurangnya waktu kalender daripada gabungan semua penyebab lainnya."
  • Hukum Brooke: "Menambahkan tenaga kerja ke proyek perangkat lunak yang terlambat membuatnya nanti."
  • "Oleh karena itu, bulan manusia sebagai unit untuk mengukur ukuran pekerjaan adalah mitos yang berbahaya dan menipu."

Salah satu bagian yang saya temukan sangat tepat waktu (terutama untuk buku tahun 1975 pada tahun 2011) adalah liputan Brooks tentang bagaimana seorang arsitek perangkat lunak dapat mempengaruhi implementasi. Hal ini dapat menjadi sangat sensitif ketika visi arsitek tidak diimplementasikan oleh pengembang sesuai keinginan arsitek. Kiat Brooks tampaknya sangat praktis. Ia menyatakan bahwa arsitek harus menerima kenyataan bahwa orang yang menerapkan kode memiliki "tanggung jawab kreatif" untuk penerapan itu. Dia lebih lanjut menyarankan bahwa arsitek harus selalu memiliki gagasan untuk menerapkan desainnya, tetapi pada saat yang sama harus bersedia menerima pendekatan alternatif yang sama baiknya yang diusulkan oleh orang yang menerapkan kode tersebut. Brooks lebih jauh menganjurkan agar arsitek membuat semua saran tentang implementasi "diam-diam dan secara pribadi, "bersiaplah untuk melepaskan pujian," dan bersedia mendengarkan "saran untuk perbaikan arsitektur" pelaksana. Ini sepertinya nasihat yang masuk akal bagi saya berdasarkan pengalaman saya di kedua sisi hubungan ini.

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

Buku ini lebih banyak tentang manajemen daripada tentang teknologi. Teknologi telah berubah sangat banyak, jadi beberapa bab lama benar-benar tidak sinkron. Di sisi lain, orang tidak banyak berubah. Itulah mengapa Homer dan Shakespeare dan Alkitab masih relevan, karena semuanya berhubungan dengan sifat manusia. Saya rasa itulah bagian dari penjelasan untuk buku ini: Masalah-masalah dalam mengelola orang dalam tim tidak berubah, meskipun media tempat orang merancang dan alat yang mereka gunakan telah berubah. Beberapa orang menyebut buku itu "kitab suci rekayasa perangkat lunak". Saya setuju dengan itu dalam satu hal: yaitu, semua orang mengutipnya, beberapa orang membacanya, dan beberapa orang melewatinya.

Konsep-konsep yang terdapat dalam kutipan ini mungkin menjadi hal yang paling penting untuk disampaikan dalam review The Mythical Man-Month. Daya tarik buku ini adalah liputannya dan fokusnya pada manajemen orang. Itu tetap abadi dan tidak berubah selama beberapa dekade. Teknologi pasti telah berubah secara signifikan dan itu mungkin hal negatif terbesar tentang buku ini. Contoh Brooks yang didasarkan pada produk, alat, dan bahasa tertentu pada tahun 1975 tentunya lebih ilustratif daripada yang ada saat ini untuk pembaca pada umumnya. Misalnya, bukunya tahun 1975 menyebut PL / I "satu-satunya kandidat yang masuk akal untuk pemrograman sistem saat ini." Terkadang, beberapa bacaan bisa menjadi sedikit lebih menantang karena kurangnya pengalaman langsung dengan produk yang disebutkan Brooks. Namun, dalam banyak kasus, hal ini pada akhirnya tidak banyak menjadi penghalang karena elemen manusia adalah fokus buku dan ini sebagian besar tidak berubah bahkan sampai sekarang. Dalam Bab 19 dari Edisi Peringatan,Brooks merenungkan popularitas bukunya yang terus berlanjut dan menyatakan: "sejauh ituMM-M adalah tentang orang dan tim, keusangan harus lambat. "

The Mythical Man-Month benar-benar tentang proyek pengembangan perangkat lunak perusahaan yang sangat besar. Ini penting untuk diingat saat membaca hal-hal yang mungkin tampak jelas bagi seseorang yang mengerjakan proyek kecil. Bagian terakhir dari kutipan di atas terkenal: "Beberapa orang menyebut buku itu 'kitab suci rekayasa perangkat lunak'. Saya setuju dengan itu dalam satu hal: yaitu, semua orang mengutipnya, beberapa orang membacanya, dan beberapa orang melewatinya. " Buku Brooks dipenuhi dengan referensi Alkitab dan dia jelas mengenal Alkitab. Sayangnya, kutipan Brooks "semua orang mengutipnya, beberapa orang membacanya, dan beberapa orang melewatinya" terlalu benar hari ini. Kami akan terus membacanya, tetapi alangkah baiknya melakukan lebih banyak hal untuk mengubah hal-hal dalam proyek pengembangan perangkat lunak skala besar.

Beberapa orang merasa bahwa The Mythical Man-Monthadalah orang yang mengalah dan bahkan membuat depresi. Saya tidak mendapatkan perasaan yang sama dari membacanya. Sebaliknya, saya merasa hal itu mengingatkan kita bahwa perilaku tertentu merugikan dan tidak berfungsi. Ini juga mengingatkan kita bahwa kita tidak harus menunggu "hal besar berikutnya", tetapi sebaliknya harus terus meningkatkan keahlian kita sebaik mungkin. Banyak tips dan saran praktis diberikan. Brooks jelas senang berada di bidang pengembangan perangkat lunak dan ini ditunjukkan berulang kali dalam bukunya. Brooks menyimpulkan buku "Epilogue: Fifty Years of Wonder, Excitement, and Joy", berbicara tentang bagaimana dia dulu bisa "membaca semua jurnal dan prosiding konferensi," tetapi akhirnya harus melepaskan minat tertentu satu per satu sebagai pengetahuan meledak. Dia menyimpulkan, "Terlalu banyak minat, terlalu banyak kesempatan menarik untuk belajar,penelitian, dan pemikiran. Benar-benar keadaan yang sulit! Tidak hanya akhir yang tidak terlihat, kecepatannya tidak melambat. Kami memiliki banyak kegembiraan di masa depan. "Saya sangat setuju.

Pengeposan asli tersedia di //marxsoftware.blogspot.com/ (Terinspirasi oleh Acara Aktual)

Cerita ini, "Resensi Buku: Bulan Manusia Mitos: Esai tentang Rekayasa Perangkat Lunak, Edisi Ulang Tahun" awalnya diterbitkan oleh JavaWorld.