Sau khi xem loạt MegaSt cấu trúc của National Geographic , tôi đã ngạc nhiên khi các dự án lớn được hoàn thành nhanh như thế nào. Sau khi công việc sơ bộ (thiết kế, thông số kỹ thuật, v.v.) được thực hiện trên giấy, việc thực hiện các dự án lớn chỉ mất vài năm hoặc đôi khi vài tháng .
Ví dụ, Airbus A380 "chính thức ra mắt vào ngày 19 tháng 12 năm 2000" và "vào đầu tháng 3 năm 2005" , máy bay đã được thử nghiệm. Điều tương tự cũng xảy ra với tàu chở dầu khổng lồ, tòa nhà chọc trời, v.v.
So sánh điều này với sự chậm trễ trong ngành công nghiệp phần mềm, tôi không thể tự hỏi tại sao hầu hết các dự án CNTT lại quá chậm, hay chính xác hơn, tại sao chúng không thể nhanh và không có lỗi, ở cùng một quy mô, cho đủ người?
Các dự án như Airbus A380 có cả hai:
Những rủi ro lớn không lường trước được: mặc dù đây không phải là máy bay đầu tiên được chế tạo, nó vẫn đẩy các giới hạn của công nghệ và những thứ hoạt động tốt cho các máy bay nhỏ hơn có thể không hoạt động cho loại lớn hơn do các ràng buộc vật lý; theo cách tương tự, các công nghệ mới được sử dụng chưa được sử dụng, vì ví dụ chúng không có sẵn vào năm 1969 khi Boeing 747 được thực hiện.
Rủi ro liên quan đến nguồn nhân lực và quản lý nói chung: mọi người bỏ việc giữa dự án, không thể tiếp cận một người vì cô ấy đang đi nghỉ, lỗi người thường, v.v.
Với những rủi ro đó, mọi người vẫn đạt được các dự án như những chiếc máy bay lớn đó trong một khoảng thời gian rất ngắn và mặc dù sự chậm trễ giao hàng, những dự án đó vẫn cực kỳ thành công và có chất lượng cao.
Khi nói đến phát triển phần mềm, các dự án hầu như không lớn và phức tạp như một máy bay (cả về mặt kỹ thuật và quản lý), và có ít rủi ro không lường trước được từ thế giới thực.
Tuy nhiên, hầu hết các dự án CNTT đều chậm và muộn và việc thêm nhiều nhà phát triển vào dự án không phải là một giải pháp (từ một nhóm mười nhà phát triển đến hai nghìn đôi khi sẽ cho phép phân phối dự án nhanh hơn, đôi khi không và đôi khi sẽ chỉ gây hại cho dự án và tăng nguy cơ không hoàn thành nó).
Những chiếc vẫn được phân phối thường có thể chứa rất nhiều lỗi, yêu cầu các gói dịch vụ liên tục và cập nhật thường xuyên (hãy tưởng tượng "cài đặt bản cập nhật" trên mỗi chiếc Airbus A380 hai lần mỗi tuần để vá lỗi trong sản phẩm ban đầu và ngăn máy bay gặp sự cố).
Làm thế nào có thể giải thích sự khác biệt? Có phải do thực tế là ngành công nghiệp phát triển phần mềm còn quá trẻ để có thể quản lý hàng ngàn người trong một dự án để cung cấp các sản phẩm quy mô lớn, gần như không có lỗi rất nhanh?