2009-05-04 24 views
36

Cuốn sách này được viết trong thời đại của các hệ thống chia sẻ thời gian, lập trình thủ tục và khoảng 30 năm kinh nghiệm về kỹ nghệ phần mềm. Với sự cải tiến của những thứ như thư viện hiện có, ngôn ngữ cấp cao hơn, IDES, và số lượng tài liệu và ví dụ có sẵn trên internet, bao nhiêu cuốn sách vẫn còn đúng?Có bao nhiêu tháng của tháng người đàn ông thần thoại vẫn được áp dụng?

Mặc dù tôi có thể tin rằng việc thêm người mới vào dự án ban đầu có thể làm chậm công việc, tôi nghĩ những thứ như thử nghiệm đơn vị, tách mối quan tâm và các hình thức tự động hóa và cải tiến thiết kế khác sẽ cho phép các thành viên mới của nhóm trở thành sản xuất nhanh hơn sau đó được giả định trong cuốn sách, giả sử dự án có tài liệu thiết kế tốt và các quy trình tại chỗ.

Tôi không có kinh nghiệm về các dự án lớn hoặc với các nhóm lớn, vì vậy, tôi muốn biết những gì bạn có kinh nghiệm với họ. chỉnh sửa: Tôi đã tự hỏi liệu các công cụ giao tiếp mới như Wikis, nhắn tin tức thời và Internet nói chung có giảm thời gian giao tiếp không. Dựa trên mọi câu trả lời, tôi sẽ nói rằng bất kỳ sự gia tăng nào về hiệu quả truyền thông đã được bù đắp bằng sự phức tạp gia tăng.

+0

Giả sử tài liệu và quy trình thiết kế tốt là một giả định khá lớn đối với tâm trí của tôi. Bạn đang gọi một dự án hoặc nhóm lớn? Nếu dự án mất một hoặc hai năm là lớn hay bạn muốn có cái gì đó gần hơn một thập kỷ để nó lớn? –

+1

Cũng đừng quên rằng sự phức tạp chung đã phát triển rất nhiều kể từ đó ... – Lucero

+5

Nếu bạn có ấn bản kỷ niệm, nó phải chứa một chương có tên "Không có viên đạn bạc", trong đó Brooks phản ánh trên "không có viên đạn bạc" khai báo sau hơn 25 năm. – Schwern

Trả lời

16

Cuốn sách vẫn có những thứ để cho chúng tôi biết, và tôi dành cho một người đã gặp phải các vấn đề trong giao tiếp làm tăng quy mô đội. Bạn nên lưu ý rằng kiểm tra đơn vị, tách mối quan tâm, vv không phải là khái niệm mới.

Tuy nhiên, một số thứ đã không đứng trước thời gian thử nghiệm. Tôi không tin rằng việc viết các biểu đồ dòng ASCII trong mã của bạn là một ý tưởng tốt, và cách tiếp cận "nhóm phẫu thuật" đã được một số người thử (Charles Simony tại MS, nổi tiếng nhất) và thấy không hoạt động tốt.

+3

Brooks sau đó cho biết sai lầm lớn nhất của ông là trong giới thiệu rằng các nhà phát triển có nhiều kiến ​​thức về nội bộ trong mã của người khác càng tốt, thay vì thực thi các ranh giới. Tôi vẫn coi cuốn sách là cần thiết trong việc dạy cách làm phần mềm. –

55

Điều này vẫn đúng như ngày hôm nay. Điều này là do cơ bản là về giao tiếp giữa những người làm việc trên cùng một dự án, và không có tiến bộ nào trong 30 năm qua đã thay đổi đáng kể điều đó.

Tất nhiên, chúng tôi đã học được rất nhiều trong 30 năm đó, nhưng tất cả các cải tiến trong công cụ và cam kết của chúng tôi đều gia tăng, theo dự đoán "không có viên đạn bạc" của Brooks.

+8

Tôi đọc cuốn sách này khoảng 4 năm trước, hoài nghi rằng bất cứ điều gì được viết về một hệ điều hành được xây dựng cách đây 40 năm, không nói gì về CNTT bởi ai đó lớn tuổi hơn bố tôi, có thể có liên quan hôm nay, và tôi bị thổi bay Tôi làm hàng ngày. Thật hiếm khi một cuốn sách CNTT có thể nhắm mục tiêu kỹ thuật thay vì ngôn ngữ, và cuốn sách này làm nó hoàn hảo. Vẫn có liên quan như đã đọc bao giờ hết! – SqlRyan

+2

Phần khác anh ta nói đến là không có viên đạn bạc nào để khắc phục vấn đề này. – LanceSc

+0

Tôi nhận ra hầu hết là về giao tiếp. Tôi đã tự hỏi nếu những thứ như email của Wiki, và ngay lập tức messenging giảm nhu cầu giao tiếp để nó được nhanh hơn và mất ít thời gian hơn. Nó xuất hiện bất kỳ tăng tốc độ đã được cân bằng bởi sự phức tạp tăng lên dẫn đến giao tiếp nhiều hơn nữa. – Jared

5

Hai điều lưu ý trong tâm trí của tôi: "phiên bản 2" vẫn được áp dụng và "thêm nhiều người không nhất thiết phải nhanh hơn".

Spolsky thảo luận về "phiên bản 2" theo cách riêng của mình. Tôi không nhớ nếu anh ta liên kết cụ thể với MMM nhưng nó rất giống với khái niệm.

Giao tiếp đã trở nên hiệu quả hơn rất nhiều so với khi MMM được xác định, tuy nhiên, tôi nghĩ rằng đó là tất cả tỷ lệ thuận. Phải mất nhiều hơn nữa để sản xuất phần mềm sẵn sàng hơn khi MMM được viết.

Có người nói rằng mọi thứ trong khoa học máy tính được phát hiện vào năm 1960 và mọi thứ kể từ đó đã được phái sinh.

10

Ý tưởng không phải là "các nhóm lớn không hoạt động", đó là "ném người/tiền vào vấn đề không phải là câu trả lời". Những điều như thử nghiệm đơn vị, tách mối quan tâm, vv đang làm những việc khác thay vì chỉ ném người vào vấn đề. Những thứ khác này cho phép bạn cẩn thận thêm người khác vào đúng vị trí để tăng tốc độ. Nếu bất cứ điều gì, các điểm bạn thực hiện hỗ trợ các ý tưởng của cuốn sách.

+0

Brooks nói về nhu cầu của các đội lớn, chỉ ra rằng sẽ không có cách nào để có được OS/360 được thực hiện trong bất kỳ thời gian hợp lý trong một cái gì đó giống như một nhóm nhỏ. –

6

Tôi chắc chắn nghĩ rằng những thứ như "Không có viên đạn bạc" được áp dụng ngày hôm nay như cách đây nhiều thập kỷ, đặc biệt khi chúng ta thấy ngày càng có nhiều người trẻ tham gia vào ngành công nghiệp và nghĩ x là công nghệ/ngôn ngữ giết người mới nhất và lớn nhất tất cả các công nghệ khác sẽ chết vì nó. Được cấp, các tham chiếu đến Ada hoặc các máy tính chia sẻ được cổ, nhưng khái niệm về những khó khăn vô tình và thiết yếu, mua và xây dựng, cách mã phức tạp theo định nghĩa bởi vì chúng ta không lặp lại các phần, và tất cả các chủ đề lý thuyết khác vẫn hoàn toàn chính xác và có liên quan.

Đối số khác cho lý do tại sao TMMM là có liên quan là, nó không thực sự về phần mềm riêng của mình nhưng về lập trình viên làm mọi việc như thế nào. Bằng cách này, thật khó để nó trở nên lỗi thời.

39

Không phải là loại giống như câu hỏi nếu Art of War Tôn Tử là vẫn áp dụng đối với chiến tranh kể từ khi chúng tôi có trang thiết bị hiện đại?

+5

+1 Như bất kỳ tham chiếu đến Nghệ thuật chiến tranh là tuyệt vời – willcodejavaforfood

+2

Tôi đã chỉ viết rằng nó giống như cách Newton vẫn còn có liên quan mặc dù chúng ta có cơ học lượng tử. – Schwern

+0

Tôi luôn nghĩ rằng chuyến bay cuối cùng đã lỗi thời Nghệ thuật Chiến tranh. – Joshua

0

Một lập trình viên bây giờ có thể viết mã hơn/xây dựng thêm phần mềm hơn một lập trình viên có thể trở lại sau đó, nhưng thêm nhà phát triển thứ hai sẽ không sản xuất gấp đôi.

Nếu/khi tôi nhận được một dự án với tài liệu thiết kế tốt và quy trình tại chỗ, tôi sẽ cho bạn biết nếu có thể cải thiện bất cứ điều gì.

+0

Hãy gọi cho tôi khi bạn tham gia dự án đó! – bnieland

3

đọc TMM như một cuốn sách phác thảo một vấn đề, có lẽ là vấn đề, trong công nghệ phần mềm: không phải là công nghệ của mình, người dân của mình! Tất cả những cải tiến mà bạn đề cập đến từ sự thực hiện cốt lõi đó. Tất cả đều sẵn sàng để giải quyết các vấn đề mà Brooks đưa ra. Đây là cuốn sách mà tôi chắc chắn là Kent Beck và Ward Cunningham và Alister Cockburn và Martin Fowler đều đọc, lấy trái tim và sau đó bắt đầu chế tạo những viên đạn bạc của họ.

2

Nhu cầu về lực lượng lao động phát triển đã phát triển nhanh chóng trong 40 năm qua và nhu cầu này sẽ không dừng lại. Kể từ khi tỷ lệ thông minh (vide “thông minh và hoàn thành công việc” của Joel) người dân trong cộng đồng nói chung vẫn như nhau, giáo dục ngày càng nhiều nhà phát triển mỗi năm có nghĩa là tính thông minh trung bình của nhà phát triển đang giảm.
40 năm trước, đó là demigods đã trở thành nhà phát triển; 20 năm trước, nó là một công việc cho những người thông minh, trong khi bây giờ khi tôi nhìn vào các sinh viên CS trẻ tuổi ở Alma Mater của tôi có vẻ như họ đang dùng tất cả những người biết máy tính là gì.
Điều này không có nghĩa là thảm họa đang đến - thế giới phương Tây tiếp tục nhập khẩu những người thông minh (hoặc công việc khoán ngoài) từ các thị trường mới nổi hoặc các nước thế giới thứ ba. Các công cụ phát triển mới giúp dễ dàng phát triển các ứng dụng tốt hơn. Những yếu tố đó dường như trung hòa lẫn nhau, làm cho MM-M vĩnh cửu thật sự.

3

Tôi coi đây là một trong những cuốn sách "phải đọc" cho bất kỳ ai muốn hiểu quy trình phát triển phần mềm.

2

Tháng Manical huyền thoại là một ngày rất đọc, nhưng sự thật cốt lõi vẫn được áp dụng. Chắc chắn Brooks thảo luận về sự cần thiết của một thư ký mà rõ ràng là không đúng ngày hôm nay và khái niệm của ông về một đội phẫu thuật không hoạt động tốt, nhưng hầu hết các cuốn sách vẫn chính xác. Cái nhìn sâu sắc của ông rằng các yêu cầu truyền thông tăng cùng với quy mô của đội vẫn là sự thật. Quan sát của ông rằng việc thêm người vào một dự án muộn khiến cho nó sau này đã được sinh ra bởi rất nhiều dự án. Bài kiểm tra đơn vị giúp đỡ một chút, nhưng họ không ngăn chặn một từ sự hiểu lầm mã hoặc hỏi rất nhiều câu hỏi. Không có Silver Bullet nào cũng tiếp tục kiểm tra thời gian.

+2

Điều khiến tôi ngạc nhiên là phần lớn những thứ quan trọng vẫn còn thiếu sót. –

9

Cả hai tác phẩm nổi tiếng Brooks, "Không Silver Bullet" và "The Mythical Man-Month" là lời giải thích của những hạn chế cơ bản, bằng các ngôn ngữ lập trình và quản lý dự án tương ứng.

Trong khi đúng là một số chương xa hơn một nửa so với giao thức TMMM quá nhiều với công nghệ thời gian, các chương còn lại vẫn có liên quan ngày hôm nay như khi viết.

Trong TMMM, Brooks tuân theo một kỹ thuật "phác thảo vấn đề", "hiển thị một số khởi đầu sai" và "đề xuất giải pháp của riêng tôi". Một số nhà bình luận ở trên đã chỉ ra rằng các giải pháp của ông có thể được coi là lỗi thời vào thời điểm này, nhưng mô tả ngắn gọn của ông về các vấn đề vốn có trong các dự án lớn làm cho cuốn sách đáng đọc.

Một chủ đề mà anh tiếp tục quay lại là chi phí truyền thông như là một yếu tố hạn chế cho các nhóm lớn. Như một thử nghiệm suy nghĩ, hãy xem xét hiệu quả của Internet như một phương tiện truyền thông cho các lập trình viên, và chất xúc tác đã được cho các dự án mã nguồn mở lớn.

Cá nhân, tôi sẽ đọc cuốn sách chỉ dành cho phần "Niềm vui của thủ công". Tôi đã không bao giờ đọc bất cứ điều gì để mô tả một cách thanh lịch những gì lập trình tốt nhất của nó là cảm thấy như thế nào. (Nếu bạn tò mò, nó ở trang 7 và có thể xem được trong amazon.com "Nhìn vào bên trong!")

1

Tất cả. Thực tế đơn giản là các dự án phần mềm là không cần thiết; chúng tôi xây dựng kiến ​​thức tên miền của riêng mình, thực sự, trực tiếp vào các giải pháp của chúng tôi. Chuyển giao tri thức miền là tốn kém, cho cả người chuyển nhượng và cho người được chuyển giao; điều này đã không thay đổi. Và tôi, đối với một, tin rằng nó sẽ không bao giờ, bất kể thực hành và công cụ được sử dụng là gì. Mọi thứ có thể tốt hơn, nhưng thực tế đơn giản là việc dạy và học là cả những thứ đắt tiền và khó khăn, và không có cách nào để tránh chúng.

1

Các yếu tố xã hội vẫn còn hiện diện, bởi vì con người vẫn cơ bản là những con thú giống như chúng ta đã 50 năm trước.

Ví dụ kỹ thuật gần như hoàn toàn lỗi thời, và chỉ có ý nghĩa khi bạn nghĩ về Hệ thống MIPS 0.034/360 năm 1964. Khi bạn chỉ có 8 KB bộ nhớ, gợi ý rằng người dùng phải chịu trách nhiệm xử lý bước nhảy vọt năm, thay vì lãng phí 26 byte bộ nhớ hệ thống (như Brooks đã làm) có ý nghĩa, nhưng ngày nay nó có vẻ hết sức ngớ ngẩn. Tôi không biết bất kỳ hệ thống nào nhỏ ngày hôm nay - điện thoại của bạn mạnh hơn hàng ngàn lần so với hệ thống OS/360 mạnh mẽ nhất. Hôm nay chúng ta biết nhiều hơn về khả năng sử dụng và tương tác giữa con người và máy tính, và khiến cho người dùng chịu trách nhiệm về loại điều đó chỉ là điên rồ.

0

Nếu bạn nghĩ về một dự án lớn bị trễ, thì có nhiều khả năng trong chế độ khủng hoảng/hoảng loạn, như với hầu hết mọi thứ trong chế độ này, câu trả lời tốt nhất là một kế hoạch khá nửa, chỉ cần ném thêm tài nguyên vào cuộc khủng hoảng không giải quyết bất cứ điều gì khác ngoài các nguồn tài nguyên và giải quyết vấn đề.

Không có thay thế cho việc lên lịch (phát âm loét), lập kế hoạch và quản lý tốt.

Như với hầu hết các "một lót" hoặc "quy tắc vàng", hãy xem xét chúng nhiều hướng dẫn hơn (có bối cảnh) hơn là đặt trong đá.

Các vấn đề liên quan