Mặc dù có những bước đột phá về công nghệ trong nhiều năm qua, việc phát triển phần mềm vẫn tốn nhiều chi phí và thường gặp sai sót kỹ thuật. Phần lớn các nguyên nhân, theo nhiều chuyên gia trong ngành, là từ con người.
Thông tin số liệu có được từ các dự án phát triển phần mềm hơi buồn bã, như nhiều thập kỷ qua. Vẫn có quá nhiều dự án kết thúc với tổng số tiền vượt quá mức dự chi ban đầu và bị chậm tiến độ. Theo kết quả nghiên cứu của tổ chức Standish Group, có khoảng 21% trong 10.000 dự án phần mềm bị thất bại. Các dự án này không được hoàn tất hoặc bị khách hàng bỏ ngang.
Khoảng 37% số dự án nghiên cứu được coi là thành công. Đó là những dự án được hoàn tất theo đúng thời gian đã cam kết trong hợp đồng, trong phạm vi cho phép của ngân sách và được người sử dụng chấp nhận thành phẩm. Khoảng 42% số dự án phần mềm khác không được may mắn. Các dự án này nằm trong nhóm bị chậm tiến độ, vượt quá ngân sách cho phép, không đáp ứng nhu cầu của người sử dụng hoặc bao gồm tất cả các tình trạng nói trên.
Yếu tố con người
Để gỡ rối cho những dự án hao tốn đến tiền triệu đô la, nhiều giám đốc công nghệ thông tin (CIO) đôi khi phải nhờ đến những người như bà Billie Blair – một nhà tâm lý học về tổ chức và cũng là Giám đốc điều hành (CEO) công ty tư vấn Change Strategists Inc. Bà Blair cho rằng sự mất kiểm soát dẫn đến sự thất bại ở một dự án phần mềm thường bắt đầu ở người quản lý dự án (project manager). "Truy nguyên ra bất cứ điều gì dẫn đến kết quả không như ý muốn hay sự thất bại ở công ty đều thấy có dính dáng đến người quản lý", bà Blair khẳng định.
Thông thường, một người quản lý dự án không thể sẵn sàng ngay cho công việc săn sóc và chịu trách nhiệm cho một dự án. Theo bà Blair, có rất nhiều nhà quản lý dự án xuất thân từ một kỹ sư, một chuyên gia công nghệ thông tin hay một nhà phát triển phần mềm có tay nghề cao – những người được hun đúc hoặc tự khẳng định một cách sai lầm rằng hễ là một người có kỹ năng làm việc tốt, kỹ thuật tốt, thì họ chắc chắn sẽ trở thành một nhà quản lý dự án tốt.
Yếu tố con người trong ngành phát triển phần mềm ngày nay cần được chú trọng hơn khi mà các quy trình thúc đẩy tiến độ – như nhấn mạnh thông tin liên lạc, sự hợp tác, viết mã nhanh chóng, thông tin phản hồi thường xuyên trong tất cả các thành viên của nhóm phát triển phần mềm cho dự án – được sử dụng ngày càng nhiều.
Văn hóa hợp tác
Todd Little là một nhà quản lý dự án cao cấp của công ty Landmark Graphics, một công ty cũng đang sử dụng quy trình thúc đẩy tiến độ. Ông Todd Little cho biết, văn hóa doanh nghiệp ở Landmark Graphics là những quy tắc ứng xử chú trọng vào sự hợp tác, chia sẻ giữa các thành viên với nhau và trong toàn đội làm dự án.
Sự hợp tác đóng vai trò hết sức quan trọng trong tiến trình phát triển phần mềm vì giúp phát hiện ra những lỗi gì, ở khâu nào và ngay từ đầu; nhờ đó các khâu khắc phục lỗi cũng được thực hiện sớm. Điều này khác với quy trình làm dự án phần mềm trước đây: chỉ phát hiện được vài lỗi hay nhiều lỗi sau khi sản phẩm phần mềm đã hoàn thành. "Điều kỳ lạ là nếu có một vấn đề nào đó xảy ra trong các dự án phầm mềm sử dụng quy trình thúc đẩy tiến độ thì rất hiếm khi là do lỗi kỹ thuật", nhà quản lý cấp cao của Landmark Graphics nói.
Barry Boehm, Giám đốc Trung tâm Kỹ thuật phần mềm và hệ thống của trường Đại học Nam California, lưu ý rằng một quy trình trong khi thúc đẩy tiến độ có thể giúp một dự án phần mềm được tiến triển theo ý muốn vẫn có "tồn tại những điểm có thể dẫn đến sự thất bại".
Một trong những vấn đề đầu tiên được Boehm gọi là "technical debt", tạm dịch là "nợ kỹ thuật". Nghĩa là, một nhà phát triển tìm cách làm hài lòng người sử dụng và khách hàng, có thể đặt tất cả mọi thứ trong bộ nhớ chính cho đến khi đầy. Cũng theo ông Boehm, những nhà phát triển thỉnh thoảng lại trù trừ khi thêm vào những tính năng bảo mật, trong khi lại hồ hởi đưa vào quá nhiều tính năng không an toàn cho người sử dụng. Đến khi họ phát hiện ra những điều này thì đã quá muộn.
Tuy nhiên, ông Boehm đồng ý với việc áp dụng các quy trình thúc đẩy tiến độ cho các dự án phần mềm, đặc biệt cho những dự án nhỏ hoặc các dự án có nhiều yêu cầu thay đổi từ đơn vị đặt hàng cũng như ở những công ty có môi trường làm việc quy củ.