Facebook Pixel
Searching...
Tiếng Việt
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
Mythical Man-Month, The

Mythical Man-Month, The

Essays on Software Engineering, Anniversary Edition
bởi Frederick Brooks Jr. 1995 336 trang
4.01
14k+ đánh giá
Programming
Computer Science
Technology
Nghe

Điểm chính

1. Tính toàn vẹn khái niệm là tối quan trọng trong thiết kế phần mềm

Tính toàn vẹn khái niệm là yếu tố quan trọng nhất trong thiết kế hệ thống.

Mô hình tinh thần nhất quán: Một sản phẩm phần mềm phải trình bày một mô hình tinh thần nhất quán cho người dùng, bao gồm ứng dụng, chiến lược sử dụng và giao diện người dùng. Sự nhất quán này là yếu tố chính trong việc dễ sử dụng và chất lượng tổng thể của sản phẩm.

Thách thức của các dự án lớn: Đạt được tính toàn vẹn khái niệm trở nên khó khăn hơn khi kích thước dự án tăng lên và nhiều người tham gia vào quá trình thiết kế. Đây là lý do tại sao quản lý các dự án lập trình lớn khác biệt về chất lượng so với quản lý các dự án nhỏ.

Vai trò của kiến trúc sư: Để duy trì tính toàn vẹn khái niệm, điều quan trọng là phải có một người hoặc một nhóm nhỏ có cùng quan điểm chịu trách nhiệm cho thiết kế tổng thể. Đây là nơi vai trò của kiến trúc sư hệ thống trở nên thiết yếu, đóng vai trò là đại diện của người dùng và đưa ra các quyết định thiết kế quan trọng.

2. Vai trò của kiến trúc sư hệ thống là then chốt cho sự thành công của dự án

Chức năng quan trọng nhất mà các nhà xây dựng phần mềm làm cho khách hàng của họ là việc trích xuất và tinh chỉnh yêu cầu sản phẩm một cách lặp đi lặp lại.

Kiến trúc sư như người đại diện người dùng: Kiến trúc sư hệ thống đóng vai trò là đại diện của người dùng, chịu trách nhiệm cho tính toàn vẹn khái niệm của tất cả các khía cạnh của sản phẩm mà người dùng có thể nhận thấy. Điều này bao gồm việc định nghĩa mô hình tinh thần công khai của sản phẩm và xác định các chức năng và điều khiển của nó.

Phân tách mối quan tâm: Để làm cho nhiệm vụ của kiến trúc sư trở nên khả thi, cần phải phân tách kiến trúc (các khía cạnh mà người dùng có thể nhận thấy) khỏi việc triển khai. Điều này tạo ra một ranh giới rõ ràng trong quá trình thiết kế, cho phép tập trung nỗ lực vào cả hai phía.

Kiến trúc đệ quy: Đối với các dự án lớn, hệ thống có thể được chia thành các hệ thống con, mỗi hệ thống con có một kiến trúc sư riêng báo cáo cho kiến trúc sư chính. Cách tiếp cận đệ quy này cho phép duy trì tính toàn vẹn khái niệm ngay cả trong các hệ thống phức tạp.

3. Hiệu ứng hệ thống thứ hai có thể dẫn đến thiết kế quá mức và thừa tính năng

Hệ thống thứ hai là hệ thống nguy hiểm nhất mà một người từng thiết kế; xu hướng chung là thiết kế quá mức.

Thiết kế quá tham vọng: Hệ thống thứ hai mà một nhà thiết kế tạo ra thường bị ảnh hưởng bởi sự tham vọng quá mức và thừa tính năng. Điều này là do sự tự tin tăng lên của nhà thiết kế và mong muốn thực hiện tất cả các ý tưởng mà họ không thể thực hiện trong hệ thống đầu tiên.

Cân bằng: Khi thiết kế cho một tập hợp người dùng lớn và đa dạng, việc cân bằng các nhu cầu khác nhau của người dùng trở nên thách thức. Điều này thường dẫn đến tình trạng thừa tính năng, làm giảm hiệu suất và dễ sử dụng.

Định nghĩa tập hợp người dùng: Để chống lại điều này, điều quan trọng là phải định nghĩa rõ ràng tập hợp người dùng mục tiêu, bao gồm:

  • Họ là ai
  • Họ cần gì
  • Họ nghĩ rằng họ cần gì
  • Họ muốn gì

Dự đoán và ghi lại các thuộc tính của người dùng và tần suất của chúng có thể giúp tập trung quá trình thiết kế và làm nổi bật các khu vực cần nghiên cứu thêm.

4. Giao diện WIMP đã cách mạng hóa tương tác của người dùng với máy tính

WIMP là một ví dụ tuyệt vời về một giao diện người dùng có tính toàn vẹn khái niệm, đạt được bằng cách áp dụng một mô hình tinh thần quen thuộc, phép ẩn dụ desktop, và mở rộng nó một cách nhất quán để khai thác việc triển khai đồ họa máy tính.

Tính toàn vẹn khái niệm thông qua phép ẩn dụ: Giao diện Windows, Icons, Menus, và Pointing (WIMP) đạt được tính toàn vẹn khái niệm bằng cách áp dụng phép ẩn dụ desktop quen thuộc và mở rộng nó một cách nhất quán vào môi trường máy tính.

Cân bằng sức mạnh và dễ sử dụng: Giao diện WIMP thành công trong việc cân bằng sức mạnh cho người dùng có kinh nghiệm với sự dễ sử dụng cho người mới:

  • Menus cung cấp các tùy chọn có thể khám phá cho người dùng mới
  • Phím tắt cung cấp hiệu quả cho người dùng thành thạo
  • Giao diện cho phép chuyển đổi mượt mà giữa các chế độ này

Thực thi tiêu chuẩn: Sự thành công của giao diện WIMP trên các ứng dụng đạt được thông qua:

  • Xây dựng giao diện vào bộ nhớ chỉ đọc
  • Cam kết và thuyết phục của quản lý
  • Phê bình từ các nhà đánh giá đối với các sản phẩm không tuân thủ

Cách tiếp cận này cho thấy sức mạnh của việc tích hợp trực tiếp trong việc thực thi các tiêu chuẩn kiến trúc.

5. Mô hình thác nước có khuyết điểm; phát triển gia tăng là ưu việt hơn

Sai lầm cơ bản của mô hình thác nước là nó giả định rằng một dự án đi qua quá trình một lần, rằng kiến trúc là tuyệt vời và dễ sử dụng, thiết kế triển khai là hợp lý, và việc hiện thực hóa có thể sửa chữa khi thử nghiệm tiến hành.

Hạn chế của mô hình thác nước:

  • Giả định tiến trình tuyến tính qua các giai đoạn
  • Đặt thử nghiệm hệ thống và người dùng ở cuối
  • Không tính đến phản hồi ngược cần thiết

Lợi ích của phát triển gia tăng:

  • Cho phép thử nghiệm người dùng sớm
  • Cung cấp một hệ thống chạy ở tất cả các giai đoạn
  • Cho phép chiến lược xây dựng theo ngân sách
  • Cải thiện tinh thần đội ngũ thông qua tiến độ rõ ràng

Tinh chỉnh tiến bộ: Bắt đầu với một hệ thống khung cơ bản từ đầu đến cuối, sau đó gia tăng thêm và tinh chỉnh các module. Cách tiếp cận này cho phép thử nghiệm liên tục và thích ứng dựa trên phản hồi của người dùng và các yêu cầu mới nổi.

6. Quản lý dự án hiệu quả đòi hỏi tài liệu rõ ràng và các mốc thời gian

Các mốc thời gian phải cụ thể, đo lường được và được định nghĩa một cách sắc bén.

Tài liệu quan trọng: Một tập hợp nhỏ các tài liệu được định nghĩa rõ ràng đóng vai trò là công cụ then chốt cho quản lý dự án:

  • Mục tiêu
  • Hướng dẫn sử dụng
  • Lịch trình
  • Ngân sách
  • Sơ đồ tổ chức
  • Phân bổ không gian

Đặc điểm của mốc thời gian:

  • Cụ thể và đo lường được
  • Được định nghĩa sắc bén để tránh mơ hồ
  • Dùng để theo dõi tiến độ và xác định sự chậm trễ

Công cụ giao tiếp: Các tài liệu và mốc thời gian này phục vụ nhiều mục đích:

  • Tập trung suy nghĩ và kết tinh các cuộc thảo luận
  • Truyền đạt kế hoạch và quyết định cho đội ngũ
  • Cung cấp cơ sở để theo dõi trạng thái và cảnh báo sớm về các vấn đề

7. Kỹ thuật phần mềm đối mặt với những thách thức độc đáo về năng suất và độ phức tạp

Hệ thống phần mềm có lẽ là những thứ phức tạp và tinh vi nhất mà con người tạo ra.

Độ phức tạp vốn có: Hệ thống phần mềm vốn dĩ phức tạp do tính chất trừu tượng của chúng và nhu cầu tuân thủ các tổ chức và hệ thống của con người.

Nghịch lý năng suất: Trong khi năng suất sản xuất phần cứng đã tăng đáng kể, năng suất phát triển phần mềm không thấy sự gia tăng tương đương. Điều này chủ yếu do tính chất lao động của phát triển phần mềm.

Thách thức:

  • Tính vô hình: Phần mềm thiếu một đại diện hình học tự nhiên
  • Tính thay đổi: Phần mềm liên tục chịu áp lực thay đổi
  • Tính tuân thủ: Phần mềm phải thích ứng với các hệ thống và quy ước bên ngoài

8. Sai lầm về tháng người huyền thoại: thêm nhân lực vào một dự án trễ làm nó trễ hơn

Luật của Brooks: Thêm nhân lực vào một dự án phần mềm trễ làm nó trễ hơn.

Lý do cho sai lầm:

  • Thời gian tăng cường cho thành viên mới
  • Tăng chi phí giao tiếp
  • Phân mảnh nhiệm vụ

Hệ quả:

  • Lập kế hoạch và ước lượng ban đầu cẩn thận là rất quan trọng
  • Các dự án nên được cấu trúc để giảm thiểu sự phụ thuộc lẫn nhau
  • Các chiến lược thay thế (ví dụ: giảm phạm vi) nên được xem xét trước khi thêm nhân lực

Chiến lược giảm thiểu:

  • Sử dụng các đội nhỏ, có kỹ năng (ví dụ: mô hình đội phẫu thuật)
  • Phân chia trách nhiệm rõ ràng
  • Thực hành giao tiếp và tài liệu hiệu quả

9. Mã tự tài liệu và tài liệu đúng cách là cần thiết

Để duy trì tài liệu, điều quan trọng là nó phải được tích hợp vào chương trình nguồn, thay vì giữ như một tài liệu riêng biệt.

Thực hành tự tài liệu:

  • Sử dụng tên biến và hàm có ý nghĩa
  • Tích hợp các chú thích trong mã
  • Sử dụng các tính năng ngôn ngữ tăng cường khả năng đọc

Loại tài liệu:

  • Tài liệu người dùng: Tổng quan, mục đích, hướng dẫn sử dụng
  • Tài liệu kỹ thuật: Kiến trúc, quyết định thiết kế, chi tiết triển khai

Chiến lược tài liệu:

  • Viết tài liệu đồng thời với phát triển mã
  • Sử dụng công cụ tạo tài liệu từ mã
  • Thường xuyên xem xét và cập nhật tài liệu khi hệ thống phát triển

Lợi ích:

  • Cải thiện khả năng bảo trì
  • Dễ dàng tiếp nhận thành viên mới
  • Giảm rủi ro mất kiến thức khi thành viên rời đi

Cập nhật lần cuối:

Đánh giá

4.01 trên tổng số 5
Trung bình của 14k+ đánh giá từ GoodreadsAmazon.

The Mythical Man-Month là một tác phẩm kinh điển về quản lý kỹ thuật phần mềm, vẫn giữ được tính thời sự sau nhiều thập kỷ kể từ khi xuất bản. Độc giả đánh giá cao những hiểu biết của Brooks về lập kế hoạch dự án, cấu trúc đội ngũ và những thách thức của việc phát triển phần mềm quy mô lớn. Nhiều khái niệm, như Luật của Brooks và tầm quan trọng của tính toàn vẹn khái niệm, vẫn còn áp dụng được cho đến ngày nay. Tuy nhiên, một số nhà phê bình lưu ý rằng các tham chiếu công nghệ đã lỗi thời và ngôn ngữ có thiên hướng giới tính. Giá trị bền vững của cuốn sách nằm ở sự thông thái vượt thời gian về các yếu tố con người trong phát triển phần mềm, làm cho nó trở thành một cuốn sách không thể bỏ qua đối với các chuyên gia trong lĩnh vực này.

Về tác giả

Frederick Phillips Brooks Jr. là một nhà khoa học máy tính và kỹ sư phần mềm người Mỹ, nổi tiếng với việc quản lý phát triển dòng máy tính System/360 của IBM và gói phần mềm OS/360. Sau đó, ông trở thành giáo sư tại Đại học Bắc Carolina ở Chapel Hill, nơi ông thành lập khoa khoa học máy tính. Những trải nghiệm của Brooks tại IBM đã truyền cảm hứng cho ông viết cuốn "The Mythical Man-Month," trở thành một tác phẩm kinh điển trong văn học kỹ thuật phần mềm. Công việc của ông đã có ảnh hưởng đáng kể đến lĩnh vực kiến trúc máy tính và quản lý dự án phần mềm. Brooks đã nhận được nhiều giải thưởng cho những đóng góp của mình, bao gồm Giải thưởng Turing vào năm 1999. Cách tiếp cận của ông đối với phát triển phần mềm nhấn mạnh tầm quan trọng của sự đơn giản, tính toàn vẹn khái niệm và hiểu biết về các yếu tố con người trong kỹ thuật.

0:00
-0:00
1x
Dan
Scarlett
Adam
Amy
Liv
Emma
Select Speed
1.0×
+
200 words per minute
Create a free account to unlock:
Bookmarks – save your favorite books
History – revisit books later
Ratings – rate books & see your ratings
Unlock unlimited listening
Your first week's on us!
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Oct 30,
cancel anytime before.
Compare Features Free Pro
Read full text summaries
Summaries are free to read for everyone
Listen to summaries
12,000+ hours of audio
Unlimited Bookmarks
Free users are limited to 10
Unlimited History
Free users are limited to 10
What our users say
30,000+ readers
“...I can 10x the number of books I can read...”
“...exceptionally accurate, engaging, and beautifully presented...”
“...better than any amazon review when I'm making a book-buying decision...”
Save 62%
Yearly
$119.88 $44.99/yr
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.
Settings
Appearance