Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 303 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
303
Dung lượng
1,42 MB
Nội dung
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 i 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 ii 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 iii 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 iv 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 1 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ĩ 2 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 3 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?" 4 Đá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 [...]... tin và trao đổi với các thành viên tổ tốt thì dự án càng có thể tốt hơn Quản lí dự án phần mềm- 3 Vài năm trước đây khi tôi dạy quản lí dự án phần mềm ở châu Á, tôi thấy rằng có lẫn lộn giữa "quản lí dự án" và "quản lí dự án phần mềm" Một số đại học đã dùng sách "Quản lí dự án" được viết cho công nghiệp xây dựng và các công nghiệp 17 khác nhưng không cho phần mềm Chẳng hạn, khi họ ước lượng nỗ lực, nhiều... việc xây dựng và kiểm thử sẽ dễ dàng hơn Dự án phần mềm không thất bại vì người lập trình không thể viết mã được; nó thường thất bại vì yêu cầu kém, lập kế hoạch kém, và quản lí dự án kém 18 Bởi vì lẫn lộn về "quản lí dự án" và "quản lí dự án phần mềm" , một số người quản lí không chú ý đủ tới các pha sớm của phát triển phần mềm làm phát sinh nhiều thất bại Ở một số nước, quản lí dự án phần mềm không... 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... 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... 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ó... để quản lí dự án phần mềm Tôi thường hỏi sinh viên: “Người không làm phần mềm (như sinh viên trường kinh doanh) có thể quản lí dự án phần mềm không?" Tôi đã viết về chủ đề này vài lần trong blog của tôi Tôi thường dùng nó như chủ điểm để thảo luận trong lớp quản lí dự án phần mềm của tôi và nó bao giờ cũng tạo ra thảo luận thú vị trong các sinh viên Câu hỏi của tôi với bạn: Bạn làm gì trong dự án phần. .. hầu hết những người phát triển phần mềm Mục đích của quản lí dự án phần mềm Phần lớn các kĩ sư phần mềm đều muốn dự án của mình thành công nhưng lại không biết cách tiến hành Một phương pháp tôi dạy cho họ là xác định mục đích ưu tiên ở ngay lúc bắt đầu dự án và liên tục kiểm điểm sự tiến triển theo mục đích này trong thời gian điều hành dự án Về căn bản, dự án phần mềm có ba mục đích chính: Chuyển... 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ổ... đắ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 nghệ then chốt và quản lí rủi ro Bản... không được dạy trong chương trình đại học nên sinh viên không hiểu khái niệm và vòng đời quản lí dự án phần mềm Phần lớn các lớp quản lí dự án được dạy trong trường kinh doanh nơi sinh viên không có tri thức về phát triển phần mềm Không có tri thức đúng về phần mềm, không có đào tạo dự án phần mềm đúng, nhiều người quản lí đi theo phương pháp thông dụng về "Viết mã & Sửa lỗi" Phương pháp này bỏ qua yêu . 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. 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. 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ự