Như DeMarco và Lister đã nêu trong Peopleware khoảng 20 năm trước, phần lớn các dự án phần mềm thất bại không phải do những thách thức kỹ thuật, mà là vấn đề xã hội học . Điều này đã không thay đổi trong những thập kỷ qua, bất kể công cụ của chúng tôi đã cải thiện bao nhiêu.
Quản lý sai, kỳ vọng không thực tế, không có được đúng người cho công việc, và / hoặc không để họ làm công việc của họ, do đó không giữ được họ; nơi làm việc và các công cụ không phù hợp với công việc phát triển SW; giải quyết mâu thuẫn cá nhân; chính trị ; đây chỉ là một vài trong số những vấn đề điển hình có thể khiến dự án bị tiêu diệt ngay từ đầu.
Tại sao viết mã tốt lại khó hơn?
Tôi không hoàn toàn tin rằng việc viết mã tốt bây giờ thực sự khó hơn so với nhiều thập kỷ trước. Trong thực tế, so với mã máy hoặc lắp ráp, mọi thứ chúng ta có trong dòng chính là cách dễ dàng hơn để xử lý. Chỉ cần chúng tôi có thể cần phải sản xuất nhiều hơn nữa.
Có phải chỉ vì các yếu tố đề cập, thời gian và sự phức tạp?
Có, độ phức tạp có thể đạt được chắc chắn đã tăng (và tiếp tục tăng) khi sức mạnh của các công cụ của chúng tôi tăng lên. Nói cách khác, chúng tôi tiếp tục đẩy ranh giới. Theo tôi dịch là khó giải quyết những thách thức lớn nhất hiện nay như cách đây 30 năm để giải quyết những thách thức lớn nhất của ngày hôm đó.
OTOH vì lĩnh vực này đã phát triển rất lớn, có nhiều vấn đề "nhỏ" hoặc "đã biết" hơn so với 30 năm trước. Những vấn đề này về mặt kỹ thuật (không nên) (không) là một thách thức nữa, nhưng ... ở đây nhập vào câu châm ngôn trên :-(
Ngoài ra số lượng lập trình viên đã tăng lên rất nhiều. Và ít nhất nhận thức cá nhân của tôi là mức độ kinh nghiệm và kiến thức trung bình đã giảm, đơn giản vì có nhiều đàn em đến trường liên tục hơn so với những người cao niên có thể giáo dục họ.
Có phải là phương pháp không được thực hành chính xác?
IMHO chắc chắn là không. DeMarco và Lister có một số từ ngữ gay gắt về Phương pháp big-M. Họ nói rằng không có Phương pháp nào có thể làm cho một dự án thành công - chỉ những người trong nhóm mới có thể. OTOH các phương pháp nhỏ mà họ ca ngợi khá gần với những gì chúng ta gọi là "nhanh nhẹn", đang lan truyền rộng rãi (IMHO vì một lý do chính đáng). Không đề cập đến các thực hành tốt như kiểm tra đơn vị và tái cấu trúc, mà chỉ 10 năm trước không được biết đến rộng rãi, và ngày nay thậm chí nhiều sinh viên tốt nghiệp biết những điều này.