Tài liệu Quản lý dự án phần mềm

  • Số trang: 303 |
  • Loại file: PDF |
  • Lượt xem: 164 |
  • Lượt tải: 0
tranvantruong

Đã đăng 3224 tài liệu

Mô tả:

QUẢN LÝ DỰ ÁN PHẦN MỀM
Kinh nghiệm quản lý dự án phần mềm Tác giả: John Vũ Người dịch và biên tập: Ngô Trung Việt Hà Nội, 12/2012 Nguồn tư liệu: John Vu, Carnegie Mellon University http://www.science-technology.vn Mục lục 1. Quản lí dự án phần mềm ...................................... 1 Quản lí dự án-1 ........................................................................ 1 Quản lí dự án-2 ........................................................................ 3 Quản lí dự án-3 ........................................................................ 5 Quản lí dự án và quản trị văn phòng ........................................ 7 Quản lí dự án phần mềm-1 ...................................................... 9 Quản lí dự án phần mềm-2 .................................................... 14 Quản lí dự án phần mềm-3 .................................................... 17 Quản lí dự án phần mềm-4 .................................................... 20 Mục đích của quản lí dự án phần mềm .................................. 23 Phương pháp quản lí dự án mới ............................................ 25 Thành công của dự án phần mềm ......................................... 31 Dự án phần mềm thành công ................................................. 34 Vấn đề với dự án phần mềm .................................................. 35 Vấn đề với dự án phần mềm lớn ........................................... 39 Thất bại dự án ........................................................................ 41 Cách giúp cho một dự án thất bại. ......................................... 43 Tránh thất bại dự án phần mềm ............................................. 45 Cách ngăn ngừa thất bại dự án ............................................. 47 Công việc dự án sớm ............................................................. 50 2. Người quản lí dự án ............................................ 53 Người quản lí dự án-1 ............................................................ 53 Người quản lí dự án-2 ............................................................ 55 Người quản lí dự án-3 ............................................................ 58 Người quản lí dự án hiệu quả ................................................ 61 Người quản lí dự án kém nhất ............................................... 63 Người quản lí dự án giỏi nhất ................................................ 67 i Chất lượng của người quản lí dự án ...................................... 68 Kĩ năng của người quản lí dự án-1 ........................................ 70 Kĩ năng của người quản lí dự án-2 ........................................ 73 Lời khuyên cho người quản lí dự án-1 ................................... 76 Lời khuyên cho người quản lí dự án-2 ................................... 87 Lời khuyên cho người quản lí dự án-3 ................................... 89 Đào tạo người quản lí dự án .................................................. 94 Ưu tiên của người quản lí dự án phần mềm .......................... 97 Người quản lí dự án trong miền mới .................................... 101 Phụ nữ trong quản lí dự án .................................................. 102 Kinh nghiệm quản lí dự án ................................................... 106 Lãnh đạo kĩ thuật .................................................................. 109 3. Tổ dự án ............................................................. 113 Kĩ năng con người ................................................................ 113 Làm việc theo tổ ................................................................... 115 Làm việc theo tổ và làm việc theo nhóm .............................. 118 Làm việc trong tổ dự án lớn ................................................. 121 Làm việc tổ của dự án .......................................................... 123 Làm việc tổ trong lập kế hoạch dự án phần mềm ................ 125 Lập kế hoạch làm việc tổ ...................................................... 127 Cách động viên tổ................................................................. 130 Làm việc nhóm và làm việc tổ .............................................. 133 Tương tác với các thành viên tổ .......................................... 136 Công nhân có kĩ năng cho công việc dự án ......................... 138 4. Quản lí dự án theo kế hoạch ............................ 143 Vòng đời phát triển phần mềm và Vòng đời quản lí dự án .. 143 Qui trình cho dự án phần mềm ............................................ 145 Qui trình đơn giản cho dự án nhỏ ........................................ 151 Lập kế hoạch dự án phần mềm-1 ........................................ 155 Lập kế hoạch dự án phần mềm-2 ........................................ 159 Lập kế hoạch dự án phần mềm: Qui trình "mười bước" ...... 164 Qui trình lập kế hoạch dự án ................................................ 167 Ước lượng dự án-1 .............................................................. 170 Ước lượng dự án-2 .............................................................. 173 Ước lượng dự án-3 .............................................................. 176 Ước lượng dự án-4 .............................................................. 178 Kiến trúc hệ thống ................................................................ 179 ii Vòng đời kiểm thử ................................................................ 182 Cách đo ................................................................................ 184 Cách đo và độ đo ................................................................. 186 Quản lí rủi ro-1...................................................................... 187 Quản lí rủi ro-2...................................................................... 192 Chất lượng phần mềm-1 ...................................................... 194 Chất lượng phần mềm-2 ...................................................... 196 Chất lượng phần mềm-3 ...................................................... 199 Chất lượng phần mềm-4 ...................................................... 204 Chất lượng phần mềm-5 ...................................................... 206 Chất lượng phần mềm-6 ...................................................... 207 Cải tiến chất lượng phần mềm ............................................. 208 Đảm bảo chất lượng phần mềm .......................................... 210 Kiểm điểm phần mềm .......................................................... 213 Kiểm thử chất lượng............................................................. 216 Kiểm thử chấp nhận của người dùng................................... 220 Trắc nghiệm và kiểm nghiệm ............................................... 222 Thoả mãn của khách hàng ................................................... 224 Khi nào khách hàng phần mềm xây nhà .............................. 226 Nói chuyện với khách hàng .................................................. 228 Một khảo cứu về dự án phần mềm ...................................... 230 5. Phương pháp quản lí Agile .............................. 233 Agile ...................................................................................... 233 Dự án Agile ........................................................................... 235 Một số sự kiện về cách tiếp cận Agile .................................. 237 Quản lí dự án Agile............................................................... 240 Người kiểm thử trong dự án Agile ........................................ 243 Phát triển phần mềm Agile ................................................... 245 Một số sự kiện về cách tiếp cận Agile .................................. 249 Agile và kích cỡ dự án.......................................................... 251 Người quản lí dự án trong môi trường Agile ........................ 253 Người kiểm thử trong dự án Agile ........................................ 255 SCRUM ................................................................................ 257 6. Dự án Capstone................................................. 263 Dự án Capstone ................................................................... 263 Hướng dẫn dự án Capstone - phần 1 .................................. 266 Hướng dẫn dự án Capstone - phần 2 .................................. 272 iii Hướng dẫn dự án Capstone - phần 3 .................................. 275 Hướng dẫn dự án Capstone - phần 4 .................................. 280 Một số vấn đề trong dự án Capstone ................................... 285 Học trong dự án Capstone ................................................... 288 Đối thoại về làm việc tổ ........................................................ 292 iv 1. Quản lí dự án phần mềm Quản lí dự án-1 Quản lí dự án phần mềm là việc khó: Là người quản lí dự án, bạn phải lấy được yêu cầu từ khách hàng, lịch biểu kế hoạch, tài nguyên và thiết kế tất cả các đường găng, các cột mốc, các hạn chót để chắc chắn rằng bạn đáp ứng yêu cầu cũng như tạo ra các kiểm thử nội bộ, kiểm thử chấp nhận. Bạn cũng ban hành các chỉ dẫn, thiết lập các giao thức thông tin, báo cáo trạng thái, họp và giải quyết lỗi, vấn đề, tình huống khẩn trương và mọi tài liệu. Tuy nhiên, sau nhiều năm quản lí cả các dự án nhỏ và lớn, tôi có thể nói rằng nhân tố quan trọng nhất đem dự án tới thành công là "vấn đề con người." Theo kinh nghiệm riêng của tôi, phần lớn các dự án phần mềm không bao giờ đi theo đúng kế hoạch bởi vì khách hàng bao giờ cũng thay đổi các yêu cầu nhưng không bao giờ thay đổi lịch biểu hay chi phí. Họ bao giờ cũng phàn nàn rằng dự án phần mềm bị chậm, đắt và không cung cấp cho họ điều họ muốn. Tuy nhiên, phần lớn dự án tôi quản lí bao giờ cũng thành công đầy đủ, tới mức độ nào đó, bởi vì những yếu tố "con người" trong những dự án đó. Đó là lí do tại sao tôi nghĩ 1 con người là khía cạnh quan trọng nhất của tất cả các dự án phần mềm. Khi dự án lâm vào vấn đề nghiêm trọng, phương pháp hay công cụ quản lí tốt nhất sẽ không có ích bởi vì chúng không được thiết kế để giải quyết loại vấn đề này. (Không công cụ nào có thể sửa chữa được phàn nàn của khách hàng và phương pháp quản lí được dạy trong đại học không bao quát các vấn đề về thay đổi yêu cầu - Bao nhiêu giáo sư đã từng thay đổi bài tập lớn cho học sinh?) Chỉ những người tận tuỵ, cam kết, có tính đổi mới cao với năng lực, kinh nghiệm và tri thức của họ mới có thể giúp bạn giải quyết được những vấn đề này. Tôi không nói rằng chỉ người giỏi mới làm cho các dự án phần mềm thành công nhưng không có con người giỏi thì dự án không thể được thực hiện. Tôi đã thấy nhiều nhân viên làm việc cần mẫn để sửa chữa vấn đề không đòi hỏi bao nhiêu ngày trong tuần hay bao nhiêu giờ trong ngày, nếu cần thì từ 14 tới 16 giờ là chuyện thường. Họ sẽ thảo luận về điều được cần tới và điều có thể được thực hiện để giúp cho người quản lí dự án của họ tránh thất bại. Một số người có thể làm việc nhiều tuần để sửa hệ thống quan trọng nhất khi nó bị hỏng. Nhiều người ít ngủ hay không ngủ chút nào mà không phàn nàn gì. Cho nên để đảm bảo thành công, người quản lí phải hỏi câu hỏi: Tôi phải tìm những người như thế ở đâu đây? Câu trả lời là ở trong hành vi của bạn bởi vì chính nhân viên giỏi sẽ tìm người quản lí xứng đáng để làm việc cùng chứ không theo cách khác. Phần lớn các bài giảng về quản lí không bao giờ đề cập tới việc khen thưởng hành vi tốt đẹp bạn muốn được lặp lại bởi vì phương pháp của người quản lí ít ảnh hưởng tới nhân viên và hành vi của họ. (Phần lớn các giáo sư chẳng bao giờ làm việc trong công nghiệp hay đòi có người làm việc cho họ để cho họ ra lệnh chứ không phải là khen thưởng hay 2 thừa nhận) cho nên họ dạy rằng bạn là ông chủ và có quyền đòi hỏi nhân viên làm việc cần mẫn hơn và nhiều hơn thay vì hiểu rằng việc bó buộc đó không đem tới hành vi tốt nhất của nhân viên. Để là người quản lí giỏi, đặc biệt là người quản lí phần mềm bạn phải hỏi: 1) Tôi có phải cảm ơn những người làm việc tốt không? 2) Cá nhân tôi có nên viết bức thư ngắn hay email "cám ơn" mọi người về hiệu năng của họ không? 3) Tôi có nên áp dụng hiệu năng của nhân viên làm cơ sở cho đề bạt không? 4) Cá nhân tôi có nên thừa nhận công khai hiệu năng tốt của mọi người không? 5) Tôi có nên tổ chức họp tôn vinh sự thành công của các nhân viên không? 6) Tôi có phải yêu cầu chủ tịch công ti thưởng cho những người có hiệu năng tốt không? Nếu câu trả lời là KHÔNG thì tốt hơn cả là bạn hãy học những điều này thật nhanh bởi vì người nhân viên tốt bao giờ cũng có cơ hội chọn lựa nơi làm việc tốt và những người quản lý giỏi. Quản lí dự án-2 Một người viết cho tôi: “Tôi làm việc cho một công ti chế tạo nhỏ với vài trăm nhân viên. Làm sao tôi áp dụng kĩ thuật quản lí dự án cho môi trường cơ xưởng được?" 3 Đáp: Quản lí dự án là nguyên lí doanh nghiệp được dùng trong nhiều ngành công nghiệp và công ti. Để áp dụng kĩ thuật quản lí dự án trong công ti của bạn, bạn có thể bắt đầu với vài điều cơ bản như quản lí thời gian, cộng tác làm việc tổ, làm tài liệu và trao đổi. Bạn có thể khuyến khích tổ dự án của bạn làm tài liệu thời gian của họ từng ngày. Điều đó sẽ giúp họ thấy cách thời gian của họ được dùng; mất bao nhiêu thời gian để hoàn thành những nhiệm vụ nào đó. Điều này cũng sẽ giúp cho bạn ước lượng thời gian phân bổ cho nhiệm vụ và dự án tương lai. Bạn có thể thúc đẩy nhiều cộng tác và làm việc tổ giữa các thành viên tổ. Đừng cho phép họ làm việc ở chỗ cô lập mà để họ làm việc trong các nhóm nhỏ nơi họ có thể học được lẫn nhau. Trong phần lớn các cơ xưởng, công việc được phân công dựa trên kĩ năng và kinh nghiệm. Đào tạo là không chính thức và thường được truyền từ công nhân có kinh nghiệm sang công nhân ít kinh nghiệm hơn. Điều đơn giản và dễ dàng cho người này có thể là lẫn lộn và khó với người khác. Bằng việc để mọi người cùng làm việc và quan sát lẫn nhau, họ có thể học nhanh hơn và trao đổi ý tưởng nhanh hơn giữa bản thân họ. Bạn nên bắt đầu tạo ra và làm tài liệu cho qui trình trong toàn công ti dựa trên thực hành tốt nhất. Để những công nhân có kinh nghiệm nhất giải thích điều họ làm và cách họ làm nó cho bạn để cho bạn có thể làm tài liệu chúng thay vì để tri thức bị giữ trong đầu của ai đó. Điều quan trọng là thiết lập tài liệu dự án chính thức với mục đích, mục tiêu, cách đo và qui trình giám sát rõ ràng trước khi công việc bắt đầu. Điều then chốt của quản lí dự án là đảm bảo mọi người trong dự án đều rõ ràng về vai trò, trách nhiệm của họ và điều phải làm trong dự án để cho công việc của họ có thể được nhất quán hơn. Một khi dự án được bắt đầu, bạn cần họp hàng tuần với khách hàng và thành viên tổ để chia sẻ thông tin về tiến bộ và giải quyết bất kì vấn đề nào. Ích lợi của những cuộc họp này sẽ giúp cho công 4 nhân hiểu cách dự án tiến triển, liệu nó có đáp ứng lịch biểu hay không và liệu có những vấn đề không được giải quyết không. Ngay cả ở mức cơ sở của nó, quản lí dự án có thể dường như tràn đầy quá mức, đó là vì đấy là lần đầu tiên bạn làm nó theo cách mới, không cùng cách như công ti vận hành. Chừng nào bạn giải thích rõ ràng cho mọi người về ích lợi của quản lí dự án như cách tốt hơn để quản lí và làm mọi sự rõ ràng, khách quan, và đo được với các vai trò, trách nhiệm được xác định rõ, tôi nghĩ mọi người sẽ thích nó. Quản lí dự án-3 Nhiều người quản lí dự án bận rộn với những điều tầm thường như họp công ti và công việc giấy tờ và thường không giám sát tiến bộ dự án. Họ dựa chủ yếu vào các báo cáo tình trạng từ các thuộc cấp thay vì quan sát cá nhân. Đây là chỗ “những ngạc nhiên” xuất hiện vì họ không biết điều gì xảy ra trong dự án của họ. Nhiều thành viên tổ dự án không biết báo cáo tin xấu cho nên họ che giấu chúng mãi cho tới khi họ không thể giấu thêm được nữa. Đến lúc đó đã quá trễ để làm được gì. Ba mươi năm qua, khi tôi làm việc ở Hewlett Packard (HP), công ti này đã yêu cầu mọi người quản lí phải tự cá nhân mình đi tới dự án và nói chuyện với các thành viên tổ quãng hai lần một ngày. Phương pháp này có tên là “Quản lí bằng đi quanh” tại đó người quản lí phải đi tới chỗ làm việc một cách ngẫu nhiên, để kiểm tra công việc đang tiếp diễn. Người chủ công ti, ông David Packard tin rằng cách tốt nhất cho những người quản lí để biết về các dự án của họ là bằng việc kiểm điểm ngẫu nhiên công việc trên cơ sở hàng ngày. Vào lúc đó, 5 tôi còn ngần ngại mãi cho tới khi tôi rời khỏi HP để sang làm việc cho GE thì tôi mới nhận ra trí huệ của ông Packard. Kể từ đó và trong cả nghề nghiệp của tôi, tôi bao giờ cũng tuân theo thực hành này và thấy thông tin có giá trị bởi việc làm điều đó. Bằng việc gặp ngẫu nhiên với các thành viên tổ trên cơ sở hàng ngày, tôi xây dựng mối quan hệ tốt với họ. Một khi tin cậy được xây dựng, tôi nhận được thông tin chính xác về dự án. Các thành viên tổ có thể nói cho tôi về bất kì cái gì họ muốn mà không lo lắng về liệu tôi có thích nó hay không. Điều đó cũng làm cho việc của tôi như người quản lí được hiệu quả hơn vì tôi có thể nhanh chóng ra quyết định dựa trên điều tôi biết. Nếu có "vấn đề nhạy cảm" mà thành viên tổ không muốn thảo luận ở chỗ làm việc, họ có thể tới văn phòng của tôi để thảo luận ở chỗ riêng tư. Phần lớn các vấn đề nhạy cảm đều là vấn đề cá nhân thay vì kĩ thuật. Bằng việc hiểu điều đó, tôi có thể giải quyết nó nhanh chóng nhất có thể được cho nên nó sẽ không tràn sang toàn thể dự án. Vấn đề cá nhân thường xảy ra khi các thành viên tổ không đồng ý về cái gì đó và nó gây ra xúc động. Trong trường hợp đó, điều quan trọng nhất là nhận diện tất cả các sự kiện để xác định nguyên nhân của xung đột. Khi các thành viên tổ bất đồng, họ muốn người khác về phe với họ và không có giải pháp nhanh chóng; điều đó có thể leo thang thành vấn đề nghiêm trọng. Đây là chỗ "kĩ năng lắng nghe" của người quản lí là quan trọng. Kĩ thuật của tôi là lắng nghe các luận cứ của họ ở chỗ riêng tư, không ở trước tổ. Bằng việc lắng nghe cẩn thận mà không có bình luận nào, tôi cho phép họ giảm bớt giận dữ và bình tĩnh lại. Khi cả hai bên đều bình tĩnh, sẽ dễ thảo luận về một giải pháp cho cả đôi bên. Nhiều người quản lí dự án không thích giải quyết xung đột cá nhân. Tuy nhiên, thỉnh thoảng xung đột là điều tốt. Đặc biệt nếu nó mở ra cái gì đó cần được giải quyết. Nó có thể "đánh thức" các thành viên tổ nếu họ không đủ tích cực trong công việc dự án. Lấy thông tin từ 6 thảo luận xung đột có thể làm cho các thành viên tổ nghĩ nhiều hơn về các vấn đề liên quan tới dự án. Mọi công ti đều yêu cầu tổ dự án báo cáo về tình trạng dự án dựa trên cơ sở hàng tuần. Báo cáo trạng thái hàng tuần là tài liệu về tiến bộ của dự án và nó có ích cho người quản lí cấp cao theo dõi tiến bộ liệu cái gì đó đi sai không. Tuy nhiên, nếu bạn thực hành "đi vòng quanh" hàng ngày và giải quyết vấn đề ngay lập tức, ít nhất bạn không có mấy trong báo cáo tuần. Nó cũng có nghĩa là dự án tiến triển êm thấm. Chính trách nhiệm của người quản lí dự án là lãnh đạo. Nếu họ không quản lí và giúp đỡ tổ đạt được kết quả mong đợi, họ không làm việc của họ. Người quản lí dự án phải chắc chắn rằng họ biết cái gì được cần, khi nào thì tham gia, khi nào thì lắng nghe, khi nào thì có hành động, và quản lí tích cực mọi thứ trong dự án. Trong hầu hết các công tí, khi dự án thất bại, họ đuổi người quản lí dự án. Quản lí dự án và quản trị văn phòng Một sinh viên mới tốt nghiệp viết cho tôi: “Em làm việc trong một công ti nơi người quản lí dự án có chứng chỉ quản lí trưng ra trong văn phòng họ nhưng họ không quản lí cái gì cả. Họ dành nhiều thời gian vào họp hành, viết đề án, kiểm điểm chi tiêu và ngân sách, và viết báo cáo hàng tháng. Họ hiếm khi gặp người phát triển nhưng vẫn yêu cầu báo cáo về các hoạt động hàng tuần để cho họ có thể báo cáo cho ông chủ của họ. Khi chúng em nêu ra mối quan tâm, họ bảo chúng em rằng họ biết quản lí dự án vì bằng chứng là chứng chỉ của họ. Em bị lẫn lộn về kiểu quản lí dự án này. Thầy có gợi ý gì?" 7 Đáp: Có khác biệt giữa biết và làm. Người quản lí dự án giỏi có cả tri thức và kĩ năng để quản lí dự án. Tri thức tới từ việc học nhưng kĩ năng tới từ kinh nghiệm thực tế trong thực hiện nó. Người quản lí dự án giỏi có kinh nghiệm trong lập kế hoạch, ước lượng, giữ cân bằng các sức ép khác nhau, làm việc với khách hàng, quản lí thay đổi, và loại bỏ chướng ngại cho tổ dự án của họ. Có thể là người quản lí của bạn có đào tạo như bằng chứng về chứng chỉ của họ nhưng chưa bao giờ thực hiện nó trong dự án thực. Nếu họ chỉ hội tụ vào việc tạo ra báo cáo hiện trạng, đệ trình ngân sách, kiểm tra chi tiêu, kiểm điểm chi phí, và làm bài trình bày mà chỉ là các hoạt động hành chính thì họ là người quản trị văn phòng, không phải là người quản lí dự án. Người quản lí dự án giỏi hiểu vòng đời dự án và theo dõi cẩn thận qui trình để quản lí dự án. Họ phân tích ích lợi mà dự án đặc biệt sẽ đem lại cho công ti trước khi cam kết với bất kì chi tiêu nào. Trong dự án, nếu mọi sự thay đổi và trở nên rõ ràng rằng ích lợi không còn khả thi, họ cắt bỏ dự án cho nên không tiền nào bị phí hoài. Người quản lí dự án giỏi biết rằng người phát triển cho dự án cần hiểu vai trò và trách nhiệm của họ để cho họ phân công nhiệm vụ cho từng người tương ứng. Không có vai trò và trách nhiệm rõ ràng, không ai biết họ được giả định làm gì. Trong trường hợp đó, họ sẽ đổ lỗi cho nhau khi cái gì đó đi sai và dự án có thể không hoàn thành thành công. Người quản lí dự án giỏi biết cách phân chia dự án thành các nhiệm vụ nhỏ hơn cho từng pha bằng việc dùng kĩ thuật Cấu trúc phân việc Work Breakdown Structure (WBS). Từng pha được kiểm điểm cẩn thận và báo cáo để cho người quản lí cấp cao có thể quyết định. Chẳng hạn, dự án có đúng hạn không, trong ước lượng chi phí không? Rủi ro có chấp nhận được không? Phân chia dự án thành các pha, và phân tích mọi 8 rủi ro và ích lợi trước khi tiếp tục là cách tiếp cận khác mà cho phép người quản lí dự án quản lí dự án được tốt hơn. Người quản lí dự án giỏi bao giờ cũng hội tụ vào kết quả cuối cùng hay sản phẩm thậm chí trước khi dự án bắt đầu. Họ có viễn kiến về sản phẩm cuối sẽ là gì. Họ hiểu rõ yêu cầu của họ, và phát triển kế hoạch đạt tới được mà sẽ làm cho dự án dễ quản lí. Họ thường xuyên học khi nào quản lí dự án. Nếu họ phạm sai lầm, họ học từ nó để cho họ không phạm cùng sai lầm hai lần. Khả năng học từ sai lầm làm giầu có cho kinh nghiệm của họ cũng như kĩ năng quản lí của họ. Về căn bản, kinh nghiệm và kĩ năng thực sự phân biệt một người quản trị văn phòng với người quản lí dự án. Cũng như khác biệt giữa người có thể đọc bản đồ trong văn phòng và người dùng bản đồ để du hành khoảng cách xa và đã làm nhiều chuyến đi. Quản lí dự án phần mềm-1 Tuần trước, tôi có cuộc họp với vài sinh viên thuộc chương trình thạc sĩ về quản trị kinh doanh (MBA). Họ hỏi tôi tại sao nhiều dự án phần mềm thất bại và liệu người quản lí doanh nghiệp tốt nghiệp từ chương trình MBA có thể quản lí dự án phần mềm được không. Trước khi trả lời họ, tôi hỏi ý kiến của họ. Họ tin rằng vì họ được đào tạo về quản lí, họ có thể quản lí mọi thứ và đó là điều họ được dạy trong trường kinh doanh. Tôi KHÔNG đồng ý với quản điểm đó nên sau đây là thảo luận của tôi về quản lí dự án phần mềm: Có nhiều lí do cho dự án phần mềm thất bại nhưng lí do hiển nhiên nhất là người quản lí dự án không có kinh nghiệm hay kĩ năng quản lí dự án. Nhiều người quản lí dự án hứa với 9 khách hàng bất kì cái gì chỉ để làm hài lòng họ mà không thực sự biết sẽ mất bao nhiêu thời gian và cần bao nhiêu nỗ lực. Họ chấp nhận “lịch biểu phi thực tế” từ khách hàng rồi buộc tổ dự án phải tuân theo. Tất nhiên, đây là công thức cho thất bại bởi vì việc cần sáu tháng nhưng khách hàng chỉ cho bạn ba tháng thì bạn không thể hoàn thành được nó bằng làm việc cần cù hơn. Nhiều người quản lí không lập kế hoạch mà nhảy ngay vào viết mã để chứng minh cho người quản lí cấp cao rằng họ "rất tích cực”. Không lập kế hoạch cẩn thận, họ sẽ bỏ lỡ nhiều điều quan trọng và họ phải "làm lại từ đầu" cho chúng. Việc thiếu lập kế hoạch này làm tốn nhiều tiền cho công ti khi dự án phải chi tiêu nhiều hơn nó đáng phải chi tiêu. Câu hỏi của tôi là: Chương trình MBA có dạy ước lượng phần mềm và lập kế hoạch phần mềm không? Bởi vì nhiều người quản lí dự án không biết cách ước lượng lịch biểu, họ “lập lịch ngược” từ hạn chót đã cho và hi vọng mọi sự sẽ tốt. Chẳng hạn dự án bắt đầu từ tháng giêng và khách hàng cho họ sáu tháng thì bản kế hoạch sẽ trông như thế này: Tháng sáu: Chuyển giao phần mềm, Tháng năm: Kiểm thử phần mềm; Tháng ba và bốn: Viết mã; Tháng hai: Thiết kế và tháng giêng: Xây dựng tổ. Họ thêm ngày vào bản kế hoạch mà không biết gì về cách ước lượng thời gian cần cho từng pha. Thỉnh thoảng họ dùng kĩ thuật “lạc quan” từ các sách giáo khoa kinh doanh hàn lâm như ước chi phí bằng việc dùng công thức: Chi phí = Kích cỡ x độ phức tạp/năng suất. Đây là lí thuyết đúng nhưng KHÔNG THỂ cáp dụng được vào "dự án thực" bởi vì nó có ba nhân tố không biết: Kích cỡ, độ phức tạp và năng suất. Trong lớp học, các giáo sư cho sinh viên những nhân tố đó để tính chi phí nhưng trong thực tế, đặc biệt lúc bắt đầu dự án, khó mà ước lượng kích cỡ hay độ phức tạp của mã. Trong bất kì biến cố nào, mọi ước lượng chi phí đều có may rủi tiềm năng, không được kiểm điểm và điều chỉnh, công ti có thể 10 đi tới ước lượng thấp cho phí và mất tiền. Điều này xảy ra nhiều trong công nghiệp ngày nay. Câu hỏi của tôi là: Chương trình MBA có dạy lập lịch phần mềm và điều chỉnh ước lượng chi phí không? Nhiều người quản lí dự án KHÔNG biết cách thu được yêu cầu từ khách hàng. Họ tin điều khách hàng nói cho họ là "đủ tốt”. Không trắc nghiệp hay tuân theo phương pháp phân tích yêu cầu để nhận diện điều khách hàng thực sự cần, họ sẽ làm việc với các yêu cầu được cho. Tất nhiên, khách hàng thay đổi ý của họ và thường thêm nhiều chức năng vào yêu cầu của họ. Những điều này gây ra nhiều thay đổi trong dự án và đến lượt nó, gây ra nhiều việc làm lại, nhiều thời gian, và cuối cùng làm chậm trễ dự án. Dự án phần mềm KHÔNG chỉ là lập trình mà đi tới giải pháp cho vấn đề doanh nghiệp. Để hiểu các yêu cầu phần mềm, người quản lí phải hiểu yêu cầu doanh nghiệp, các yêu cầu hệ thống, yêu cầu phần cứng bởi vì các yêu cầu phần mềm vận hành trên ba mức này. Câu hỏi của tôi là: Chương trình MBA có dạy việc phát triển yêu cầu, vấn đề người dùng, vấn đề phần cứng, trắc nghiệm và kiểm nghiệm yêu cầu không? Nó có các kĩ thuật mô hình hoá bằng việc dùng công cụ phần mềm không? Nhiều người quản lí dự án không được đào tạo về ước lượng tài nguyên như số người được cần tới, kĩ năng được cần tới của họ, cho nên họ lất bất kì ai sẵn có vào làm việc cho dự án. Khi dự án có người sai với kĩ năng hạn chế, năng suất sẽ bị ảnh hưởng. Nhiều người quản lí không biết cách thuê và giữ người then chốt, họ không biết về tất cả những kĩ năng cần để phát triển phần mềm nhưng nghĩ về những người phần mềm là những người lập trình. Không có tri thức kĩ thuật chi tiết về kiến trúc, thiết kế, phần cứng và giao diện hệ thống, họ có thể phân công người sai cho các nhiệm vụ mà những người này không đủ phẩm chất và kết quả có thể là thảm hoạ. Không có 11 hồ sơ về con người với tri thức chuyên gia nào đó được cần để thực hiện công việc dự án sẽ thất bại. Sai lầm thông thường khác là nhiều người quản lí không cho đủ thời gian cần thiết cho các thành viên tổ học về dự án trước khi họ bắt đầu. Học về các yêu cầu của dự án đòi hỏi thời gian và nên được xem xét trong kế hoạch dự án. Nhiều công ti có nhiều dự án yêu cầu kĩ năng tương tự cho nên họ dịch chuyển người then chốt của mình từ dự án này sang dự án khác dựa trên ưu tiên giữa các dự án. Kĩ thuật quản lí "luân chuyển người" này là phí hoài năng suất quí giá bởi vì các thành viên tổ mất thời gian để làm quen với dự án họ được phân công. Thực hành này cũng làm nảy sinh một dự án phải dừng làm việc tạm thời cho tới khi thành viên tổ quay lại từ dự án khác. Điều này đặc biệt mấu chốt khi một kĩ năng then chốt cần được tham gia vào và điều đó làm chậm lịch biểu dự án và đóng góp thêm vào việc làm mòn mỏi nhân viên vì mọi người phải làm quá nhiều thứ trong một thời kì kéo dài. Nhiều người quản lí bận rộn thế và họ không theo dõi điều người của họ làm từng ngày. Họ không biết về hoạt động của nhân viên để cho họ có thể thúc bẩy các kĩ năng nhân viên cho có năng suất. Họ phân công người làm việc trên các nhiệm vụ tương ứng theo lịch biểu; chừng nào họ còn đáp ứng được lịch biểu thì không có vấn đề gì. Tuy nhiên, có các thành viên có thể hoàn tất nhiệm vụ 5 ngày trong 2 ngày và người khác có thể không hoàn thành được nhiệm vụ 3 ngày trong ít nhất 10 ngày do kĩ năng của họ và việc phân công. Không kiểm điểm các hoạt động trên cơ sở hàng ngày hay hàng tuần, người quản lí không biết ai cần giúp đỡ và ai không cần giúp đỡ cho tới khi vấn đề nảy sinh. Hiểu biết về phân phối công việc, về phân công nhiệm vụ và tri thức về kĩ năng là mấu chốt trong mọi dự án phần mềm. 12 Câu hỏi của tôi là: Chương trình MBA có dạy qui trình phát triển phần mềm, đào tạo kĩ năng, nhận diện kĩ năng và phân công công việc không? Điều gì sẽ xảy ra khi cái gì đó xấu xuất hiện trong dự án phần mềm? Không có đào tạo đúng, nhiều người quản lí trở nên giận dữ, thay vì lãnh đạo và hỗ trợ tổ dự án, họ làm nản lòng nhân viên bởi yêu cầu rằng nhân viên phải làm những điều nào đó hay buộc tội nhân viên không làm việc chăm chỉ hơn. Điều này sẽ thêm sức ép cho môi trường làm việc linh động và làm giảm năng suất hay thành viên tổ, đến lượt mình sẽ làm chậm trễ dự án thêm nữa. Khi họ thấy rằng gần tới hạn chuyển giao nhưng tổ của họ vẫn còn đang viết mã, họ ra lệnh cho nhân viên bỏ qua vài thứ như kiểm điểm hay kiểm thử để tiết kiệm thời gian. Thiếu kiểm thử, phần mềm sẽ có nhiều lỗi rồi công ti phải sửa các lỗi này. Điều này sẽ yêu cầu nhiều thời gian hơn, nhiều nỗ lực hơn, nhiều tiền hơn và nhiều chậm trễ hơn. Tất nhiên, khách hàng KHÔNG hài lòng và có thể không muốn làm kinh doanh với công ti trong tương lai. Khi các vấn đề nảy xảy ra, nhiều người quản lí buộc tổ làm việc nhiều giờ hơn trong một thời gian kéo dài để sửa lỗi của lịch biểu không thực tế cho nên nhiều thành viên tổ rời khỏi dự án trước khi dự án được hoàn thành. Câu hỏi của tôi là: Chương trình MBA có dạy cách quản lí người kĩ thuật không? Cách phối hợp công việc tổ? Cách nuôi dưỡng tổ thay vì lạm dụng họ? Chúng ta có thể làm gì để tránh những sai lầm này? Câu trả lời hiển nhiên là: Cung cấp đào tạo tốt hơn cho người quản lí phần mềm nhưng riêng một mình đào tạo có đủ không? Liệu có thể cho ai đó KHÔNG có tri thức phần mềm làm quản lí dự án phần mềm không? Liệu có thể cho một người kinh doanh tốt nghiệp MBA quản lí dự án phần mềm không? 13 Người quản lí được đào tạo về doanh nghiệp có thể quản lí được mọi thứ không? Tôi tin người quản lí phần mềm tốt PHẢI có cả kinh nghiệm kĩ thuật và doanh nghiệp. Họ phải làm việc trong phát triển phần mềm trong nhiều năm để họ hiểu mọi hoạt động bên trong một dự án. Họ phải nhận được đào tạo về ước lượng thời gian, nỗ lực và lập lịch biểu và thực tế thực hiện những việc này trong các dự án thực để cải tiến kĩ năng của họ. Họ phải hiểu rằng lập kế hoạch không bao giờ đứng yên nhưng thường xuyên phải được cập nhật vì mọi sự luôn thay đổi. Người quản lí tốt bao giờ cũng học cách thương lượng với khách hàng và không bao giờ phạm sai lầm uỷ nhiệm "ngày tháng lịch biểu không thực”. Bởi vì những yêu cầu này, người quản lí phần mềm GIỎI là rất khó tìm ra và đó là lí do tại sao nhiều công ti phần mềm toàn cầu sẵn lòng trả lương cao cho họ. Quản lí dự án phần mềm-2 Chìa khoá cho thành công của bất kì dự án phần mềm nào là thiết lập các yêu cầu tốt. Từ những yêu cầu này, người quản lí dự án có thể đặt ra mục đích, chiều hướng, và trao đổi chúng với thành viên tổ. Điều quan trọng là cả người dùng và người phát triển đều hiểu rõ ràng các yêu cầu cũng như mong đợi. Tất nhiên, người quản lí dự án phải chắc chắn rằng các yêu cầu là đầy đủ, đúng đắn, chính xác, nhất quán, kiểm thử được và theo dõi dấu vết được. Trong công việc phần mềm, lập kế hoạch dự án là rất quan trọng vì nó là cơ sở để quản lí dự án. Khả năng của người quản lí dự án kiểm soát và quản lí dự án phụ thuộc cao độ và sự chính xác của kế hoạch. Bản kế hoạch dự án tốt phải bao gồm ước lượng dự án, lịch biểu, tài nguyên, yêu cầu kĩ năng, công 14
- Xem thêm -