Khác biệt giữa bản sửa đổi của “The Mythical Man-Month”
Nội dung được xóa Nội dung được thêm vào
Không có tóm lược sửa đổi |
Không có tóm lược sửa đổi |
||
Dòng 10:
}}
'''''The Mythical Man-Month: Essays on Software Engineering''''' là một cuốn sách về quản trị dự án phần mềm được viết bởi [[Fred Brooks]], tập trung ở đó là phát biểu "Thêm người vào một dự án đang bị trễ sẽ làm cho nó trễ hơn." Ý tưởng này được biết đến như là [[luật của Brooks]],
Những quan sát của Brooks dựa trên kinh nghiệm làm việc của ông tại [[IBM]] khi quản lý dự án phát triển Hệ điều hành [[OS/360]]. Ông đã có một sai lầm khi thêm nhân lực vào một dự án đang bị trễ so với kế hoạch. Ông còn mắc phải một sai lầm khi đánh giá một dự án viết một ngôn ngữ lập trình tên là Algol sẽ cần sáu tháng mà không chú ý đến số lượng nhân lực sẽ tham gia. Khuynh hướng những quản trị dự án lặp lại những sai lầm tương tự khiến Brooks đặt tên cuốn sách là "Thánh kinh của phát triển phần mềm" bởi vì "Mọi người đều đọc nó nhưng không ai làm tương tự"
==Ý tưởng==
====
Phân công thêm nhiều lập trình viên vào một dự án đang bị trễ tiến độ sẽ làm cho nó trễ hơn, do thời gian cần thiết để một lập trình viên mới học về dự án, cũng như làm quá tải sự trao đổi thông tin trong nội bộ nhóm. Khi N người phải giao tiếp với nhau, khi N tăng, output M của họ giảm và có thể trở thành âm (<0)(ví dụ: tổng khối lượng công việc còn lại vào cuối ngày lớn hơn tổng khối lượng công việc vào đầu ngày hôm đó, cụ thể là khi nhiều lỗi được tạo ra)
:* Công thức tính khối lượng thông tin trao đổi trong nhóm: <math> n (n - 1)/2 </math>
:* Ví dụ: 50 lập trình viên -> <math> 50 (50 - 1)/2 = 1225 </math> kênh giao tiếp thông tin
====
Hệ thống thứ hai hay Hiệu ứng hệ thống thứ hai một kỹ sư thiết kế là hệ thống nguy hiểm nhất mà kỹ sư đó đã từng thiết kế, khi kỹ sư đó hướng tới việc tích hợp chặt chẽ tất cả những tính năng cộng thêm anh ta đã tạo ra nhưng lại không thêm vào hệ thống đầu tiên (do sự giới hạn thời gian). Vậy thì, khi bắt đầu thực hiện hệ thống thứ hai, một kỹ sư nên luôn ghi nhớ rằng anh ta nên nhạy cảm với việc tăng cường nhiều tính năng kỹ thuật.
====Quản lý tiến trình====
Câu hỏi: Một dự án lớn sẽ trở thành trễ một năm như thế nào? Câu trả lời: Một ngày tại một thời điểm! Việc không giữ đúng thời hạn tăng dần cuối cùng sẽ dồn lại và phát sinh sự chậm trễ lớn. Tiếp tục chú ý để đạt các mốc nhỏ rất cần thiết tại mỗi cấp quản lý.
====Nhận thức về tính toàn vẹn của hệ thống====
Để tạo một hệ thống thân thiện với người dùng, một hệ thống phải có một nhận thức toàn vẹn, điều chỉ có thể đạt được bằng cách tách biệt kiến trúc khỏi việc thực thi. Một kiến trúc sư trưởng (hoặc một nhóm nhỏ kiến trúc sư), sẽ hành động như là một user, quyết định cái gì sẽ được để vào và cái gì sẽ được bỏ ra khỏi hệ thống. Một "ý tưởng siêu hạng" bởi một người sẽ không được thêm vào nếu nó không phù hợp với toàn bộ thiết kế hệ thống. Thực tế, để đảm bảo một hệ thống thân thiện với người dùng, một hệ thống có thể có ít hơn những tính năng mà nó có thể có nhưng những tính năng đó đều được cân nhắc thận trọng. Nếu một hệ thống sử dụng quá phức tạp, nhiều tính năng sẽ trở thành vô dụng vì không ai có thời gian để học hỏi nó.
====The Manual====
Hàng 54 ⟶ 55:
{{reflist}}
==Các tham khảo
*[http://tal.forum2.org/mythman A review by Tal Cohen]
*[http://www.cs.unc.edu/~brooks/ Frederick P. Brooks, Jr. Homepage]
|