Tài liệu Giáo trình Quản lý dự án phần mềm: Quản lý dự án phần mềm
1
Quản lý dự án phần mềm
2
Mục lục
Lời nói đầu 6
Ch•ơng 1. Nhập môn về quản lý dự án phần mềm
Nhập môn
1.1. Nhu cầu đang gia tăng về phần mềm
1.2. Vai trò của việc quản lý trong phát triển phần mềm
1.3. Một thí dụ
1.4. Giành sự chấp nhận các thủ tục phát triển mới
1.5. Tóm tắt
10
10
11
13
15
17
Ch•ơng 2. Những vấn đề phát triển phần mềm
Một chút phòng xa
2.1. Những vấn đề cơ bản
2.1.1. Những vấn đề liên quan đến các yêu cầu của dự án
2.1.2. Những thay đổi th•ờng xuyên
2.1.3. Dự toán và những vấn đề liên quan
2.1.4. Nguồn lực bên ngoài
2.1.5. Kết thúc một dự án phần mềm
2.1.6. Tuyển dụng nhân viên và thuyên chuyển
2.1.7. Theo dõi và giám sát
2.2. Phân tích rủi ro
2.2.1. Dự kiến những vấn đề cần giải quyết
2.2.2. Pha phân tích
2.2.3. Thực hiện các kế hoạch đối phó bất ngờ
2.3. Tóm tắt
Bài tập
19
19
20
21
21
22
23
24
25
25
26
27
29
31
32
Ch•ơng 3. Phát triển phần mềm theo hợp đồng
Quan hệ khách hàng - nhà phát triển...
243 trang |
Chia sẻ: hunglv | Lượt xem: 1525 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Giáo trình Quản lý dự án phần mềm, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Quản lý dự án phần mềm
1
Quản lý dự án phần mềm
2
Mục lục
Lời nói đầu 6
Ch•ơng 1. Nhập môn về quản lý dự án phần mềm
Nhập môn
1.1. Nhu cầu đang gia tăng về phần mềm
1.2. Vai trò của việc quản lý trong phát triển phần mềm
1.3. Một thí dụ
1.4. Giành sự chấp nhận các thủ tục phát triển mới
1.5. Tóm tắt
10
10
11
13
15
17
Ch•ơng 2. Những vấn đề phát triển phần mềm
Một chút phòng xa
2.1. Những vấn đề cơ bản
2.1.1. Những vấn đề liên quan đến các yêu cầu của dự án
2.1.2. Những thay đổi th•ờng xuyên
2.1.3. Dự toán và những vấn đề liên quan
2.1.4. Nguồn lực bên ngoài
2.1.5. Kết thúc một dự án phần mềm
2.1.6. Tuyển dụng nhân viên và thuyên chuyển
2.1.7. Theo dõi và giám sát
2.2. Phân tích rủi ro
2.2.1. Dự kiến những vấn đề cần giải quyết
2.2.2. Pha phân tích
2.2.3. Thực hiện các kế hoạch đối phó bất ngờ
2.3. Tóm tắt
Bài tập
19
19
20
21
21
22
23
24
25
25
26
27
29
31
32
Ch•ơng 3. Phát triển phần mềm theo hợp đồng
Quan hệ khách hàng - nhà phát triển
3.1. Chi phí cộng thêm đối lại với giá cố định
3.1.1. Hợp đồng phí cộng thêm
3.1.2. Hợp đồng giá cố định
3.2. Các mối quan hệ khác gi•ã khách hàng - nhà phát triển
3.3. Yêu cầu đối với một đề xuất (RFP)
3.3.1. Một số vấn đề cơ bản
3.3.2. Chuẩn bị của RFP
3.3.3. Phát yêu cầu đề xuất RFP
3.4. Đề xuất
3.4.1. Đề xuất không do yêu cầu
3.4.2. Đề xuất khi có yêu cầu
3.4.3. Đội ngũ chuẩn bị đề xuất
3.4.4. Khuân dạng đề xuất
3.4.5. Khẳng định công việc (SOW)
3.5. Duyệt xét đề xuất và quá trình lựa chọn
3.5.1. Ban tuyển chọn đề xuất
33
33
34
36
37
38
39
39
42
43
43
44
44
45
48
49
49
Quản lý dự án phần mềm
3
3.5.2. Ph•ơng pháp đánh giá đề xuất
3.6. Một số nhận định bổ sung về đề xuất
3.6.1. Những vấn đề liên quan đến khách hàng
3.6.2. Những vấn đề liên quan đến ng•ời đề nghị
3.7. Tóm tắt
Bài tập
50
52
52
53
54
55
Ch•ơng 4. Chu trình phát triển phần mềm
Các biểu thái về chủ đề thác n•ớc
4.1. Pha quan niệm
4.1.1. Bàu không khí trong pha quan niệm
4.1.2. Những vấn đề trong pha quan niệm
4.2. Pha yêu cầu phần mềm
4.2.1. Bàu không khí trong quá trình pha yêu cầu
4.2.2. Các vấn đề trong pha yêu cầu
4.3. Pha thiết kế
4.3.1. Bàu không khí trong pha thiết kế
4.3.2. Những vấn đề trong pha thiết kế
4.4. Pha thực hiện
4.4.1. Bàu không khí trong pha thực hiện
4.4.2. Những vấn đề trong pha thực hiện
4.5. Pha tích hợp và thử nghiệm
4.5.1. Bàu không khí trong pha tích hợp và thử nghiệm
4.5.2. Những vấn đề trong pha tích hợp và thử nghiệm
4.6. Pha bảo trì
4.6.1. Bàu không khí trong pha bảo trì
4.6.2. Những vấn đề trong pha bảo trì
4.7. Tóm tắt
Bài tập
57
60
61
62
62
63
63
65
66
67
68
70
70
71
73
74
75
76
77
78
79
Ch•ơng 5. Nguyên tắc quản lý các kỹ s• phần mềm
Họ có thực có gì khác nhau không ?
5.1. Cơ cấu tổ chức dự án phần mềm
5.2. Cơ cấu đội ngũ
5.2.1. Lãnh đạo đội
5.2.2. Các đội dân chủ
5.2.3. Các đội kỹ s• tr•ởng
5.2.4. Các đội chuyên gia
5.3. Các kỹ thuật báo cáo cơ bản
5.3.1. Báo cáo tình hình
5.3.2. Các cuộc họp về tình hình dự án
5.4. Những đ•ờng lối chung trong quản lý các kỹ s• phần
mềm
5.5. Tóm tắt
Bài tập
80
81
85
85
87
87
88
89
90
91
92
94
95
Ch•ơng 6. Chia để trị các dự án lớn thế nào: phân chia và
chiếm lĩnh.
Quản lý dự án phần mềm
4
Nhu cầu lớn không có nghĩa khó
6.1. Tinh chế từng b•ớc một
6.1.1. Phân giải chức năng
6.1.2. Phân giải thiết kế
6.2. Cơ cấu phân tích công việc
6.2.1. Phân giải dự án
6.2.2. WBS làm công cụ quản lý dự án
6.3. Xử lý những dự án lớn
6.3.1. Các hệ thống phụ
6.3.2. Đ•ờng lối phân giải chức năng
6.3.3. Đ•ờng lối phân giải thiết kế
6.3.4. Đ•ờng lối phân giải nhiệm vụ công việc
6.4. Tóm tắt
Bài tập
96
96
98
99
102
103
105
106
106
108
109
110
111
112
Ch•ơng 7. Các chức năng hỗ trợ dự án
Hỗ trợ quản lý dự án
7.1. Kiểm tra cấu hình phần mềm (SCC)
7.1.1. Thuật ngữ kiểm tra cấu hình
7.1.2. Nguồn lực kiểm tra cấu hình
7.1.3. Kế hoạch quản lý cấu hình phần mềm
7.1.4. Một số đ•ờng lối chung
7.2. Bảo đảm chất l•ợng phần mềm (SQA)
7.2.1. Cung cấp phần mềm có chất l•ợng
7.2.2. Nguồn lực kiểm tra chất l•ợng
7.2.3. Kế hoạch bảo đảm chất l•ợng phầm mềm
7.2.4. Độ đo chất l•ợng phần mềm
7.2.5. Một số đ•ờng lối chung
7.3. Thử nghiệm phần mềm
7.3.1. Các loại thử nghiệm phần mềm
7.3.2. Các thủ tục thử nghiệm chính thức
7.3.3. Một số đ•ờng lối chung
7.4. Tóm tắt
Bài tập
115
116
118
119
121
123
126
126
128
130
132
133
134
135
137
138
139
140
Ch•ơng 8. Tiêu chuẩn phát triển phần mềm
Tiêu chuẩn phát triển: tai hại cần thiết
8.1. Tổng quan các tiêu chuẩn phát triển phần mềm
8.2. Tiêu chuẩn US DOD 2167
8.2.1. Tổng quan tiêu chuẩn 2167
8.2.2. Rà soát và kiểm toán
8.2.3. Mô tả hạng mục dữ liệu (DIDS)
8.2.4. Lấy kích th•ớc tiêu chuẩn
8.2.5. Lợi và bất lợi của tiêu chuẩn 2167
8.3. Các tiêu chuẩn công nghệ phần mềm IEEE
8.3.1. Tổng quan tiêu chuẩn IEEE
8.3.2. Phân loại IEEE về các tiêu chuẩn công nghệ phần
142
142
145
146
148
148
154
156
156
157
Quản lý dự án phần mềm
5
mềm
8.3.3. Lợi và bất lợi của tiêu chuẩn IEEE
8.3.4. So sánh các tiêu chuẩn IEEE và DOD
8.4. Các tiêu chuẩn Ada
8.4.1. Môi tr•ờng Ada
8.4.2. Tiêu chuẩn IEEE cho các Ada PDL
8.5. Các tiêu chuẩn phát triển phần mềm khác
8.6. Tóm tắt
Bài tập
159
159
164
164
165
165
166
167
168
Ch•ơng 9. Lập trình dự án
Lập trình: vấn đề
9.1. Kế hoạch phát triển dự án
9.2. Các hoạt động theo lập trình và mốc
9.2.1. Danh mục hoạt động theo lập trình
9.2.2. Các cột mốc và đ•ờng mốc chủ yếu
9.3. Các biểu đồ Gantt
9.4. Các biểu đồ PERT và con đ•ờng tới hạn
9.4.1. Đ•ờng tới hạn
9.4.2. Các khối ch•ơng trình PERT và việc tăng c•ờng
9.5. Nhân sự lập trình
9.5.1. Qui mô đội ngũ phát triển
9.5.2. Kỹ năng và kinh nghiệm
9.5.3. Tháng của con ng•ời bất nghì
9.6. Lập lịch các nguồn lực
9.6.1. Lập lịch không gian làm việc
9.6.2. Thiết bị lập trình
9.6.3. Chủ bán các nhà thầu phụ
9.7. Kiểm chứng và cập nhật ch•ơng trình
9.7.1. Báo cáo định kỳ
9.7.2. Các hoạt động kiểm chứng khác
9.7.3. Cập nhật ch•ơng trình
9.8. Một số đ•ờng lối chung cho việc lập trình và qui hoạch
9.8.1. Tinh lọc danh mục hoạt động ban đầu
9.8.2. Giành đ•ợc phê chuẩn ch•ơng trình
9.8.3. Mối quan hệ giữa ch•ơng trình, tài nguyên, chất
l•ợng và tính chức năng
9.9. Tóm tắt
Bài tập
170
171
173
174
176
177
180
182
182
183
184
187
188
189
189
190
191
192
192
193
193
194
194
195
197
198
199
Ch•ơng 10. Chuẩn bị dự toán: ph•ơng pháp và kỹ thuật
Dự toán: vấn đề
10.1. Dự toán dự án
10.2. Dự toán từng b•ớc
10.2.1. Những thành phần đ•a khỏi giá
10.2.2. Những thành phần d• thừa kinh nghiệm
10.2.3. Những thành phần có một phần kinh nghiệm
200
201
202
203
203
205
Quản lý dự án phần mềm
6
10.2.4. Phát triển mới
10.2.5. Phân tích chi tiết dự án ở mức rủi ro
10.3. Uớc định phát triển mới
10.3.1. Những ph•ơng pháp kiểu đầu (nguyên mẫu)
10.3.2. Những ph•ơng pháp thống kê
10.4. Mô hình chi phí xây dựng (Cocomo)
10.4.1. Mức nhân sự
10.4.2. Mức độ phức tạp
10.4.3. Yếu tố độ tin cậy
10.4.4. Môi tr•ờng phát triển
10.4.5. Các thứ hệ
10.4.6. Thuật toán dự toán phí
10.5. Chức năng phân tích điểm
10.5.1. Những b•ớc FPA cơ bản
10.5.2. ứng dụng của FPA
10.6. Dự toán là một lĩnh vực
10.7. Dự toán tài nguyên phần cứng
10.7.1.Tải trọng CPU
10.7.2. L•u trữ dự liệu
10.7.3. Tốc độ
10.8. Tổng phí không phát triển
10.9. Tóm tắt
Bài tập
206
206
207
207
209
210
210
213
215
216
218
219
221
221
224
225
229
229
233
236
238
239
241
Tham khảo 243
Tài liệu đọc thêm
Lời nói đầu
Quản lý dự án phần mềm
7
Đây là cuốn sách về quản lý dự án phần mềm; nó không phải là một
cuốn sách tiếp nữa về công trình phần mềm. Đã có nhiều cuốn sách tham
khảo về công trình phần mềm (coi danh mục tham khảo ở cuối cuốn sách
này). Mục tiêu của sách này là trình bày công việc phát triển phần mềm
theo quan điểm của nhà quản lý chứ không phải theo quan điểm của nhà
phát triển.
Cuốn sách tập trung, trong một cuốn duy nhất nhiều thực tiễn và kỹ
thuật quản lý phần mềm hiện đại đã đ•ợc phát triển và tinh lọc trong suốt
thập kỷ qua. Quản lý dự án đ•ợc trình bày nh• là một kỹ năng lĩnh hội
đ•ợc và chứ không phải nh• là của trời cho. Chắc chắn, việc quản lý dự
án đòi hỏi tài năng quản lý, nh•ng bản thân tài năng không đ•ợc hữu
hiệu. Việc vận dụng thiết thực các thủ tục phát triển phần mềm hiện đại
đòi hỏi có các nhà quản lý chuyên nghiệp.
Vì đây là cuốn sách thực hành (chứ không phải là một công trình lý
thuyết) nên nhiều ph•ơng pháp và kỹ thuật đ•ợc mô tả không có cơ sở lý
thuyết cho riêng nó. Tuy nhiên những tham khảo sẽ đ•ợc cung cấp suốt
cuốn sách dành cho những ai quan tâm đến cơ sở lý thuyết. Danh mục
kèm các tham khảo và tài liệu để đọc đ•ợc gợi ý có ở cuối cuốn sách
này.
Nhất thời, độc giả có thể thấy một số đoạn đ•ợc nhắc lại trong cuốn
sách này. Sở dĩ có điều này là để giải quyết cái th•ờng đ•ợc gọi là tình
huống năm ngón tay. Điều này xảy ra khi mỗi năm ngón tay của độc giả
cần đ•ợc cài vào cuốn sách để đánh dấu trong khi độc giả l•ỡng lự giữa
các ch•ơng nhằm bao quát đ•ợc một chủ đề đặc biệt. Cuốn sách này có
giảm nhu cầu phải đánh dấu bằng cách lặp lại cái giải thích vắn tắt bất cứ
chủ đề chủ yếu nào đ•ợc tham chiếu ngay dù chủ đề đã đ•ợc thảo luận
chi tiết ở đâu đó.
Suốt cuốn sách những hạng mục tháng công và năm công đã đ•ợc sử
dụng thay cho các hạng mục cũ tháng ng•ời và năm ng•ời. Những từ này
đ•ợc thảo luận chi tiết ở phần 9.5.3.
Đối t•ợng đọc đ•ợc chủ định.
Quản lý dữ án phần mềm: Một tiếp cận cho ng•ời thực hành đ•ợc chủ
định cho đối t•ợng đa dạng. Tr•ớc hết và chủ yếu sách đ•ọc chủ định
làm nguồn tham khảo cho các nhà quản lý dự án phần mềm đang thực thi
nhiệm vụ quản lý và trên cơ sở đó nó đ•ợc sắp xếp sao cho đề tài chủ yếu
bao quát ở mỗi ch•ơng (trừ ch•ơng 1). Điều này đ•ợc thảo luận thêm
trong giải thích sau về việc bố trí nội dung sách.
Cuối cùng, cuốn sách có thể dùng làm tham khảo cho các kỹ s• phần
mềm muốn mở rộng kiến thức của minh sang những lĩnh vực quản lý dự
án kỹ thuật.
Bố trí của cuốn sách
Quản lý dự án phần mềm
8
Nói chung, m•ời ch•ơng của cuốn sách xuất hiện theo trình tự lôgíc và
cung cấp cho việc đi đầu vào lĩnh vực quản lý dự án phần mềm. Tham
khảo nhanh đặt ở cuối mỗi ch•ơng có dạng tóm tắt mở rộng. Tóm tắt này
nhằm đ•ợc sử dụng nh• là để ghi nhớ lần nữa hay nh• là một nguồn
thông tin ban đầu.
Ng•ời đọc đ•ợc yêu cầu tìm cách làm một số bài tập ở cuối mỗi
ch•ơng. Các bài tập này sẽ giúp ng•ời đọc hiểu đ•ợc nhiều ý t•ởng và kỹ
thuật trình bày trong ch•ơng đó.
Ch•ơng 1 đề cập quan niệm quản lý dự án phần mềm. Ch•ơng này
cũng tham luận nhiều khó khăn mà các nhà quản lý dự án gặp trong việc
giành hỗ trợ của bộ phận quản lý cấp trên để trình ra những thủ tục phát
triển mới.
Ch•ơng 2 tóm tắt vắn tắt nhiều vấn đề phát triển phần mềm chung
nhất (sau này đ•ợc xây dựng trong suốt cuốn sách). Ch•ơng này đ•ợc
chia làm 2 phần. Phần đầu giành cho độc giả không quen với những vấn
đề cơ bản về quản lý phần mềm. Phần hai giành cho những ngành đang
quản lý dự án cả mới và cả đã có kinh nghiệm. Phần này thảo luận
ph•ơng pháp đấu tranh với những vấn đề đã thảo luận tr•ớc đây, gọi là
phân tích rủi ro.
Các nhà quản lý dự án có kinh nghiệm có thể bỏ qua ch•ơng 1 và phần
đầu của ch•ơng 2.
Ch•ơng 3 thảo luận việc phát triển phần mềm theo hợp đồng. Ch•ơng
này mô tả các hợp đồng dự án phần mềm đ•ợc tiến hành nh• thể nào, các
đề nghị ra sao. Một văn bản đề nghị nên đ•ợc xây dựng thể nào và nên
thiết lập thế nào và những mối quan hệ giữa khách hàng và nhà sản xuất.
Ch•ơng này cũng mô tả các yêu cầu về văn bản đề nghị (RFP) và quá
trình lựa chọn sau khi các đề nghị đã đ•ợc đệ trình.
Ch•ơng 4 mô tả chu trình cơ bản phát triển phần mềm, nhấn mạnh đến
việc tiếp cận theo giai đoạn, phát triển phần mềm. Những ph•ơng pháp
luận khác cũng đ•ợc thảo luận (nh• là tạo mẫu nhanh và mô hình xoắn ốc
- Spiral). Những giai đoạn cơ bản đ•ợc mô tả theo quan điểm của ng•ời
quản lý dự án nhấn mạnh đến không khí và những vấn đè của mỗi giai
đoạn.
Ch•ơng 5 trình bày một số những nguyên tắc cơ bản của việc quản lý
con ng•ời. Ch•ơng này lựa ra một số những mặt đặc thù liên quan đến
việc quản lý các kỹ s• phần mềm, chẳng hạn nh• sự khác nhau đáng kể
về năng suất giữa các kỹ s• phần mềm và tính khí phong độ của các nhà
lập trình nói chung.
Ch•ơng 6 đề cập một trong những vấn đề khó khăn nhất của phát triển
phần mềm: làm sao quản lý đ•ợc những dự án phần mềm lớn. Ch•ơng
này giải thích những dự án lớn có thể đ•ợc phần chia thành những bộ
phận nhỏ dễ quản lý nh• thế nào theo ph•ơng châm chia ra chế ngự.
Quản lý dự án phần mềm
9
Ch•ơng 7 mô tả ba trong những chức năng hỗ trợ quản lý cơ bản:
kiểm tra cấu hình đảm bảo chất l•ợng và thử nghiệm phần mềm. Ch•ơng
này cũng thảo luận mối quan hệ giữa những chức năng đó.
Ch•ơng 8 trình bày tổng quan về các chuẩn phát triển phần mềm. Đặc
biệt hai chuẩn đ•ợc thảo luận chi tiết: chuẩn 2167 của Bộ Quốc phòng
Hoa Kỳ (DOD) và chuẩn IEEE về phát triển phần mềm. Những chuẩn
khác, nh• chuẩn phát triển phần mềm của Anh và Châu Âu, cũng đ•ợc
nhắc tới và so sánh.
Ch•ơng 9 thảo luận việc lập lịch và kế hoạch phát triển dự án (PDP) và
kỹ thuật lập lịch và lập kế hoạch đ•ợc mô tả, kể cả phác đồ Gantt và
PERR cổ điển và cấu trúc phá hủy công việc (WBS).
Ch•ơng 10 chứa một mô tả tăng c•ờng và chi tiết của một vài ph•ơng
pháp và kỹ thuật chuẩn bị dự toán. Ch•ơng này gồm những ph•ơng pháp
dự tính qui mô của dự án và lịch phát triển dự án cũng nh• dự toán kỹ
thuật, chẳng hạn nh• các yêu cầu về đĩa và về bộ nhớ. Ch•ơng này cũng
giải thích kinh nghiệm có thể đ•ợc sử dụng thế nào để cải tiến dự toán và
mô tả các dự toán có thể đ•ợc hoàn thiện thế nào trong quá trình phát
triển dự án tiến triển.
Tri ân
Các tiêu chuẩn DOD-STD 2167a và DOD-STD 2168 và các mô tả hạng
mục dự liệu liên quan của Bộ Quốc phòng Hoa Kỳ đã đ•ợc tham chiếu và
trích dẫn đ•ợc phép của Bộ Quốc phòng Hoa Kỳ, Bộ chỉ huy các hệ
thống chiến tranh không gian và trên biển.
Các tiêu chuẩn công nghệ phần mềm IEEE đã đ•ợc tham chiếu và
những tài liệu sau đây đã đ•ợc trích dẫn đ•ợc phép của Viện tập đoàn kỹ
s• điện và điện tử (IEEE).
Phần nhập môn của F.Buckley cho bản in 1984 của IEEE về tiểu chuẩn
công nghệ phần mềm IEEE.
Phần nhập môn của J.Horch cho bản in 1987 của IEEE về tiểu chuẩn
công nghệ phần mềm.
IEEE stel 729 - 1983 IEEE stel 1022 - 1987
IEEE stel 830 - 1984 IEEE stel 990 - 1986
Giữ bản quyền mọi mặt @ Viện tập đoàn kỹ s• điện và điện tử.
Tôi xin cảm ơn về sự giúp đỡ to lớn của Amir trong việc duyệt và tập
hợp văn bản. Tôi cũng biết ơn về nhiều gợi ý có ích của Ông.
Tôi cũng xin cảm ơn Sharon và Talya đã không xáo trộn bản thảo văn
bản.
Cuối cũng và quan trọng nhất, tôi xin hết sức cảm ơn động viên của
Iril, nếu không văn bản đã chẳng bao giờ đ•ợc viết ra.
Nhãn hiệu th•ơng mại
Ada là nhãn hiệu đã đăng ký của Chính phủ Hoa Kỳ, Ada AJPO
UNIX là th•ơng nhãn của tập đoàn điện thoại và điện báo Mỹ
VMS là th•ơng nhãn của tập đoàn thiết bị số
Quản lý dự án phần mềm
10
MS-DOS là th•ơng nhãn của tập đoàn Microsoft
PC-DOS là th•ơng nhãn của tập đoàn máy móc kinh doanh quốc tế
BYB là th•ơng nhãn của nhóm Gordon.
Quản lý dự án phần mềm
11
Ch•ơng một
Nhập môn về quản lý dự án phần mềm
Nhập môn
“Phần mềm là nơi trồng các giấc mơ và thu hái ác mộng ... một thế giới
những ng•ời hóa sói và những viên đạn bằng bạc“ Trích dẫn này từ Brad
cox (cox 1990) nhấn mạnh những quan tâm của các nhà quản lý dự án
phần mềm hôm nay. Làm sao có thể kiểm tra đ•ợc con ng•ời hóa sói này
d•ới chi tiết công nghệ phần mềm đây ? Liệu việc phát triển phần mềm
có thật sự là một bộ phận công trình không ?
Việc phát triển phần mềm có thể kiểm tra đ•ợc. Có những ph•ơng
pháp những kỹ thuật nh•ng chuẩn và những công cụ khi đ•ợc vận dụng
đúng đắn chúng sẽ thúc đẩy sự phát triển thắng lợi của dự án phần mềm.
Đó không phải là những viên đạn bằng bạc xuyên qua trái tim của ng•ời
hóa sói: chẳng có gì giữ thật ở trong cả. Những ph•ơng pháp này cung
cấp một cách tiếp cận có hệ thống tới sự phát triển phần mềm bắt đầu là
những giai đoạn qui hoạch ban đầu và kết thúc là việc cung cấp sản phẩm
phần mềm cuối cùng.
Cuốn sách này đề cập đến việc vận dụng những ph•ơng pháp hiện đại
để quản lý các dự án phần mềm. Sách trình bày tiếp cận thực hành “làm
thế nào đây” hơn là tiếp cận lý thuyết mặc dù có những tham khảo rộng
rãi cho những ai quan tâm đến việc mô tả lý thuyết đằng sau các ph•ơng
pháp. Mục tiêu chủ yếu là tập trung, trong chỉ một cuốn sách, mô tả biết
bao công cụ và qui trình dính líu đến những hoạt động quản lý phần mềm
nh•:
Dự toán chi tiết dự án
Chuẩn bị các lịch trình phát triển
Vận dụng các tiêu chuẩn phát triên thiết thực
Chuẩn bị và đánh giá các đề nghị
Nhà quản lý dự án phần mềm theo thế đ•ợc cung cấp các ph•ơng pháp
và qui tình cần thiết khiến cho việc phát triển phần mềm có hiệu quả hơn
với ba mục tiêu nổi tiếng trong tâm t•ởng: phát triển phần mềm
1. theo ch•ơng trình
2. trong phạm vi ngân sách
3. theo yêu cầu
1.1. Nhu cầu đang gia tăng về phần mềm
Thật có ít lĩnh vực công nghệ hiện đại lại không chứa phần mềm. Điều
này bao gồm xe hơi, hàng không và vệ tinh cũng nh• thang máy, máy
fax, truyền hình và các cơ quan điện tử. Phần mềm vận hành hệ thống an
ninh xã hội, hệ thống chi l•ơng tập đoàn, và trái của nền kinh tế ph•ơng
Quản lý dự án phần mềm
12
Tây - Hệ thống thẻ tín dụng. Phần mềm đ•ợc sử dụng rộng rãi để viết và
in sách.
Việc gia tăng nhu cầu về phần mềm đã trở nên một vấn đề gay cấn. Nó
đã gây ra việc gia tăng nhu cầu về kỹ s• phần mềm. V•ợt rất xa mức độ
các nhà chuyên nghiệp phần mềm tốt nghiệp ở các tr•ờng đại học. Do
đấy sự phát triển phần mềm đ•ợc yêu cầu có năng suất cao lợi hơn, tin
cậy hơn và nói chung thành công hơn.
Những yêu cầu mới đó có thể không đ•ợc đáp ứng ở những ph•ơng
pháp phát triển thô thiển của những ngày đầu của máy vi tính.
Những ph•ơng pháp mới đã đ•ợc đề xuất cải tiến đáng kể con đ•ờng
mà phần mềm đ•ợc phát triển. Tính nghiêm trọng của vấn đề đã đ•ợc
thừa nhận trong khắp cộng đồng công nghệ phần mềm. Một số các liên
công ti và công xoexiom quốc tế đã đ•ợc thành lập ở Hoa Kỳ, Nhật Bản
và Châu Âu với những ngân sách to lớn dành cho việc tìm kiếm những
ph•ơng pháp giảm nhẹ (nếu không phải là loại trừ) vấn đề (coi Bennatan
1987).
Cox (1990), trong một phân tích ph•ơng h•ớng công trình phần mềm
sẽ tiến hành cho thấy rõ một cuộc cách mạng công nghiệp phần mềm lý
thú, ông đã tiên đoán ngày mà các nhà lập trình sẽ thôi không mã hóa
mọi thứ khi xóa và sẽ ghép các ứng dụng trừ những catalô l•u trữ tốt của
các thành phần phần mềm sử dụng lại đ•ợc. Quan niệm này và những
quan niệm cách mạng khác nh• phát triển phần mềm tự động (coi
Frankel 1985) vẫn còn phải mất quãng đ•ờng dài tr•ớc khi trở thành
những ph•ơng tiện thiết thực của phát triển phần mềm.
Xu h•ớng tiến tới công trình phần mềm có máy tính hỗ trợ (CASE) đã
tạo nên nhiều công cụ phát triển tự động nh•ng chẳng may thay những
công cụ đó1 th•ờng mất nhiều thời gian không xứng với chúng, ở những
lĩnh vực khác của công nghệ các hệ CAD/CAM2 tự động đã đang đ•ợc sử
dụng để thiết kế và xây dựng các thành phần điện tử nh•ng phát triển
phần mềm vẫn còn hoàn toàn là một cố gắng thủ công.
Cho đến lúc mà phần mềm sử dụng lại và phát triển phần mềm tái tạo
và tự động bắt đầu thay thế đ•ợc các kỹ s• phần mềm thì phần mềm vẫn
còn tiếp tục do con ng•ời phát triển. Trong khi chờ đợi việc gia tăng theo
yêu cầu về năng suất và thuần thục tay nghề và thắng lợi chung của phát
triển phần mềm phải duy trì trách nhiệm vẫn phải là ở nhà quản lý dự án
phần mềm.
1.2. Vai trò của việc quản lý trong phát triển
phần mềm.
Việc quản lý dự án có hiệu quả đòi hỏi nhiều tài năng và kỹ xảo. Tiêu
chuẩn IEEE (IEEE 1987a) cho dịch nghĩa sau về quản lý dự án phần
mềm.
1 Xem Tahvanainen và Smolander ‘An annotated CASE Bibliography (1990)’
2 CAD và CAM là thiết kế có máy tính trợ giúp và chế tạo có máy tính trợ giúp.
Quản lý dự án phần mềm
13
Quản lý dự án phần mềm là quá trình qui hoạch, tổ chức, nhân sự điều
khiển, kiểm tra và lãnh đạo dự án phần mềm. Rõ ràng để trở thành nhà
quản lý dự án phần mềm tốt thì là nhà phát triển phần mềm tốt không còn
đủ nữa. Có những kỹ xảo quản lý đặc biệt đ•ợc yêu cẩu• dụng ngay từ
những giai đoạn đầu của dự án, chằng hạn nh• ở các lĩnh vực nh•:
- Giám sát và kiểm tra
Điều này bao gồm việc quản lý có hiệu quả các thành viên đội ngũ
phát triển và đòi hỏi ý thức th•ờng xuyên về tình trạng thực của công việc
của họ về dự án.
- Qui hoạch
Qui hoạch là một trong những hoạt động quản lý quan trọng nhất và
bao gồm việc chuẩn bị dự toán tốt, duy trì lịch trình phát triển và bố trí
nhân sự hiệu quả.
- Quan hệ khách hàng
Trong một số dự án, việc tiếp xúc với khách hàng là hoạt động quản lý
chủ yếu. Điều này bao gồm viết tài liệu về yêu cầu của khách hàng,
khống chế những thay đổi do khách hàng, sử lý việc tham gia của khách
hàng vào quá trình phát triển, cung cấp báo cáo và tổ chức xét duyệt cùng
trình diễn sản phẩm.
- Vai trò lãnh đạo kỹ thuật
Lãnh đạo kỹ thuật tốt th•ờng là một phẩm chất ao •ớc trong việc quản
lý phần mềm có hiệu quả. Điều này th•ờng đòi hỏi khả năng cung cấp chỉ
đạo trong giải pháp của các vấn đề kỹ thuật phát sinh trong quá trình phát
triển dự án. Điều này không cần thiết có nghĩa là dự trữ chung bản thân
một giải pháp đích thực.
Những lĩnh vực quản lý này là vận dụng đ•ợc cho mọi thể loại dự án
Công nghệ cao. Dù sao việc quản lý dự án phần mềm lại khó khăn hơn do
sự thể là phát triển phần mềm ít có tính xác định hơn các lĩnh vực công
nghệ khác. Điều này là do những dự án phần mềm ít đo l•ờng đ•ợc khó
dự toán hơn và phụ thuộc nhiều hơn vào những nhân tố chủ quan của con
ng•ời.
Lịch sử phát triển phần mềm đầy rẫy những tr•ờng hợp mà mức độ
nguồn lực đ•ợc yêu cầu đã đ•ợc qui hoạch và dự toán tốt. Phát triển phần
mềm đã từ lâu đ•ợc nhận định là doanh nghiệp đầy rủi ro. Đã có nhiều
tr•ờng hợp các dự án phần mềm v•ợt quá ngân sách ban đầu của chúng
tới hai, ba hay thậm chí bồn trăm phần trăm. Một số đã phải bỏ bễ sau khi
đã chi hết vốn cơ bản khi thấy rõ là dự toán ngân sách ban đầu không chỗ
nào sát với chi phí phát triển thực sự.
Trong những năm gần đây, đã có ý đồ tiêu chuẩn hoá qui trình phát
triển phần mềm và tạo ra môi tr•ờng phát triển nghiêm ngặt trong đó các
dự án phần mềm dễ dự toán và kiểm tra hơn. Dù sao, điều này đã dẫn đến
một vấn đề mới các nhà sản xuất đã phàn nàn phải mất quá nhiều thời
gian vào việc thiết lập t• liệu và quá ít cho xu h•ớng phát triển hiện nay.
Rõ ràng là cần tìm đ•ợc địa bàn trung độ giữa hai thái cực trong dự án
không có thể lập trình và dự toán và dự án tiêu chaủan quá mức, thu thập
Quản lý dự án phần mềm
14
t• liệu quá mức trong đó chi công sức quá đáng vào tổng phí và công việc
giấy tờ.
Khi phát triển phần mềm bắt đầu dĩnh dáng đến một bộ môin công
trình thì những ph•ơng pháp luận phát triển một cách có hệ thống mới
cũng bắt đầu xuất hiện3. Mục đích của những ph•ơng pháp luận mới đó là
làm cho sự phát triển phần mềm thành công hơn. Nếu thắng lợi đ•ợc do
theo mức độ của ba mục tiêu nói tr•ớc đây (theo lịch trình, trong phạm vi
ngân sách, theo yêu cầu) thì sự thất bại hẳn có nghĩa là trong việc hoàn
thành thậm chí một trong những mục tiêu đó. Dù sao, thành công và thất
bại không phải là cái điều đ•ợc định nghĩa một cách dễ dàng.
Đã có nhiều nghiên cứu cho thấy là thất bại của dự án cũng là một vấn
đề của nhận thức (cos Linto và mantel 1990). Một dự án có thể đ•ợc nhận
định là thất bại ở một môi tr•ờng trong khi ở môi tr•ờng khác dự án lại
có thể đ•ợc nhận định là thắng lợi. Nói một cách đơn giản, một khách
hàng có thể hài lòng với đầu ra của một dự án trong khi ng•ời khách khác
lại không. Theo thế thành công hay thất bại của một dự án không chỉ liên
quan đến ba mục tiêu phát triển cơ bản mà cả đến kỳ vọng của khách
hàng.
Sự không rõ ràng của quan niệm thất bại của dự án chắc chẵn có thể
tránh đ•ợc nếu chỉ đặt ra một đích duy nhất. Đây là đích mà khách hàng
đặt ra chứ không phải đội ngũ phát triển đặt ra. Điều đó có nghĩa là:
Thành công hay thất bại của một dự án đ•ợc tối hậu xác định ở sự hài
lòng của bên yêu cầu phát triển (nghĩa là khách hàng) Những quan niệm
đó đ•ợc chứng minh trong thí dụ sau:
1.3. Một thí dụ:
Thí dụ này cho thấy vài sai lầm quản lý thông th•ờng mà nó có thể
cuối cùng dẫn đến thất bại của một dự án phần mềm. Dự án khởi sự với
vài quyết định sai lầm cơ bản liên quan đến việc khởi hành dự án, đến
l•ợt nó, nó lại dẫn đến nhiều quyết định sai lầm hơn khi dự án tiến triển.
Công ty liên kết công nghệ (TAI) là một công ty chuyên môn hóa
trong việc phát triển và chế tạo thiết bị truyền thông. TAI là một ban phần
mềm lớn chịu trách nhiệm về sự phát triển phần mềm cho thiết bị truyền
thông. Ng•ời quản lý ban phần mềm đã đ•ợc biết là quản lý công ty đang
tìm kiếm một công ty phần mềm bền ngoài để phát triển một hệ thống
bảo d•ỡng và thời gian cho TAI.
Ban phần mềm của TAI đã chủ động nắm bắt ý kiến, chuẩn bị một đề
nghị phát triển hệ thống và đệ trình quản lý công ty. Căn cứ ở đề nghị này
hai tháng đ•ợc giành tham khảo ý kiến của ban nhân sự, ban tài chính và
tr•ởng ban để xác định các yêu cầu của hệ thống. Đội ngũ phát triển sau
đó phát triển hệ thống trong 6 tháng sau đó (toàn bộ thời gian phát triển
3 Xem Shaw (1990) về một thảo luận đầy đủ trên vấn đề tiến hoá của phần mềm trong bộ môn công
trình học.
Quản lý dự án phần mềm
15
kể ra phải là 8 tháng). Ban phần mềm dự tính cần đội ngũ 4 ng•ời để
cung cấp các yêu cầu và phát triển hệ thống.
ý kiến sử dụng một công ty phần mềm bên ngoài đ•ợc gác lại và đề
nghị của ban phần mềm đ•ợc quản lý công ty chấp nhận. Ngân sách phát
triển đ•ợc thông qua để đáp ứng 2 năm r•ỡi nhân công hay 4 ng•ời trong
8 tháng. Ban phần mềm tiến hành lập đội ngũ dự án và chọn một ng•ời
quản lý dự án, trong số các ng•ời quản lý dự án truyền thông để lãnh đạo
đội ngũ này.
Khi cuối đợt hai tháng ban đầu gần kề, nhà quản lý dự án thấy rõ là
phải cần nhiều thời gian hơn để xác định và viết t• liệu về các yêu cầu.
Ph•ơng án chọn lựa của nhà quản lý dự án là:
1. Hoặc là yêu cầu nói rộng thời gian và bổ sung ngân sách phát triển
2. Hoặc là sử dụng một phần những yêu cầu hiện có.
Ng•ời quản lý ban muốn chứng minh là ban của mình có khả năng
phát triển cả các hệ thông tin và phần mềm truyền thông đ•ợc lồng vào.
Do đó ng•ời quản lý dự án và đội ngũ đã thúc chọn ph•ơng án 2. Điều
này dựa trên tiền đề là nếu dự án bị chậm và v•ợt quá ngân sách thì dự án
phải bị coi là thất bại và các hệ thống thông tin sau này hẳn sẽ phải đ•ợc
hợp đồng với một công ty phần mềm bền ngoài.
Tất cả các ban khác thấy có nhiều vấn đề chủ yếu của hệ thống. Nói
tóm lại hệ thống thiếu cái mà công ty cần.
Ban phần mềm đề nghị sửa chữa các sai sót và yêu cầu ngân sách cho
việc phát triển một version cải tiến mới. Dù sao, sự bất bình đã đến mức
mà quản lý công ty quyết định đ•a việc phát triển một hệ thống hòan
toàn mới cho một công ty phần mềm bền ngoài. Công ty phần mềm đ•ợc
lựa chọn phát triển thành công hệ thống. Ngạc nhiên là lần này kinh phí
lại ít hơn là ngân sách mà ban phần mềm TAI yeue cầu để sửa chữa các
sai sót trong hệ thống ban đầu.
Thí dụ (có thật) này thuyết minh một số sai lầm chủ yếu trong quản lý
dự án.
- Kinh nghiệm trong một lĩnh vực phần mềm (các hệ viễn thông đ•ợc
lồng vao) khong đủ cho việc phát triển thành công phần mềm ở một lĩnh
vực hoàn toàn khác (hệ thông tin).
- Nhà quản lý dự án nêu trách nhiệm cam kết vào lịch trình phát triển
hay ngân sách tr•ớc khi dự án đ•ợc xác định đủ. Trong phần lớn tr•ờng
hợp cam kết của công ty chỉ có thể có khi các yêu cầu đã đ•ợc kết luận.
- Nếu yêu cầu của một dự án không đ•ợc đáp ứng thì việc tham gia vào
lịch trình và ngân sách trở lên vô nghĩa.
- Khách hàng hay ng•ời dùng sẽ không phải bao giờ cũng cung cấp
đ•ợc những yêu cầu đúng (thí dụ chủ yếu giao liên ban). Th•ờng là trách
nhiệm của ng•ời sản xuất phải hỏi những câu hỏi thích đáng nhằm thu
thập thông tin cần thiết.
- Đôi khi tốt nhất là nên phát triển một hệ thống mới bằng việc xóa bỏ
còn hơn là tìm cách cứu vãn một hệ thống đã đ•ợc phát triển tồi.
Quản lý dự án phần mềm
16
1.4. Giành sự chấp nhận các thủ tục phát triển
mới.
Một trong những trở ngại mà các nhà quản lý dự án th•ờng phải khắc
phục là tình trạng thiếu hỗ trợ ở quản lý cấp cao hơn đối với những
ph•ơng pháp phát triển hiện đại. Vận dụng các ph•ơng pháp luận hiệu
quả không dễ khi quản lý cấp cao hơn còn tranh luận về nhu cầu của họ.
Điều này dẫn đến các nhà quản lý dự án đến một tình trạng tiến thoái
l•ỡng nam, làm sao chấp nhận đ•ợc cái mà họ tin là tốt nhất trong khi
vẫn giữ đ•ợc c•ơng vị nhà quản lý dự án.
Rõ ràng là nhiều ph•ơng pháp và kỹ thuật đ•ợc mô tả trong cuốn sách
này chỉ có hiệu lực khi chúng đ•ợc sử dụng. Mục tiêu của phần này là
giúp nhà quản lý dự án giành đ•ợc sự chấp nhận ở quản lý cấp cao hơn
trong việc ứng dụng những ph•ơng pháp mới.
Quản lý cấp cao hơn (và đôi khi là các kỹ s• phần mềm khác) có khi
dùng những lập luận sau chống lại việc sử dụng các ph•ơng pháp luận
phát triển phần mềm hiện đại.
1. Những ph•ơng pháp mới này đều là lý thuyết trong “thế giới thực”
sự việc diễn ra khác.
2. Những nhà quản lý dự án quá hình thức chủ nghĩa; họ đòi hỏi mọi
thứ bằng văn bản và không đồng ý về mọi thay đổi nhỏ.
3. Chúng ta không có thì giờ cho mọi công việc giấy tờ đó.
4. Chúng ta không thể mất công sức về sự xa phí trong mọi qui trình
dài dặc đó. Chúng ta vẫn luôn phát triển đ•ợc phần mềm mà chẳng cần
những tổng phí đó.
5. Đây là kinh doanh chứ không phải tr•ờng đại học. Chúng ta mất tiền
và mất khách nều chúng ta bắt đầu với việc lãng phí thời gian vào mọi
ph•ơng pháp đó.
6. Ph•ơng pháp là tốt, nh•ng bất hạnh là bây giờ không phải lúc thực
hiện chúng. Chúng ta mong rằng có thể sử dụng chúng một ngày nào đó
nh•ng không phải đúng lúc này.
7. không có kỹ s• nào của chúng ta quen với những ph•ơng pháp mới
này. Nh• thế sẽ mất nhiều thời gian và mất nhiều kinh phí để bắt đầu đào
tạo lại họ.
Sau đây là một số trả lời gợi ý cho những lập luận trên.
1. Hồ sơ phát triển phần mềm trong thế giới thực ch•a phải là quá tốt.
Trên thực tế, các ph•ơng pháp cổ th•ờng chỉ dẫn đến thảm họa. Có thành
công đấy nh•ng tỷ số thành công so với thất bại lại quá thấp.
Bất cứ ph•ơng pháp thiết thực nào đều có đôi chút lý thuyết đúng nh•
những ph•ơng pháp phát triển phần mềm đó những ph•ơng pháp đó đã
đ•ợc các công ty t•ơng tự khác vận dụng thành công và đã giảm mạnh
kinh phí phát triển phần mềm và tăng đáng kể chất l•ợng phần mềm.
2.Việc duy trì nề nếp hồ sơ viết là có lợi cho mọi ng•ời cho đội ngũ
phát triển cho khách hàng và cho quản lý cấp cao. Nó đảm bảo là những
Quản lý dự án phần mềm
17
giao tiếp miệng đ•ợc hiểu đúng đắn. Nếu những thay đổi hay các h•ớng
dẫn khác không ghi thành văn bản và không đ•ợc chấp nhận, thì sự phát
triển có thể tiến hành theo h•ớng sai không ai có thể chắc chắn là mọi
thay đổi, cả lớn và nhỏ, sau này sẽ đ•ợc nhớ lại khi dự án hoàn thành.
Danh mục thành văn bản các thay đổi đ•ợc chấp nhận giúp khả năng theo
dõi và hạch toán.
3. Đây có thể là khiếu lại đáng l•u ý; công việc giấy tờ phải đ•ợc duy
trì ở mức tổi thiểu (có khi nó quá mức). Dù sao, đáng ngạc nhiên là công
việc giấy tờ có mức độ hiện nay thực sự lại tiết kiệm thời gian và không
gây lãng phí. Chẳng hạn những quyết định không ghi thành văn bản
th•ờng khi cần đ•ợc lặp đi lặp lại và những đặc tả nói miệng dẫn đến
những lý giải gây tranh cãi. Việc thiếu t• liệu th•ờng mất nhiều thời gian
nhất trong các pha thích hợp và thử nghiệm khi bản thiết kế hệ thống chỉ
đ•ợc l•u trong trí nhớ của ng•ời.
Cũng vậy, một dự án không thành văn bản là một ác mộng trong việc
duy tu. Sau khi hoàn thành dự án, khi các nhà sản xuất đã phân tán đi, tất
cả những gì còn lại là sản phẩm và t• liệu. Không có t• liệu sản phẩm
không gì hơn là một bí mật.
4. Một câu hỏi cần phản ảnh là: liệu và đúng vậy liệu phát triển phần
mềm của chúng ta đã thực sự thành công thế nào? Lập luận này đ•ợc thử
thách tốt nhất với bộ hồ sơ t• liệu đ•ợc chuẩn bị cho biết những vấn đề
mà công ty đã có kinh nghiệm ở những dự án tr•ớc. Mục tiêu là chứng
minh tiếp cận mới với phát triển phần mềm đâu phải là xa xỉ mà là cần
thiết.
5. Những lập luận khó đ•ơng đầu nhất khi có yếu tố sự thực trong
chúng, đặc biệt khi công ty có định ý phát triển ph•ơng pháp luận mới
của chính họ. Mổc dù nhiều công ty có tiến hành nghiên cứu trong công
trình phần mềm điều này thật khó là cần thiết ở mọi công ty đã có những
ph•ơng pháp luận những tiêu chuẩn và những h•ớng dẫn đ•ợc ghi thành
văn bản thỏa đáng (coi IEEE 1987b) để cho chúng có thể đ•ợc vận dụng
dễ dàng ở mọi công ty mà không cần thiết phải phát triển chúng lại.
Mất khách hàng không chỉ do lịch trình phát triển kéo dài mà còn do
chất l•ợng kém và nhu cầu kỹ thuật không đ•ợc thỏa mãn. Càng cần
nghiêm lệnh hẳn về phía lịch trình phát triển lâu hơn chứ không phải về
phía sản phẩm phần mềm tốt hơn.
Nh• vậy, lịch trình phát triển ngắn th•ờng dễ bị lạc lối do thời gian bổ
sung đòi hỏi để bổ chính sản phẩm phần mềm kém cỏi, sau khi đã tung
nó ra lần đầu (coi thí dụ ở phần 1.3).
6. Tại sao lại ch•a làm ngay? Liệu có cơ sở thực sự nào cho việc kêu ca
là thời gian thích hợp hơn sẽ xuất hiện sau này? Trái lại càng thêm thời
gian và công sức đầu t• vào những ph•ơng pháp phát triển nghèo nàn thì
lại càng khó mà thay đổi đ•ợc. Cái cách tốt nhất trả lời cho lập luận này
là cung cấp những lý do kinh doanh để giải thích vì sao những ph•ơng
pháp phát triển mới lại nêu đ•ợc chấp nhận càng nhanh càng tốt. Bộ hồ
sơ đã chuẩn bị, nêu trong trả lời cho lập luận 4, sẽ có ích cùng với thông
Quản lý dự án phần mềm
18
tin thu thập từ các công ty khác. Mục tiêu là bày tỏ rằng những qui tình
phát triển có thứ tự sẽ làm tăng chất l•ợng sản phẩm phần mềm của công
ty trong khi giảm chi phí phát triển.
7. Tầm quan trọng của việc đầu t• trong đào tạo ít khi cần đ•ợc nêu:
đây là một quan niệm đ•ợc chấp nhận rộng rãi. Lập luận này khó có thể
bác bỏ khi các ph•ơng pháp phát triển mới đ•ợc đ•a ra coi nh• một thay
đổi chủ yếu về ph•ơng h•ớng. Câu trả lời tốt nhất tùy thuộc ở tình hình
thực tế. Nếu những ph•ơng pháp mới thực sự tiêu biểu cho thay đổi chủ
yếu là ph•ơng h•ớng thì chắc chắn là công ty đã có thí nghiệm nhiều vấn
đề phát triển phần mềm. Nh• thế câu trả lời cho các lập luận 4 và 5 là
thích đáng.
Nếu những ph•ơng pháp mới không thực sự tiêu biểu thay đổi chủ yếu
về ph•ơng h•ớng thì điều này nêu đ•ợc chứng minh có sử dụng dữ liệu
của các dự án tr•ớc đây. T• t•ởng cơ bản là chứng minh rắng mặc dù
nhiều qui trình phát triển hiện nay là tinh vi, việc cải tiến đáng kể có thể
đ•ợc thực hiện thông qua việc giới thiệu một số ph•ơng pháp mới.
Mọi lập luận chống lại các ph•ơng pháp luận phát triển mới chỉ có thể
bác bỏ đ•ợc sau khi có chuẩn bị đầy đủ. Điều này th•ờng nghĩa là:
- S•u tập dữ liệu về các dự án phát triển phần mềm tr•ớc đây trong
phạm vi vông ty.
- S•u tập dự liệu về các công ty t•ơng tự đã chấp nhận ph•ơng pháp
phát triển mới.
- S•u tập các báo cáo có dẫn t• liệu, văn bản và các chứng cớ khác
thành văn (cần đề phòng quá lý thuyết).
- Có đ•ợc hỗ trợ của các chuyên gia phát triển phần mềm khác hoặc ở
trong phạm vi công ty hoặc ở ngoài.
Mọi dữ liệu cấn đ•ợc nghiên cứu và các ghi chú đ•ợc chuẩn bị chứng
minh nhu cầu của các ph•ơng pháp phát triển mới. Dòng cuối phải là việc
vận dụng những qui tình mới, thiết thực phát triển phần mềm là vì lợi ích
của công ty.
Đã giành đ•ợc sự phê chuẩn cần thiết của quản lý cấp trên, những nhà
quản lý dự án phần mềm có thể chuyển sang vận dụng các ph•ơng pháp
mô tả trong các ch•ơng sau. B•ớc đầu trong việc tìm hiểu những vấn đề
cơ bản trong việc phát triển phần mềm đ•ợc thảo luận ở ch•ơng 2.
1.5. Tóm tắt.
Việc phát triển phần mềm có thể khống chế đ•ợc. Có những ph•ơng
pháp, những kỹ thuật, những tiêu chuẩn và các công cụ khi đ•ợc vận
dụng đúng thì chúng thúc đẩy việc phát triển thắng lợi dự án phần mềm
với ba mục tiêu trứ danh trong trí óc để phát triển phần mềm.
1. Theo đúng lịch trình.
2. Trong phạm vi ngân sách.
3. Theo yêu cầu.
Quản lý dự án phần mềm
19
Thắng lợi hay thất bại của dự án không chỉ liên quan đến ba mục tiêu
phát triển cơ bản đó nh•ng cũng cả đến kỳ vọng của khách hàng: một
khách hàng có thể hài lòng với đầu ra của một dự án trong khi khách
hàng khác lại có thể không. Do đấy, thành công của dự án đ•ợc xác định
tối hậu ở sự hài lòng của khách hàng.
Một trong những trở ngại mà các nhà quản lý dự án th•ờng phải khắc
phục là thiếu hỗ trợ của quản lý cấp trên đối với những ph•ơng pháp phát
triển hiện đại. Rõ ràng là nhiều ph•ơng pháp và kỹ thuật mô tả trong
cuốn sách này, có hiệu lực chỉ khi chúng đ•ợc sử dụng.
Mọi lập luận chống lại các ph•ơng pháp luận phát triển mới chí có thể
bác bỏ sau khi có sự chuẩn bị đầy đủ.
Thông tin về thành công và thất bại của phát triển phần mềm trong quá
khứ trong phạm vi một công ty cần đ•ợc thu thập cùng với các minh
chứng hỗ trợ khác bằng văn bản. Mọi dự liệu cần đ•ợc nghiên cứu và các
chi chú cần đ•ợc chuẩn bị để chứng minh cho nhu cầu về ph•ơng pháp
phát triển mới. Dòng cuối nên là việc ứng dụng các chu trình phát triển
phần mềm hữu hiệu mới là vì lợi ích của công ty.
Quản lý dự án phần mềm
20
Ch•ơng hai
Những vấn đề phát triển phần mềm
Một chút phòng xa
Tại một lớp học mới đầy về quản lý dự án phần mềm, một trong các
học viên đã hỏi:
“Chúng tôi có một số vấn đề chủ yếu trong một dự án mà tôi đang
quản lý. Chúng tôi không có đ•ợc t• liệu có hệ thống hay có đ•ợc một kế
hoạch phát triển nào và dự án đang trên đ•ờng v•ợt ngân sách và chậm
hơn lịch trình. Vậy tôi phải vận dụng mọi ph•ơng pháp và kỹ thuật học ở
đây ra sao nhằm làm cho dự án trở lại đúng lịch trình ?”
Đây không phải là một tình huống không phổ biến ở đó, một ph•ơng
thuốc thấn kỳ đã tìm cho một tình huống gần gây thảm họa. Những dự án
quản lý tối có thể đi đến trì trệ và ngân sách v•ợt đến hai thậm chí ba
trăm phần trăm và trong vài tr•ờng hợp lại có thể bị bãi bỏ. Hầu hết
những ph•ơng pháp quản lý dự án hiện đại ban đầu bao giờ cũng quan
tâm phòng xa (chứ không phải là hiệu chính) những vấn đề loại đó.
Việc phòng ngừa những vấn đề thì dễ hơn và ít tốn kém hơn là giải
quyết chúng. Những biện pháp phòng ngừa thiết thực hẳn là:
- Định vị sớm vấn đề và những vấn đề tiềm ẩn.
- Giải quyết vấn đề tr•ớc khi chúng tuột khỏi tầm tay.
- Lập kế hoạch tr•ớc (đối phó) với những vấn đề tiểm ẩn. Những vấn
đề sẽ trở nên tốn kém hơn giải quyết khi dự án tiến triển đến những giai
đoạn phát triển cao hơn. Những vấn đề bị lãng quên cũng có thể lan
truyền sang các lĩnh vực khác của dự án làm cho việc hiệu chính chúng
trở nên khó khăn hơn. Do đấy việc thiết lập những qui trình để định vị
sớm và hiệu chính các vấn đề là quan trọng.
Ch•ơng này giải quyết nguyên nhân của một số thể loại rất thông
th•ờng của vấn đề phát triển phần mềm và thảo luận tác động của chúng
đến quá trình phát triển. Ch•ơng này cũng thảo luận việc dự kiến những
vấn đề nhằm giảm thiểu tác động của chúng tới dự án. Các ch•ơng sau đề
ra những ph•ơng pháp phòng ngừa các vấn đề mô tả ở đây khỏi xảy ra.
2.1. Những vấn đề cơ bản.
Có rất nhiều vấn đề cơ bản mà nhà quản lý dự án hình nh• tìm thấy
trong bất cứ dự án phầm mềm nào. Những vấn đề cơ bản đó gây ra bởi
những tình huống sau đây bao giờ cũng có thể phòng tr•ớc sẽ phát sinh:
- Yêu cầu ban đầu không đầy đủ.
- Phụ thuộc ở các nguồn bên ngoài (các ng•ời bán hàng, các chủ thầu
phụ v.v...)
- Các khó khăn trong kết thúc dự án.
- Thay thế th•ờng xuyên nhân sự thực hành phát triển (xáo trộn đội
ngũ).
Quản lý dự án phần mềm
21
Các vấn đề cơ bản khác th•ờng nảy sinh do sai lầm quản lý thông
th•ờng nh•:
- Dự toán tồi.
- Theo dõi và giám sát không đầy đủ.
- Thay đổi không kiểm soát đ•ợc.
Con đ•ờng tốt nhất để định vị một vấn đề sớm là đi tìm nó. Rõ ràng,
đầu tiên là tìm xem vần đề th•ờng nảy sinh nhiều nhất ở đâu. Chẳng hạn
thay đổi th•ờng xuyên và không kiểm tra đ•ợc với việc đặc tả các yêu
cầu th•ờng hiển nhiên là nguồn chủ yếu của những vấn đề thiết kế.
Những chủ thầu phụ và ng•ời bán hàng không giám sát đ•ợc là một trong
những nguồn bất ngờ, thông th•ờng nhất đặc biệt là lúc họ báo cáo các
vấn đề kỹ thuật và trì hoãn vào, chính những phút cuối cùng đối với các
nhà quản lý dự án thì việc biết phải kiếm ở đâu do đó quan trọng nh• việc
biết phải làm gì.
2.1.1. Những vấn đề liên quan đến các yêu cầu của dự án.
Đặc tả các yêu cầu của dự án sẽ mô tả sản phẩm phải đ•ợc sản sinh ra
bởi nhóm phát triển (coi ch•ơng 4). Nếu những yêu cầu không đ•ợc đặc
tả đầy đủ thì chỉ các may mắn thuần túy mới đảm bảo đ•ợc là sản phẩm
đáp ứng yêu cầu của khách hàng4. Sau đây là một số thí dụ các vấn đề
liên quan đến đặc tả yêu cầu nghèo nàn.
- Quên các đặc điểm.
Khách hàng tin chắc là một số đặc điểm bị bỏ quên hẳn phải nằm trong
sản phẩm căn cứ ở những thảo luận không chính thức (th•ờng với ng•ời
không đúng). Ghi chép, bình luận và nhận xét ở các cuộc họp nh•ng
không căn cứ ở đặc tả yêu cầu chính thức.
- Có những đặc điểm không cần thiết đ•ợc đ•a vào.
Đội ngũ phát triển đã tin chắc là khách hàng hẳn hết sức vui thích về
những đặc điểm ngoại hạng đ•ợc thêm vào sản phẩm (th•ờng không hỏi
ý kiến khách hàng). Một thí dụ hẳn là thêm sự truy nhập hệ thống bằng
khẩu ngữ khi khách hàng lại muốn hệ thống sẵn sàng cho bất cứ ai.
- Đặc điểm mà chúng hoạt động khác với điều mong đợi.
Khách hàng giải thích không đầy đủ về mộ đặc điểm cần thiết và thế là
đội ngũ phát triển hiểu cái yêu cầu đó theo cách hiểu của mình. Một thí
dụ có thể là yêu cầu "cập nhật th•ờng xuyên cơ sở dữ liệu". Các nhà phát
triển đã tạo ra một hệ thống cập nhật cơ sở dự liệu mỗi lần một ngày
trong khi khách hàng muốn nói là một giờ mỗi lần.
- Những đặc điểm cần thiết mà chẳng ai nghĩ đến.
Khách hàng không cần thiết là một chuyên gia máy tính và do đó có
thể không ý thức đ•ợc là một đặc điểm, đặc biệt nào đó phải cần đến. Thí
dụ có thể là nhu cầu về bade up đầy đủ; khách hàng có thể cho là bade up
là không cần thiết vì rằng nếu dịch vụ máy tính bị giám đoạn (thí dụ do
4 Từ khách hàng ở đây đ•ợc sử dụng theo nghĩa rất rộng bao gồm khách hàng chính thức, ban tiếp
thị, nhóm ng•ời dùng, quản lý v.v...
Quản lý dự án phần mềm
22
mất điện) thì việc mất một hay hai giao dịch l•u trữ trong bộ nhớ sẽ
chẳng thành vấn đề. Thế nh•ng khách hàng có thể đã không xem xét sự
việc là những điều khiển đĩa cũng có thể đổ vỡ và mất đi mọi dự liệu của
họ.
Rõ ràng là những yêu cầu đ•ợc đặc tả kém lại là vấn đề cho nhà phát
triển nhiều cũng nh• cho khách hàng. Dù sao, nhà sản xuất th•ờng ở vị
thế tốt hơn để biên soạn những yêu cầu hơn là khách hàng. Thông th•ờng
đặc tả yêu cầu tốt nhất là kết quả của sự cố gắng phối hợp của cả nhà phát
triển lần của khách hàng với văn bản thực đ•ợc soạn thành văn của nhà
phát triển và đ•ợc chấp nhận bởi khách hàng.
2.1.2. Những thay đổi th•ờng xuyên.
Thật cực kỳ hiếm khi tìm đ•ợc một dự án phần mềm qui hoạch tốt lại
đi đến kết cục thắng lợi với đặc tả yêu cầu đ•ợc dán nhãn. Ph•ơng án 1.0.
Thay đổi là không tránh khỏi suốt chu trình phát triển phần mềm. Dù sao,
trong phần lớn tr•ờng hợp một thay đổi đ•ợc đ•a ra chậm thì thực hiện
thay đổi lại càng tốn kém.
Một số thay đổi thỏa đáng hẳn là phải quản lý đ•ợc. Khi dòng các thay
đổi đổ vào nh• thác lũ thì chúng trở thành vấn đề. Ngay chỉ một thay đổi
có thể thành vấn đề nếu nó đ•ợc yêu cầu ngay trong phát triển của dự án
và nếu nó dẫn đến thay đổi chủ yếu về ph•ơng h•ớng. Những thay đổi
quá mức tạo nên cái vẫn th•ờng đ•ợc coi là hội chứng mục tiêu di động.
Nhà quản lý dự án không những thay đổi ph•ơng h•ớng và đội ngũ phát
triển trở thanh vừa bối rối vừa mất mục tiêu.
Thay đổi có thể phá vỡ dự án nếu chúng không đ•ợc ghi thành văn bản
và giám sát đầy đủ. Những thay đổi với số l•ợng thỏa đáng, phải đ•ợc
quản lý, vận dụng cơ chế kiểm tra sự thay đổi một cách có hệ thống.
Ph•ơng pháp đó trong phạm vi tổ chức kiểm tra cấu hình, đ•ợc thảo luận
ở ch•ơng 7.
2.1.3. Dự toán và các vấn đề liên quan.
Dự toán tốt là quan trọng vì chúng tạo thành nền móng của kế hoạch
phát triển dự án tốt. Kế hoạch đó, do nhà quản lý dự án chuẩn bị đ•ợc lập
thành trong các giai đoạn ban đầu của dự án và bao gồm dự toán liên
quan đến.
- Ngân sách phát triển dự án
- Lịch trình phát triển dự án
- Tài nguyên phát triển cần đến (đội ngũ phát triển thiết bị phát triển
v.v...)
Những dự toán kỹ thuật cũng đ•ợd hình thành trong pha thiết kế và
bao gồm:
- Các đặc tính của phần mềm (dự toán về cỡ bộ nhớ, cơ sở dữ liệu
v.v...).
Quản lý dự án phần mềm
23
- Các đặc tính của phần cứng về cỡ mục tiêu cần đến (dự toán tốc độ
CPU, khả năng đầu vào, đầu ra; khả năng điều khiển đĩa v.v...).
Dự toán là cơ sở cho nhiều quyết định kỹ thuật và quản lý dự toán tồi
dẫn đến quyết định dở. Dự toán tồi có thể hiểu là quá cao hoặc là quá
thấp và quyết định theo đó hoặc là tạo ra lãng phí hoặc thiếu tài nguyên
phát triển. Điều này hình thành sai lầm trong qui hoạch, nh•:
- Lịch trình quá ngắn hoặc cao thái quá.
- Ngân sách quá thấp hay quá tăng giả tạo.
- Quá thiếu hay quá thừa ng•ời làm và những sai lầm trong thiết kế kỹ
thuật, nh•:
- Những máy tính trong mục tiêu quá nhiều (và đắt hơn) hơn cần thiết
hoặc không thể hỗ trợ ứng dụng đ•ợc phát triển. Những vấn đề nảy sinh
từ dự toán thấp th•ờng gay cấn hơn là những vấn đề nảy sinh từ dự toán
cao. Hiểu rõ điều này, các nhà dự toán th•ờng thêm vào một số yếu tố bất
trắc (cho rằng đến 30%) trong dự toán của minh, giả định rằng quá cao
còn hơn quá thấp. Dù sao dự toán cao có thể không gây ra thất bại của dự
án nh•ng có thể ngăn cản dự án chẳng bao giờ đ•ợc khởi công. Đã có
nhiều ph•ơng pháp đ•ợc phát triển nhằm tạo ra các loại dự toán khác
nhau ở các giai đoạn khác nhau của dự án (coi các ch•ơng 9 và 10). Dù
sao, ngay những dự toán chuẩn bị tốt có thể dẫn đến những vấn đề nếu
chúng không đ•ợc cập nhật trên một cơ sở định kỳ và đều đặn. Rõ ràng là
thông tin tốt hơn và đầy đủ hơn tạo nền dự toán tốt hơn. Do đó khi dự án
tiến triển và có nhiều thông tin hơn, dự toán cần đ•ợc xem xét lại và hiệu
chỉnh. Điều này dẫn đến việc giám định lại các quyết định phát triển, tạo
cho các vấn đề tiềm ẩn đ•ợc đề cập sớm tr•ớc khi chúng trở thành gay
cấn (coi phần 2.2 về phân tích rủi ro).
2.1.4. Nguồn lực bên ngoài.
Các vấn đề phát triển dự án th•ờng dễ quản lý nhất khi mọi nhân tố
phát triển đ•ợc điều khiển bởi quản lý dự án. Dù sao, điều này không
phải bao giờ cũng có đ•ợc. Nhiều dự án phụ thuộc ở nhiều nguồn bên
ngoài nh•:
- Chủ thầu phụ
- Ng•ời bán thiết bị
- Những dự án phát triển song hành
- Những ng•ời cung cấp dịch vụ (bảo trì, huấn luyện, lắp đặt v.v...)
- Các chức năng hỗ trợ (thông tin điện thoại mạng, những cung cấp dự
liệu. Dự phụ thuộc vào các nguồn bên ngoài hẳn phải đ•ợc phản ánh
trống).
Kế hoạch phát triển dự án. Điều này có nghĩa trong phạm vi các giao
•ớc và dự toán nhận đ•ợc từ các nguồn khác. Theo thế, dự toán trong kế
hoạch không thể tốt hơn dự toán nhận từ các nguồn khác.
Việc trông cậy vào các nguồn bền ngoài có thể gây ra những vấn đề
sau:
Quản lý dự án phần mềm
24
- Chậm trễ lịch trình, do việc giao chậm các thành phần dự án.
- Sự kém cỏi quá chất l•ợng và thiết kế thiết bị phát triển và các thành
phần dự án bên ngoài.
- Thành phần bên ngoài không t•ơng hợp do vì sự sai lệch của nhà phát
triển bên ngoài hay bán hàng với đặc điểm đã thỏa thuận hay đã công bố.
- Hỗ trợ sản phẩm nghèo nàn đối với các thành phần bên ngoài. Do có
ý thức đ•ợc những vấn đề tiềm ẩn đó, nhà quản lý dự án có thể đảm bảo
rằng họ đ•ợc định vị thích hợp trong hợp đồng hay thỏa thuận với nguồn
bên ngoài. Những vấn đề đó có thể đ•ợc ngăn ngừa nều đ•a vào trong
hợp đồng những mức phát về chậm trễ trong giao hàng hay khuyết tật
trong sản phẩm (coi các ch•ơng 3 và ch•ơng 9). Những đề phòng sớm có
thể đ•ợc phát hiện khi th•ờng xuyên xét duyệt lại công việc đ•ợc phát
triển bởi chủ thầu phụ và đòi hỏi sẽ báo cáo tiến độ th•ờng kỳ.
2.1.5. Kết thúc một dự án phần mềm.
Nh• mọi nhà quản lý dự án đều biết, các dự án khó mà bắt đầu đ•ợc
kinh nghiệm cho thấy là chúng th•ờng không ít khó khăn để đi đến kết
thúc. Đi tới đoạn kết của dự án, luôn luôn các bên quan tâm khác nhau
phát sinh những yêu cầu. Nh• phê phán những thay đổi mới và những
hoạt động phút chót khác nữa. Điều này là đặc biệt có thực với những dự
án giá cố định phát triển cho khách hàng theo hợp đồng (coi ch•ơng 3).
Những vấn đề chính liên quan đến việc kết thúc dự án là:
- Tranh chấp giữa khách hàng và nhà phát triển về việc lý giải và cung
ứng mọi đặc điểm đ•ợc yêu cầu
- ý đồ đ•a vào những thay đổi ở phút chót.
- Thất bại của hệ thống và khuyết tật thiết kế xác định trong quá trình
cài đặt và thử nghiệm hệ thống.
- Khó khăn trong việc giữ cho đội ngũ phát triển hợp lực lại với nhau
và năng động. Khi tình hình căn thẳng giảm đi vào gần cuối dự án có tình
trạng sút giảm nhiệt tình t•ơng ứng trong những thành viên còn lại của
đội phát triển.
Trách nhiệm của nhà quản lý dự án là đảm bảo cho việc kết thúc dự án
có trật tự và thắng lợi. Điều này đ•ợc thực hiện nhờ việc qui hoạch chi
tiết lúc ban đầu dự án và quản lý dự án có hiệu quả xuyên suốt dự án. Đặc
biệt, điều này đòi hỏi rằng:
- Kế hoạch thử nghiệm thu phải đ•ợc chuẩn bị lập tài liệu và đ•ợc
khách hàng phê chuẩn tr•ớc khi kêt thúc dự án. Mức độ nhân sự và sự
phân công công việc phải đ•ợc lập lịch trình, có tính đến việc giảm dần
trong qui mô đội ngũ phát triển vào cuối dự án.
-Việc đ•a ấn phẩm ra thị tr•ờng phải đ•ợc lập kế hoạch tốt, kể cả đóng
gói soạn thảo t• liệu, huấn luyện, cài đặt và chuyển tiếp có trật tự sang
pha bảo trì và hỗ trợ.
Sự kết thúc thắng lợi của dự án là bắt đầu của chu trình phát triển khác:
Những đặc tả yêu cầu, những kế hoạch thử nghiệm hay những kế hoạch
Quản lý dự án phần mềm
25
phát triển nghèo nàn, tất cả đều dẫn đến những vấn đề chủ yếu lúc kết
thúc dự án.
2.1.6. Tuyển dụng nhân viên và thuyên chuyển.
Khó khăn trong việc tuyển dụng các thành viên đội ngũ phát triển là
một trong những vấn đề đầu tiên mà ng•ời quản lý dự án phần mềm gặp
phải. Tr•ớc khi bất cứ dự án nào đ•ợc tung ra, đội ngũ phát triển ban đầu
phải đ•ợc thiết lập và các vấn đề này sẽ không kết thúc một khi đội ngũ
tại vị. Giữ đ•ợc đội ngũ th•ờng khó nh• thiết lập nó.
Frenkel (1985) báo cáo là nhu cầu kỹ s• phần mềm tăng theo hàm số
mũ trong khi năng suất tăng theo mức khoảng 5% mỗi năm. Các tr•ờng
đại học Hoa kỳ và châu Âu đang không cung cấp kỹ s• phần mềm đủ để
bù đắp lỗ hổng giữa cung và cầu. Trên thực tế không những lỗ hổng
không đ•ợc lấp kín mà lại đang rộng ra ở mức đáng lo ngại.
Khối l•ợng thời gian bình quân mà một kỹ s• phần mềm ở lại nghề
giảm khi yêu cầu kỹ s• tăng. Điều này không chỉ gây ra bởi sự thuyên
chuyển của kỹ s• phần mềm giữa các công ty mà cơ sở sự thuyên chuyển
trong phạm vi các công ti. Vì các công ty này đang tìm cách sử dụng hữu
hiệu hơn các kỹ s• của mình. Sự thuyên chuyển trong phạm vi các công
ty không chỉ do tình trạng thiếu kỹ s• phần mềm mà còn do chi phí về họ
có thể vẫn ngăn trở thành việc tuyển bổ sung.5
Thuyên chuyển nhân sự bản thân nó là một vấn đề trọng yếu. Sự ổn
định có của đội ngũ và do đó vào thắng lợi của dự án.
Các vấn đề liên quan đến tuyển nhân sự và thuyên chuyển luôn bao
gồm:
- Việc đầu t• đáng kể đ•ợc đòi hỏi trong đ•ờng biểu diễn học tập và
đào tạo thành viên đội ngũ phát triển mới.
- Thuyên chuyển nhân sự luôn luôn sẽ giảm đi tinh thần đội ngũ và tác
động không lợi đến động cơ đội ngũ.
- Tuyển chọn th•ờng tốn kém và mất thì giờ nó đòi hỏi nhiều cuộc
phỏng vấn và cả phí tuyển dụng.
- Thuyên chuyển nhân sự luôn tạo ra tình trạng thiếu kiện định trong
phát triển dự án.
Trong các vấn đề phát triển phần mềm, những gì liên quan đến phát
triển đội ngũ th•ờng đ•ợc nhận thức là gay cấn nhất. Các thành viên đội
là nguồn phát triển quan trọng nhất cỡ chính họ đóng góp nhiều nhất cho
sự thành công hay thất bại của dự án.
5 Kinh tế học cơ bản chỉ ra rằng khi có đ•ợc kỹ s• thì chi phí về họ sẽ
giảm (căn cứ ở cung và cầu trong phạm vi thị tr•ờng nghề nghiệp. Dù
sao, trong những năm gần đây, việc cung các kỹ s• phần mềm không bao
giờ đủ lớn để tạo ra tác động đó ngoại trừ ở những khoảng thời gian ngắn
ngủi tại các địa điểm cô lập).
Quản lý dự án phần mềm
26
2.1.7. Theo dõi và giám sát.
Theo dõi và giám sát là những nhiệm vụ quản lý. Khi các vấn đề phát
sinh ở những lĩnh vực này và liên quan, chúng th•ờng là hậu quả của các
qui trình quản lý dự án không thích hợp và không hiệu lực. Một trong
những kết quả thông th•ờng nhất là nhà quản lý dự án không có ý thức về
sự tồn tại của những vấn đề chủ yếu ở giai đoạn mà chúng có thể đ•ợc
kiềm chế và hiệu chỉnh tốt nhất. Việc theo dõi và giám sát có hiệu quả
đòi hỏi sự tiếp xúc trực tiếp giữa quản lý dự án và đội ngũ phát triển (coi
ch•ơng 7). Một trong những nguyên nhân chủ yếu của các vấn đề theo
dõi và giám sát là hội chứng tháp ngà nơi tồn tại kẽ nứt th•ờng trực giữa
quản lý dự án và phần còn lại của đội ngũ phát triển. Điều này dẫn đến:
- Luông thông tin không chính xác hay không có. Đóng góp đáng kể
vào những quyết định quản lý tồi.
- Phát triển không phối hợp: tình huống này th•ờng đ•ợc mô tả khi
một đội ngũ phát triển đang triển khai hai dự án khác nhau. Điều này xảy
ra khi các thành viên đội ngũ phát triển không phối hợp và không đ•ợc
giám sát lại đã tiến hành theo những h•ớng khác nhau.
- Trí tuệ lịch trình và bội chi ngân sách, điều này gây ra do dự toán tồi
dựa vào các thông tin không đúng.
Thông tin là thành phần cơ bản của bất cứ thể loại quản lý nào. Do đấy,
giám sát tồi đi đối với luông thông tin không thích hợp là cốt lõi của quản
lý dự án tồi. Cả ba vấn đề trên mô tả hậu quả chung của quản lý tồi. Danh
mục các vấn đề kéo theo hẳn đúng là bao trùm hầu hết các kiểu vấn đề
phát triển dự án. Các ph•ơng pháp tạo lập những kênh thông tin có hiệu
lực và những qui trình báo cáo đ•ợc tổ chức tốt sẽ đ•ợc mô tả ở ch•ơng
5.
2.2. Phân tích rủi ro.
Nhìn xa là phẩm chất quản lý tuyệt hảo th•ờng có thể đ•ợc phát triển
theo kinh nghiệm. Thật vậy, trong nhiều tr•ờng hợp, các vấn đề có thể
đoán tr•ớc. Trong những tr•ờng hợp đó, nhà quản lý có thể lập kế hoạch
về khả năng mà vấn đề sẽ xảy ra khi dự tính khả năng của nó, đánh giá
tác động của nó và chuẩn bị tr•ớc các giải pháp. Điều này th•ờng đ•ợc
gọi là sự phân tích rủi ro và là một ph•ơng tiện hiệu quả để đấu tranh
chống lại những vấn đề phát triển tiềm ẩn. Tiến hành phân tích rủi ro có
nghĩa là đã đ•ợc dự bị sẵn sàng. Đây là một hình thức bảo hiểm, ý t•ởng
cơ bản là nếu một vấn đề có nảy sinh thì một giải pháp đã có sẵn. Giống
nh• mọi bảo hiểm, phân tích rủi ro th•ờng cũng phải trả giá. Chi phí dự
phòng cho sự phát sinh một vấn đề tr•ớc hết là chi phí để có đ•ợc giải
pháp đối phó sẵn trong tay, trong khi vấn đề có thể xảy ra, có thể không.
Trong một số tr•ờng hợp, chi phí có thể là tối thiểu: Chỉ là thời gian cần
để tiến hành phân tích và lập t• liệu cho giải pháp và thời gian để theo
dõi vấn đề. Trong các tr•ờng hợp khác, chi phí có thể là lớn lao, chẳng
Quản lý dự án phần mềm
27
hạn, giá của một bộ phận thay thế của thiết bị phát triển. Trong mọi
tr•ờng hợp, một vấn đề đã đ•ợc phân tích và giải quyết sớm hơn thì đơn
giản hơn rất nhiều so với việc giải quyết vấn đề sau khi phát sinh bất ngờ.
2.2.1. Dự kiến những vấn đề cần giải quyết.
Giai đoạn đầu tiên của phân tích rủi ro đòi hỏi duyệt xét mọi kế hoạch
quản trị và kỹ thuật của dự án nhằm minh định các vấn đề tiềm ẩn nó bao
gồm:
- Kế hoạch phát triển dự án.
- Đặc tả yêu cầu.
- Đặc tả thiết kế.
Bảng 2.1. Thí dụ về danh sách vấn đề dự liệu
Vấn đề Mô tả
1. Chậm giao máy tính
để phát triển
Nếu máy tính để phát triển không đ•ợc giao vào
1/6 nh• kế hoạch, giai đoạn thích hợp sẽ bị
chậm.
2. Bộ nhớ không đủ Cỡ của phân l•u trữ bộ nhớ của hệ thống có thể
v•ợt 8 mêga baitơ (cỡ bộ nhớ tối đa đ•ợc vi tính
cấp d•ỡng).
3. Không có chuyên gia
hệ thống điều hành
Hệ thống đòi hỏi thay đổi cho hệ thống điều
hành chuẩn J.Adams là chuyên gia hệ điều hành
duy nhất trong công ty và ông có thể bận không
đ•ợc sử dụng cho hệ thống này.
4. Thời gian đáp ứng của
hệ thống quá chậm
Thời gian đáp ứng của hệ thống yêu cầu cho đầu
vào có thể quá 5 giây so với đặc tả trong yêu
cầu.
5. Thuyên chuyển nhân
sự nhiều
Lịch trình là xát xao với thời gian trống tối
thiểu. Nếu có sự thay thể nhân sự quá mức bình
quân trong phát triển chúng ta sẽ tr•ợt thêm lịch
trình.
6. Truyền thông quá
chậm
Góc truyền thông chuẩn quá chậm. Thiết kế dựa
trên gói truyền thông nhị phân mới. Góc này
ch•a bao giờ đ•ợc sử dụng với hệ thống này và
có thể không thích hợp.
7. Chậm giao và hệ
thống phụ cơ sở dữ liệu
Hệ thống phụ cơ sở dữ liệu đ•ợc hợp đồng phụ
với tập đoàn phát triển phần mềm (SOI) cam kết
giao hàng 15-4. SOI có thể không giao đúng
thời hạn nên làm chậm sự thích hợp và pha thử
nghiệm cuối.
Mọi lệ thuộc chủ yếu trong kế hoạch phát triển dự án đều đ•ợc xem
xét và đánh giá. Các thí dụ có thể là sự lệ thuộc ở nguồn bên ngoài nh•
Quản lý dự án phần mềm
28
chủ thầu phụ, ng•ời bán hàng, nhà cung cấp và các nhà làm dịch vụ. Các
vấn đề sẽ nảy sinh nếu các hợp phần hay dịch vụ bên ngoài không đ•ợc
cung cấp kịp thời hay không hoạt động nh• trông đợi.
Đặc tả thiết kế dự án là một kế hoạch chi tiết về việc làm thế nào để
các yêu cầu đ•ợc thực hiện. Các quyết định về sự thực hiện đ•ợc đòi hỏi
có thể chứa các vấn đề tiềm năng. Chẳng hạn, các vấn đề sẽ nảy sinh ra
nếu phần cứng đ•ợc lựa chọn lại hóa ra không thích hợp, chẳng hạn nh•
CPU quá chậm, mạng cục bộ không đủ tin cây, hoặc bộ nhớ không đủ.
Sau đó mọi vấn đề dự liệu đ•ợc tập hợp lên danh sách, mỗi vấn đề
đ•ợc minh định và mô tả về tác động tiềm ẩn ảnh h•ởng tới dự án. Bảng
2.2. cho một thí dụ về danh sách vấn đề dự liệu.
Danh sách vấn đề dự liệu nên đ•ợc tập hợp nhờ có sự tham gia của các
thành viên chính của đội ngũ phát triển dự án. Những ng•ời khác có thể
cũng đ•ợc mời đóng góp cho danh sách đó, căn cứ ỉw kinh nghiệm cùng
kiến thức kỹ thuật hay quản trị của họ; Có thể bao gồm cả những ng•ời từ
các đội ngũ dự án khác, các nhóm hỗ trợ phòng pháp chế hay phòng mua
sắm (kinh doanh) của công ty.
Trong khi mục tiêu không phải là liệt kế mọi vấn đề nhận thức đ•ợc
mà mỗi dự án có thể kinh qua, cần thiết là minh định những vấn đề hẳn
đ•ợc xem một cách hợp lý là có liên quan đến dự án. Trong mọi tình
huống, giai đoạn phân tích sau đây đ•ợc nhằm để cách ly chỉ những vấn
đề nào có thể tác động lớn lao đến dự án và có thể một cách hợp lý đ•ọc
xem là hẳn sẽ xảy ra
2.2.2. Pha phân tích
Việc phân tích danh sách những vấn đề dự liệu đòi hỏi đánh giá mỗi
vấn đề nhằm:
1. Dự toán xác suất vấn đề sẽ xảy ra.
2. Dự toán sáo động của vấn đề tới dự án
3. Quy cho mức độ nghiêm trọng của vấn đề.
Xác suất đó và tác động đó nếu đ•ợc dự toán bởi quá một ng•ời. Mọi
hạng mục trong danh sách đ•ợc dự toán tốt nhất trong một cuộc họp duy
nhất đánh giá vấn đề để đảm bảo tính t•ơng đối của mức độ nghiêm
trọng, giữa các vấn đề không bị lệch lạc. Mục tiêu là tránh những tình
huống khi việc chậm giao của bên cung cấp A đ•ợc một ng•ời dự toán là
0.8 và việc chậm giao của bên cung cấp B đ•ợc một ng•ời khác dự toán
là 0.6 trong khi cả 2 nhà dự toán hẳn đồng ý là hai xác suất này là bằng
nhau. Nếu hai ng•ời ở trong cùng 1 phòng trong cùng 1 lúc thì sự lệc lạc
t•ơng đối đó giảm đi.
Một cách đơn giản và hiệu quả để tính mức độ nghiêm trọng của mỗi
vấn đề đ•ợc dự liệu là:
1. Gán một số kỹ vọng giữa 1 và 10 căn cứ ở xác suất là vấn đề sẽ xảy
ra, với 10 biều xác suất cao, và 1 xác suất thấp nhất (thí dụ nhân xác suất
với 10).
Quản lý dự án phần mềm
29
2. Gán một số giữa 1 và 10 căn cứ ở tác động của vấn đề với dự án với
10 biểu thị tác động cao và 1 tác động thấp.
3. Nhân trị giá có đ•ợc ở b•ớc (1) với tự giá có đ•ợc ở b•ớc (2) để tính
mức độ nghiêm trọng cho vấn đề.
Bảng 2.2. giới thiệu một thí dụ về cách tính mức độ nghiêm trọng có sử
dụng các vấn đề dự liệu mô tả ở bảng 2.1.
Bảng 2.2. Thí dụ về cách tính mức độ nghiêm trọng.
ST
T
Vấn đề Kỳ
vọng
Tác
động
Nghiêm
trọng
1 Chậm giao máy tính để phát
triển
6 5 30
2 Bộ nhớ không đủ 4 2 8
3 Không có chuyên gia hệ điều
hành
5 5 25
4 Thời gian đáp ứng của hệ thống
quá chậm
5 3 15
5 Thuyên chuyển nhân sự cao 5 8 40
6 Truyền thông quá chậm 2 8 16
7 Chậm giao hệ thống phụ cơ sở
dữ liệu
3 9 27
Sau khi mức độ nghiêm trọng đã đ•ợc tính cho mỗi vấn đề dữ liệu,
danh sách đ•ợc phân loại theo dự nghiêm trọng của vấn đề trong đó vấn
đề nghiêm trọng nhất đứng đầu danh sách. Sau đó có thể quyết định xem
vấn đề nào có mức độ nghiêm trọng ít hơn một trị giá nào đó (thí dụ 10)
sẽ không đ•ợc xem xét. Sau đây những vấn đề còn lại đ•ợc đánh giá và
tiến trình hành động chi tiết, gọi là kế hoạch đối phó bất ngờ đ•ợc lựa
chọn cho mỗi vấn đề. Rồi thông tin đ•a vào bảng đối phó bất ngờ. Với
mỗi lần đ•a vào bảng, một thành viên của đội ngũ phát triển đ•ợc bố trí
là ng•ời theo dõi để theo dõi vấn đề và báo động quản lý dự án khi kế
hoạch đối phó bất ngờ cần đ•a vào hoạt động giai đoạn này đ•ợc trình
diễn ở bảng 2.3.
Phân tích rủi ro đ•ợc hoàn thiện đầu tiên càng sớm càng tốt trong dự
án, nh•ng không đ•ợc chậm hơn lúc kết thúc pha yêu cầu (coi ch•ơng 4).
Dù sao, phân tích rủi ro không phải là hoạt động một lần khi dự án tiến
triển, những vấn đề bổ sung có thể đ•ợc dữ liệu và những vấn đề khác có
thể cần đ•a ra khỏi danh sách vấn đề. Khi có đ•ợc thông tin mới, việc
đánh giá mức độ nghiêm trọng hoặc xác suất hẳn phải đ•ợc cải tiến. Do
đấy các bảng phân tích rủi ro nên đ•ợc duyệt xét và cập nhật định kỳ và ở
bất cứ khi nào khi có một sự cố quan trọng xảy ra (thí dụ một chủ thầu
phụ thông báo chậm trễ lịch trình hay một quyết định thiết kế chủ yếu
thấy cần phải hiệu chỉnh).
Quản lý dự án phần mềm
30
Bảng 2.3. Thí dụ về bảng ngẫu nhiên
Vấn đề Nghiêm
trọng
Kế hoạch đối phó bất ngờ Ng•ời
theo dõi
5 Thuyên chuyển
nhân sự cao
40 Cho tiền th•ởng hoàn thành
dự án thắng lợi.
J.Smith
1 Chậm giao máy
tính để phát triển
30 Yêu cầu làm ca đêm về hệ
thống phát triển của dự án
khác.
H.Brown
7 Chậm giao hệ
thống phụ cơ sở
dữ liệu
27 Thiết kế một mô phỏng hệ
thống phụ cơ sở dữ liệu
dùng để tích hợp.
W.Alda
3 Không có chuyên
gia hệ điều hành
25 Bố trí chuyên gia hệ điều
hành ngoài công ty và thuê
làm t• vấn
H.Brown
6 Truyền thông quá
chậm
16 Hợp đồng với công ty đã
phát triển gói truyền thông
nhị phân thích nghi cho gói
vói dự án này.
H.Troy
4 Thời gian đáp ứng
của hệ thống quá
chậm
15 Cho vào điều khỏan thỏa
thuận nâng cấp CPU trong
hợp đồng mua máy tính.
Y.Krot
2 Bộ nhớ không đầy
đủ
8 (không xem xét)
2.2.3. Thực hiện các kế hoạch đối phó bất ngờ.
Các kế hoạch đối phó bất ngờ đ•ợc thực hiện ở một trong những
tr•ờng hợp sau:
1. Vấn đề dữ liệu diễn ra hay sắp xảy đến đến nơi.
2. Kế hoạch đối phó bất ngờ đòi hỏi đ•ợc chuẩn bị tr•ớc.
Nói chung, các kế hoạch đối phó bất ngờ có thể đ•ợc nhìn nhận theo
nh• cái kế hoạch, hành động đ•ợc xếp vào ngăn kéo để phòng khi dùng
đến sau này. Dù sao, trong vài tr•ờng hợp, kế hoạch đ•ợc thực hiện tr•ớc
khi vấn đề dự liệu xảy ra nh• phát triển một bộ mô phỏng tr•ờng hợp việc
giao một hợp phần quyết định bị chậm trễ. Sau đó, nếu họpw phần đ•ợc
giao đúng hạn thì bộ mô phỏng đó có thể bị bỏ đi.
Lấy thí dụ về quá trình hoàn chỉnh chúng ta thử xem xét một dự án
truyền thông cần đến một máy tính trung tâm nối bằng mạng diện rộng
với vài vị trí máy tính nhỏ, có hai vấn đề tiềm ẩn đ•ợc minh định.
- Hai máy tính có kiến trúc khác nhau có thể diễn giải thể thức truyền
thông đã thiết kế đ•ợc một cách (thí dụ trình tự của các từ hai byte có thể
bị đảo ng•ợc - LSB MSB chứ không phải MSB LSB).
Quản lý dự án phần mềm
31
- Công ty điện thoại đ•ợc chọn có thể không có khả năng lắp đặt
đ•ờng dây thử nghiệm đún ghẹn cho pha tích hợp.
Bảng 2.4. Danh mục vấn đề dữ liệu
Vấn đề Mô tả
1. thể thức truyền thông
không t•ơng hợp.
Hai máy tính có kiến trúc khác nhau có thể
diễn giải thể thức truyền thông đã thiết kế là
khác nhau.
2. Đ•ờng dây thử
nghiệm có chậm để tích
hợp.
Công ty điện thoại đ•ợc chọn có thể không có
khă năng lắp đặt đ•ờng dây thử nghiệm đúng
hạn để tích hợp.
Bảng 2.5. Đo mức độ nghiêm trọng
Vấn đề Kỳ
vọng
Tác
động
Độ nghiêm
trọng
1. Thể thức truyền thông không
t•ơng hợp
5 8 40
2. Đ•ờng dây thử nghiệm có chậm
để tích hợp.
8 6 48
Bảng 2.6. Bảng đối phó bất ngờ
Vấn đề Độ
nghiêm
trọng
Kế hoạch đối phó
bất ngờ
Ng•ời
theo dõi
1. Đ•ờng dây thử
nghiệm có chậm để tích
hợp.
48 Đặt hàng đ•ờng dây
từ 2 công ty điện
thoại phụ
Will Doo
2. Thể thức truyền thông
không t•ơng hợp.
40 Sử dụng gói thông tin
ASCII
I.Hope
Các bảng 2.4; 2.5 và 2.6 là các bảng phân tích rủi ro cho dự án truyền
thông đó. Nừu khả năng có đ•ợc đ•ờng dây truyền thông bị chậm lại,
điều này sẽ gây ít tác hại cho dự án hơn là vấn đề thể thức không t•ơng
hợp. Việc theo dõi vấn đề này đã đ•ợc giao cho Wieliam Joo.Trách
nhiệm của ông là đảm bảo những đ•ờng dây này đ•ợc đặt hàng từ hai
công ty điện thoại khác (chỉ cho pha tích hợp thôi). Nếu công ty điện
thoại có •u tiên thế sẵn sàng đúng hẹn thì những đơn đặt hàng từ hai công
ty khác đ•ợc hủy và khả năng phí hủy bỏ phải trả.
Một kỹ s• khác Jndira Hepe chịu trách nhiệm về theo dõi vấn đề thể
thức truyền thông không t•ơng hợp. Chị ta phải đảm bảo gòi truyền thông
Quản lý dự án phần mềm
32
A.SCII đơn đ•ợc đặt cho cả hai máy tính phí về gói áCII sẽ là lãng phí
nếu thể thức nhị phân đ•ợc chọn sẽ hoạt đồng. Giải phóng áCII thay thế
hầu nh• chắc chắn chậm hơn nhiều, nh•ng nó sẽ cung cấp giải pháp tạm
thời cho đến khi vấn đề không t•ơng hợp đ•ợc giải quyết.
2.3. Tóm tắt
Các ph•ơng pháp quản lý dự án hiện đại lúc đầu quan tâm đến việc
các vấn đề phát triển dự án (việc phòng ngừa không hiệu chỉnh). Phòng
ngừa các vấn đề thì dễ hơn và ít tốn kém hơn là giải quyết chúng, những
biện pháp phòng ngừa có hiệu quả nêu là:
- Định vị các vấn đề và các vấn đề tiềm ẩn sớm.
- Giải quyết vấn đề tr•ớc khi tuột khỏi tầm tay.
- Lập kế hoạch tr•ớc cho những vấn đề tiềm ẩn
Có rất nhiều vấn đề cơ bản chung cho hầu hết các dự án phầm mềm.
Phần lớn những vấn đề đó dẫn xuất từ:
- Xác định yêu cầu không đầy đủ.
- Thay đổi luôn
- Dự toán tồi
- Tùy thuộc ở nguồn bên ngoài (ng•ời bán, chủ thầu phụ v.v...)
- Khó khăn trong kết thúc dự án.
- Luôn luôn thay thế nhân sự phát triển (thuyên chuyển nhân sự)
- Theo dõi và giám sát không đầy đủ.
Cách tốt nhát để định vị một vấn đề là sớm đi tìm kiếm nó. Rõ ràng,
tr•ớc hết là tìm xem ở đâu vấn đề hay diễn ra nhất. Chẳng hạn những
thay đổi đặc tả yêu cầu luôn luôn và không kiểm tra là không thuận lợi
đ•ợc coi nh• nguồn gốc chủ yếu của những vấn đề thiết kế. Những chủ
thầu phụ và ng•ời bán không giám sát đ•ợc là một trong hầu hết những
nguồn gốc bất ngờ, những vấn đề kỹ thuật l•u lại và chậm chễ vào phút
chót. Với nhà quản lý dự án thì biết đ•ợc ở đây phải tìm là quan trọng
nh• biết đ•ợc phải làm gì.
Biết phải làm gì bao gồm cả việc chuẩn bị tr•ớc sự xuất hiện của vấn
đề. Trong nhiều tr•ờng hợp, các vấn đề có thể đ•ợc dự liệu. Nhà quản lý
dự án có thể lập kế hoạch về khả năng vấn đề sẽ xảy ra bằng cách dự tính
xác suất của nó, •ớc l•ợng tác động của nó và chuẩn bị giải pháp thay
thế. Cái đó đ•ợc gọi là phân tích rủi ro và là biện pháp có hiệu quả trong
việc đấu tranh với những vấn đề phát triển tiềm ẩn.
Tiến hành phân tích rủi ro có nghĩa là chuẩn bị tr•ớc. Đây là một hình
thức bảo hiểm mà ý t•ởng cơ bản là nếu một vấn đề xảy ra, giải pháp đã
sẵn sàng. Giống nh• mọi bảo hiểm, phân tích rủi ro th•ờng phải trả giá.
Chi phí chuẩn bị cho việc một vấn đề xảy ra tr•ớc hết là chi phí để có giải
pháp gồm thay thế có sẵn trong tay. Trong một số tr•ờng hợp, chi phí có
thể chỉ là tối thiểu: thời gian cần để phân tích và lập tài liệu cho giải pháp
và thời gian theo dõi vấn đề. Trong các tr•ờng hợp khác, chi phí có thể
lớn đáng kể: giá của một bộ phận thay thế của thiết bị phát triển. Trong
Quản lý dự án phần mềm
33
mọi tr•ờng hợp vấn đề đã đ•ợc phân tích giải quyết tr•ớc lại đơn giản
hơn là giải quyết vấn đề đã xảy ra bất ngờ.
Bài tập
1. Một công ty dịch vụ truyền hình cáp đang chuẩn bị thiết lập dịch vụ
trong thời gian 8 tháng. Công ty cung cấp dịch vụ cho các khách hàng với
phí cố định hàng tháng tùy thuộc ở qui mô dịch vụ mà họ yêu cầu. Công
ty cũng cho chiếu những phim mới mỗi phim có thể cho một khách hàng
xem theo yêu cầu qua điện thoại với công ty.
Giờ công ty đang trong quá trình đặt mua thiết bị, mua các ph•ơng tiện
và ký với khách hàng. Một công ty phần mềm đã hợp đồng phát triển một
hệ thống làm hóa đơn cho các khách hàng. Hệ thống này sẽ giao diện với
thiết bị để nhận thông tin về các buổi chiếu phim mói trên màn ảnh và sẽ
giao diện với cơ sở dữ liệu của khách hàng để thông tin đều đặn về hóa
đơn hàng tháng.
Bạn hãy chuẩn bị một danh mục m•ời vấn đề gay cấn nhất mà bạn chi
liệu trong phát triển dự án làm hóa đơn. Hãy thỏa thuận lý do của việc
chọn lựa vấn đề của bạn.
2. Bạn hãu tính mức độ nghiêm trọng cho mỗi một vấn đề tiềm ẩn mà
bạn đã định ở bài tập 1. Hãy giải thích việc phân định của bạn về tác
động của dự án và các trị giá xác suất.
Hãy gợi ý một ph•ơng pháp thay thế phân định mức độ nghiêm trọng
cho những vấn đề dự liệu mà nó cũng tính cả chi phí chuẩn bị các kế
hoạch đối phó bất ngờ.
3. Bạn hãy gợi ý những kế hoạch đối phó bất ngờ cho những vấn đề dự
liệu mà bạn đã định ở bài tập 1. Hãy xét hai kế hoạch thay thế khác nhau
cho mỗi một vấn đề. Xét chi phí của mỗi kế hoạch thay thế và sau đó
chọn kế hoạch tốt nhất dựa trên ph•ơng pháp thay thể để phân định mức
độ nghiêm trọng mà bạn gợi ý ở bài tập 2.
Hãy chuẩn bị một bảng đối phó bất ngờ có chứa các kế hoạch đối phó
bất ngờ mà bạn đã chọn.
4. Bài tập ở lớp: Chia lớp thành các nhóm 3 hay 4 sinh viên. Giao các
bài tập 1, 2, 3 cho mỗi hóm. Yêu cầu mỗi nhóm trình bày phân tích rủi ro
của mình cho số nhóm còn lại trong lớp.
Thảo luận :
a) Các danh mục vấn đề dự liệu khác nhau.
b) Các kế hoạch ngẫu nhiên khác nhau.
c) Các ph•ơng pháp khác nhau để phân định mức độ nghiêm trọng
(liệu có 2 nhóm nào đã gợi ý ph•ơng pháp t•ơng tự ?)
Quản lý dự án phần mềm
34
Ch•ơng ba
Phát triển phần mềm theo hợp đồng
Mối quan hệ khách hàng - nhà phát triển
Do những thay đổi nhanh chóng trong công nghệ trong vài thập niên
gần đây, các tổ chức công nghệ cao ngày càng thấy cần thiết phải chuyển
hóa trong các lĩnh vực đặc chủng, xác định rõ việc chuyển hóa không chỉ
xác định nhiều nhánh mới của công trình học mà còn xác định những
lĩnh vực chuyên môn trong phạm vi các bộ môn công trình học. Điều này
đặc biệt đúng với công trình phần mềm.
Thông th•ờng, các tổ chức không chuyên hóa trong phát triển phần
mềm lại thuê các tổ chức khác phát triển phần mềm cho họ. Ngay cả
những tổ chức có phát triển phần mềm của chính mình có thể quyết định
thuê các chuyên gia bên ngoài ở những lĩnh vực đặc chủng. IBM đã thuê
Mirosoft phát triển hệ điều hành PC DOS, vì Microft đã có kinh nghiệm
trong phát triển các hệ thống vi tính còn IBM thì không.
Ch•ơng này đề cập đến mối quan hệ giữa khách hàng và nhà phát triển
phần mềm và cung cấp một số h•ớng dẫn làm sao tránh những cái bẫy cổ
điển do những lợi ích mẫu thuẫn nhau. Mổc dù nhiều những vấn đề đó là
chung cho mọi quan hệ khách hàng, nhà phát triển một số vấn đề tranh
cãi là đặc biệt cho phát triển phần mềm. Việc phát triển phần mềm là rất
ít xác định hơn và nhiều rủi ro hơn các lĩnh vực khác của công nghệ. Điều
này th•ờng dẫn đến những hiểu lầm và bất đồng đáng ra đã có thể tránh
đ•ợc nếu đ•ợc dự liệu và kiềm chế đủ sớm.
Để tiêu chuẩn hóa thuật ngữ của chúng ta, tổ chức mà đề nghị đ•ợc đệ
trình sẽ đ•ợc coi là khách hàng và tổ chức đệ trình đề nghị sẽ đ•ợc coi là
ng•ời đề nghị. Các từ khác th•ờng đ•ợc sử dụng ở nơi khác cho ng•ời đề
nghị bao gồm ng•ời đấu thầu, ng•ời bán hàng hay chủ thầu và cho khách
hàng là ng•ời yêu cầu hay ng•ời đề xuất yêu cầu. Tổ chức đ•a ra đề nghị
đ•ợc thẳng thầu sau khi lựa chọn, sẽ đ•ợc coi là nhà phát triển.
3.1. Chi phí cộng thêm đối lại với giá cố định.
Th•ờng vẫn có mâu thuẫn về quyền lợi thực sự hay t•ởng t•ợng giữa
khách hàng với ng•ời phát triển. Khách hàng thì muốn chi phí ít hơn và
ng•ời phát triển lại muốn thu nhập nhiều hơn. Nh• chúng ta sẽ thấy mối
quan hệ tốt giữa ng•ời phát triển và khách hàng không cần thiết phải dẫn
đến tranh chấp về quyền lợi nh• thế.
Cơ bản có 2 loại quan hệ theo hợp đồng giữa khách hàng và ng•ời sản
xuất.
1. Chi phí cộng thêm (cũng gọi là chi phí theo thời gian và vật liệu)
Quản lý dự án phần mềm
35
2. Giá cố định
Hầu hết các quan hệ khác là một hình thức phối hợp nào đó giữa hai
loại đó.
3.1.1. Hợp đồng phí cộng thêm
Phí cộng thêm là mối quan hệ theo hợp đồng theo đó ng•ời phát triển
đ•ợc trả cho chi phí dịch vụ đã làm và thêm vào đấy đ•ợc phép h•ởng
mức lời thỏa thuận. Điều này thực ra giống nh• cho thuê ô tô: khách hàng
trả cho số thời gian xe đ•ợc sử dụng (theo giờ, ngày, tuần v.v...) và cho
mọi chi phí khác nh• bảo hiểm và xăng. Theo thế trong một hợp đồng phí
cộng thêm, tổng phí của một dự án chỉ đ•ợc biết sau khi dự án đã hoàn
thành.
Lấy thí dụ, công ty Alpha có thể hợp đồng với công ty phần mềm Bêta
để phát triển một hệ thống. Công ty Bêta sẽ đ•ợc công ty Alpha trả cho
180 cho mỗi giờ các kỹ s• của minh đầu t• cho dự án một khoản 20% bổ
sung có thể đ•ợc thêm vào để bù đắp dịch vụ quản lý th• ký hay văn
phòng khác. Các chi phí phụ phát sinh bởi công ty Bêta vì lợi ích của dự
án sau đó đ•ợc công ty Alpha bồi hoàn các chi phí đó có thể bù đắp các
lĩnh vực nh•:
- Thiết bị phát triển của mục đích đặc tr•ng (máy tính, các bộ dịch,
các mạng v.v...)
- Chi phí đi lại phát sinh bởi nhân viên công ty Bêta vì lợi ích của dự
án.
- Thiết bị mục tiêu do công ty Bêta cung cáp cho công ty Alpha sử
dụng.
- Dịch vụ từ các nguồn bên ngoài khác do công ty Bêta yêu cầu cho dự
án.
Khách hàng (Công ty Alpha) có thể yêu cầu ng•ời phát triển (Công ty
Bêta) phải đ•ợc phép tr•ớc về mọi chi phí đơn lẻ phát sinh v•ợt quá $250
và mọi chi phí v•ợt quá $600 tổng số hàng tháng. Mọi việc cho phép nh•
thế luôn phải bằng văn bản. Điều này xác định quan hệ hợp đồng cơ bản
về phí cộng thêm giữa hai công ty. Trong nhiều tr•ờng hợp, hợp đồng phí
cộng thêm là tốt nhất có việc phát triển. Tuy nhiên, cũng có vô khối các
vấn đề tiềm tàng. Một mâu thuẫn về quyền lợi có thể xảy ra do ng•ời
phát triển động cơ hoàn thành dự án nhanh, hoặc do khách hàng miễn
c•ỡng cho phép các chi phí phụ thêm. Phí cộng thêm th•ờng thích hợp
cho những dự án nhỏ không xác định khi có khó khăn trong việc nhận
biết tr•ớc các yêu cầu của dự án. Trên thực tể trong nhiều tr•ờng hợp pha
yêu cầu dự án đ•ợc chào hàng nh• hợp đồng phí cộng thêm và các pha
còn lại đ•ợc hợp đồng theo kiểu giá cố định, giai đoạn yêu cầu đ•ợc sử
dụng để đ•a các phần còn lại của dự án đến trạng thái đủ xác định tốt mà
nhờ nó có thể đ•ợc hợp đồng theo kiểu gia cố định đôi khi một công ty
Quản lý dự án phần mềm
36
đ•ợc ban cho hợp đồng phí cộng thêm cho giai đoạn yêu cầu về công ty
khác đ•ợc ban cho các hợp đồng giá cố định với giai đoạn còn lại.
Phí cộng thêm có thể đ•ợc chuộng ở khác hàng muốn nắm quyền kiểm
soát quá trình phát triển. Trong một số tr•ờng hợp, ng•ời sản xuất đ•ợc
coi nh• phần mở rộng của tổ chức của khách hàng và các hoạt động phát
triển do khách hàng quản lý.
Hợp đồng phí cộng thêm phải bao gồm các điều sau:
- Danh sách những ng•ời đ•ợc giao làm dự án
- Xác định công việc
- Tỷ lệ phần trăm giao việc cho mỗi ng•ời
- Mức công việc hàng giờ hay hàng ngày cho mỗi ng•ời
- Tổng phí hành chính
- Chi phí đ•ợc phép để đ•ợc bồi hoàn
- Thủ tục làm hóa đơn
- Thủ tục thanh toán
- Thủ tục kết thúc
Phần trăm giao việc liên quan đến số thời gian mà mỗi ng•ời sẽ giành
cho dự án. Nó có thể là 100% cho một số kỹ s•, và 50-60% cho các
chuyên gia trong các lĩnh vực đặc biệt. Tỷ lệ phần trăm giao việc cũng có
thể đ•ợc tính hiểu theo tối đa hay tối thiểu, có nghĩa, chẳng hạn, một kỹ
s• bảo hành chất l•ợng sẽ giành không quá 20 giờ mỗi tuần cho dự án và
không ít hơn 10 giờ mỗi tuần cho dự án.
Giá suất lập phiếu có thể là giá suất cố định cho mọi ng•ời đ•ợc giao
việc của dự án hay mức cá nhân có thể đ•ợc đặt cho từng lớp ng•ời.
Chẳng hạn với mỗi giờ làm việc cho dự án, ng•ời sản xuất sẽ lập phiếu
thanh toán $80, bất kể ai làm việc cho giờ đó. Hay hợp đồng có thể qui
định là kỹ s• thiết kế đ•ợc lập phiếu thanh toán $120 một giờ, ng•ời lập
mã $60 một giờ, ng•ời viết t• liệu $50 một giờ và cứ tiếp tục. Ph•ơng
pháp giá suất lập phiếu hợp đồng phí cộng thêm hầu nh• khó nhất là
ph•ơng pháp lập phiếu thanh toán cá nhân theo Franh Jones đ•ợc lập
phiếu thanh toán $90 một giờ John Shith $75 v.v... Điều này có nghĩa mỗi
khi một ng•ời đ•ợc thay thế hay bổ sung cho dự án thì giá suất theo giờ
lại phải th•ơng thảo lại.
Đối với một tổ chức phát triển phần mềm, có thể có những thuận lợi
thiết thực trong các hợp đồng phí cộng thêm bao gồm:
- Không có rủi ro tài chính hay kinh doanh
- Thu thập biến thức và kinh nghiệm dựa vào một tổ chức khác.
Dù sao, nh• trong phần lớn tr•ờng hợp, những thuận lợi đó lại đi đối
với một số bật lợi bao gồm:
- Lợi tức kihnh doanh thập
- Có thể có sự bất bình trong nhân sự
- Kiểm tra nhân sự và công việc phát triển
- Bất đồng tiềm ẩn với khách hàng do thiếu các bị giảm đi, mục đích
đ•ợc xác định rõ và nhân tố thúc đẩy.
- Tính kế tục của hợp đồng không bảo đảm
Quản lý dự án phần mềm
37
Hầu hết nhân viên chuộng có đ•ợc xác định rõ ràng về tôn ti mà họ tùy
thuộc. Trong hợp đồng phí cộng thêm, nhân viên làm việc trong phạm vi
tôn ti của khách hàng nh•ng lại thuộc về tôn ti của ng•ời phát triển và
điều này có thể gây ra bất mãn.
Nói chung, theo quan điểm của ng•ời phát triển, hợp đồng phí cộng
thêm là mối quan hệ kinh doanh vững chãi, lợi tức thấp, không rủi ro.
Theo quan điểm của khách hàng thuận lợi của hợp đồng phí cộng thêm
là:
- Duy trì sự khống chế phát triển
- Không cần cam kết cho toàn bộ hợp đồng dự án
- Rủi ro kinh doanh có thể giảm đ•ợc (do khả năng kết thúc hợp đồng
bất cứ lúc nào)
Bất lợi có thể có của khách hàng là:
- Chi phí phát triển gia tăng
- Khách hàng phải đảm nhận rủi ro trong phát triển
- Tham gia nhiều hơn trong phát triển
- Bất đồng tiềm ẩn với ng•ời do thiếu mục đích xác định rõ và nhân tố
thúc đẩy.
Với khách hàng, khó xác nhận sự hấp dẫn của hợp đồng phí cộng
thêm. Rõ ràng điều này thùy thuộc ở loại dự án và điều kiện để dự án
phát triển cũng nh• ở nhận định kinh doanh không kỹ thuật khác.
3.1.2. Hợp đồng giá cố định
Hợp đồng giá cố định là một cam kết của ng•ời phát triển sẽ cung cấp
sản phẩm hay dịch dụ thỏa thuận với phí thỏa thuận trong phạm vi lịch
trình thỏa thuận. Điều này t•ơng tự với mua tíc kê xe buýt theo đó công
đi xe buýt thỏa thuận đ•a khách hàng đến nơi nhất định trong phạm vi
thời gian biểu đã công bố với phí thỏa thuận. Tờt nhiên, du khách có thể
chọn thuê xe chứ không mua tic kê xe buýt và rồi tự mình lái đến nơi của
mình. Dù sao, điều này có thể trở nên tốn kém hơn và đòi hỏi ở ng•ời du
khách đôi chút kỹ năng và kiến thức tr•ớc nh• kỹ năng lái xe và kiến
thức về hành trình đến nơi. Nừu du khách (hay khách hàng) phải quyết
định giữa việc tự mình tạo ra dịch vụ và việc hợp đồng với ai đó để cung
cấp dịch vụ.
Hợp đồng giá cố định chỉ có thể đ•ợc vận dụng cho một dự án xác
định rõ. Cả khách hàng và ng•ời sản xuất phải có khả năng xác định sản
phẩm hay dịch vụ cuối cùng mong muốn. Một khi điều này để thực hiện
đ•ợc, một trong những yếu kém chính của hợp đồng cố định sẽ đ•ợc
khắc phục.
Lợi ích của hợp đồng giá cố định cho ng•ời phát triển là:
- Khống chế đầy đủ quá trình phát triển
- Lợi ích kinh doanh có thể cao hơn
- Cam kết cho dự án trọn vẹn
Quản lý dự án phần mềm
38
- Cam kết cho dự án trọn vẹn là •u việt đáng kể so với hợp đồng phí
cộng thêm ở đó nó có thể kết thúc bất cứ lúc nào tùy sự xét đoán của
khách hàng.
Tất nhiên, hợp đồng giá cố định cũng có một số bất lợi cho ng•ời phát
triển, bao gồm:
- Đảm nhận rủi ro kinh doanh và phát triển
- Bất đồng tiềm ẩn với khách hàng do:
+ thay đổi yêu cầu liên tiếp
+ tiêu chuẩn hoàn thành dự án
+ giải thích yêu cầu
Một tổ chức phần mềm thắng lợi sẽ th•ờng chuộng hợp đồng giá cố
định. Đó th•ờng là những dự án tạo dựng danh tiếng chuyên môn của
công ty và phát sinh lợi tức đảm bảo tăng tr•ởng. Bất hạnh là những dự
án này cũng gây ra lỗ và th•ờng tác hại nghiêm trọng cho công ty cạnh
tranh gay gắt để có hợp đồng quan trọng đôi khi làm cho công ty nhận
thầu giá thấp cuối cùng gây ra lỗ cho ng•ời phát triển.
Hầu nh• không thể tránh khỏi trong bất kỳ dự án nào ng•ời phát triển
đ•ợc đòi hỏi thay đổi yêu cầu trong quá trình phát triển. Những thay đổi
nh• thế th•ờng đi liền với chi phí bổ sung đòi khánh hàng và bao giờ
cũng là nguyên nhân bất đồng giữa ng•ời sản xuất và khách hàng. Điều
này th•ờng là do yêu cầu không rõ hay mơ hồ và nó lại dẫn đến bất đồng
về chỉ tiêu trong việc hoàn thành dự án. Về cơ bản, điều này làm cho hợp
đồng trở lại trạng thái không đ•ợc xác định đầy đủ.
Theo quan điểm của khách hàng, •u việt của hợp đồng giá cố định bao
gồm:
- Ngân sách cố định cho dự án
- Hầu hết các rủi ro phát triển đ•ợc chuyển sang ng•ời phát triển
+ tham gia tối thiểu trong quá trình phát triển
Bất lợi cho khách hàng là:
- Rủi ro chậm giao sản phẩm
- Giảm sự khống chế quá trình phát triển
- Bất đồng tiềm ẩn với ng•ời sản xuất do:
+ chi phí cao về thay đổi yêu cầu
+ chỉ tiêu hoàn thành dự án không rõ ràng
- giải thích yêu cầu
Ngay dù quyền lợi của ng•ời sản xuất và khách hàng có thể khác nhau,
với hợp đồng giá cố định vẫn th•ờng đ•ợc cả hai bên •a chuộng. Nừu dự
án là chi tiết đủ mức và rõ ràng và nếu quan hệ giữa hai bên đ•ợc xác
định rõ thì các hợp đồng giá cố định có thể có lợi cho cả ng•ời phát triển
lẫn khách hàng.
3.2. Các mối quan hệ khác giữa khách hàng - nhà
phát triển.
Quản lý dự án phần mềm
39
Phí cộng thêm và giá cố định là hai trong số mối quan hệ theo hợp
đồng cổ truyền giữa ng•ời phát triển và khách hàng. Có nhiều biến thức
của hai mối quan hệ cơ bản đó kể cả các ghép nối phù hợp với các dự án
đặc tr•ng. Một số trong những quan hệ đó liên kết với vai trò của khách
hàng và ng•ời phát triển nhằm tạo nhiều yếu tố kích thích hơn cho ng•ời
phát triển hỗ trợ mục tiêu của khách hàng ngoài những tránh nhiệm theo
hợp đồng.
Những loại khác của quan hệ khách hàng - ng•ời phát triển bao gồm:
- Phối hợp giá cố định và phí cộng thêm
- Liên doanh
- Thỏa thuận bản quyền
- Cam kết lâu dài
ở phần 3.1. chúng ta đã xem xét một thí dụ về dự án phối hợp phí cộng
thêm và giá cố định trong đó phần các yêu cầu đ•ợc phát triển theo phí
cộng thêm và các phần còn lại của dự án phát triển theo gía cố định.
Liên doanh là những tr•ờng hợp mà ranh giới giữa khách hàng và
ng•ời phát triển có thể trở nên mờ ảo và phiền những thuận lợi và bất lợi
thảo luận tr•ớc đây có thể không vận dụng đ•ợc. Có nhiều tr•ờng hợp mà
một số hình thức liên doanh có thể là mong muốn cho hai bên nh• khi
ng•ời phát triển muốn duy trì quyền về sản phẩm, hay khi ng•ời phát
triển chung sức với khách hàng tài trợ một phần của cố gắng phát triển.
Có một cách mà khách hàng có thể chào ng•ời phát triển tham gia vừa
phải vào mặt kinh doanh của dự án là bằng cách thay thế bản quyền coi
nh• thanh toán một phần. Điều này tạo nên qui mô bổ sung cho lợi ích
của ng•ời phát triển trong thành công của dự án. Bản quyền thông th•ờng
là ở chỗ thất bại của dự án có thể tạo nên ít lợi nhuận cho ng•ời phát triển
hơn là một hợp đồng giá cố định thẳng thừng và thắng lợi của dự án sẽ
làm tăng lợi nhuận của ng•ời phát triển.
Mối quan hệ lâu dài th•ờng là quan trọng cho ng•ời phát triển. Trong
nhiều tr•ờng hợp, những cam kết dài hạn cũng nằm trong lợi ích của
khách hàng. Điều này xảy ra khi ng•ời phát triển do gắn bó ở hợp đồng
ban đầu, giành đ•ợc lợi thế chủ yếu, qua kiến thức thu l•ợm, đối với
những ng•ời khác cho công việc phát triển tiếp sau. Rõ ràng khi ng•ời
phát triển hoàn thành thắng lợi một dự án lớn và phức tạp, anh ta có đ•ợc
một lợi thế đáng kể so với các công ty khác về các tăng c•ờng trong
t•ơng lai của dự án đó. Cam kết lâu dài theo đó có thể có lợi ích t•ơng hỗ
cho cả hai bên trong đó khách hàng đảm bảo các dịch vụ sau này của
ng•ời phát triển và ng•ời sản xuất đảm bảo cam kết thu nhập lâu dài.
3.3. Yêu cầu đối với một đề xuất (RFP).
Phát triển phần mềm theo hợp đồng bắt đầu từ việc khách hàng lựa
chọn ng•ời phát triển phần mềm. Yêu cầu về đề nghị hay RFT (ở Anh
cũng gọi là mời thầu) là b•ớc đầu của quá trình lựa chọn. Để hiểu xem
Quản lý dự án phần mềm
40
RFP cần đ•ợc chuẩn bị thế nào, tr•ớc hết chúng ta hãy duyệt lại các b•ớc
dẫn tới một quyết định đ•a ra yêu cầu về đề nghị.
Trong ph•ơng pháp tiếp cận theo pha để phát triển phần mềm, thì pha
tiềm dự án th•ờng đ•ợc xem là pha thai nghén. Đây là giai đoạn mà ý
t•ởng đằng sau dự án kết tinh và hình thành dự án.
Đây cũng là giai đoạn mà tổ chức quyết định xem dự án có thể đ•ợc
phát triển nội bộ hay sẽ phải hợp đồng với một công ty khác. Các RFP
không chỉ đ•ợc phát ra cho các dự án hoàn chỉnh; chúng cũng có thể
đ•ợc phát ra để bảo d•ỡng phần mềm của một hệ thống hiện có hay cho
riêng một pha đơn lẻ của dự án. Mọi RFP chuẩn bị kỹ phải có cũng thông
tin cơ bản; các RFP không hoàn chỉnh cho kết quả là các đề nghị không
hoàn chỉnh.
3.3.1. Một số vấn đề cơ bản.
Tr•ớc khi thuê các dịch vụ phát triển của một tổ chức khác, một số vấn
đề cơ bản cần đ•ợc xem xét tới:
- Các mục tiêu của dự án là gì ?
- Các tổ chức nào là gì đ•ợc xem xét cho công việc đó ?
- Loại hợp đồng nào sẽ đ•ợc chào (giá cố định, phí cộng thêm v.v...)
- Phải nhận đ•ợc các đáp ứng nào từ các nhà phát triển sao cho đáp
ứng đó có thể đ•ợc xem xét ?
- Khi nào quá trình lựa chọn ng•ời phát triển phải đ•ợc hòan tất ?
- Khi nào dự án phải hoàn thành và khi nào các hợp đồng trung gian
phải sẵn sàng ?
- Ai, trong tổ chức, đ•ợc ủy thác trách nhiệm lựa chọn ng•ời phát triển
?
- Mức ngân sách nào đ•ợc giành cho hợp đồng ?
Tất cả những vấn đề trên phải đ•ợc nêu ra đầy đủ tr•ớc khi sang b•ớc
sau: việc chuẩn bị các RFP.
3.3.2. Chuẩn bị các RFP.
Yêu cầu tốt với đề nghị là yêu cầu sẽ lôi cuốn đ•ợc những đáp ứng tốt
nhất (đề nghị). Chuẩn bị RFP tốt th•ờng đòi hỏi sự cộng tác của nhiều
ng•ời, mỗi một ng•ời đ•ợc giao trách nhiệm về những phần đặc biệt của
RFP.
Một RFP phải bao gồm những phần sau:
1. Phát triển vấn đề và các mục tiêu dự án.
Phần này cung cấp thông tin nền tảng chung, kể cả mô tả vấn đề cần
đ•ợc giải quyết. Phần này phải cung cấp mọi chi tiết thích đáng cần thiết
để hiểu vấn đề, kể cả biểu đồ, báo cáo và thí dụ.
2. Các yêu cầu kỹ thuật.
Phần này mô tả những yêu cầu kỹ thuật đặc biệt của hệ thống nh•:
- Các giao diện với các hệ thống hiện có
Quản lý dự án phần mềm
41
- Yêu cầu cơ sở dự liệu (nh• khả năng yêu cầu, các quan hệ dữ liệu
v.v...)
- Truyền thông và kiến trúc mạng
- Các chuẩn quân sự, chuẩn chính quyền hay các chuẩn đ•ợc yêu cầu
khác
- Ph•ơng pháp luận phát triển yêu cầu
- Độ tin cậy của hệ thống
- Ràng buộc về thời gian
- Ngôn ngữ lập trình
- Máy tính chủ (host computer)
3. Thông tin quân sự
Phần này cung cấp thông tin liên quan đến việc trình bày về thể chất đề
nghị nh•:
- Ai có thể trả lời cho RFP
- Yêu cầu làm sáng tỏ và các thông tin bổ sung thế nào
- Ngày tháng và địa điểm họp theo lịch với các nhà đề nghị
- Chỉ tiêu lựa chọn đề nghị
Phần này cũng có dự phòng về kết quả là tổ chức đ•a ra RFP sẽ không
bị bắt buộc lựa chọn đề nghị chi phí thấp nhất hay bất cứ đề nghị nào
khác.
4. Yêu cầu chi phí
Mọi vấn đề tài chính đ•ợc nêu ở phần này. Điều này bao gồm cơ cấu
giá yêu cầu trong đề nghị cũng nh• mọi thông tin đặc tr•ng đ•ợc nêu
trong đề nghị (nh• giải trình chi phí tổng cộng hay lập giá riêng cho mỗi
pha). Phần này cũng có thể nêu rõ loại hợp đồng phát triển nào đ•ợc chào
(bản quyền, phí cộng thêm, giá cố định v.v...)
5. T• liệu tham khảo
Phần này bao gồm danh sách mọi t• liệu nêu trong RFP nh• tiêu
chuẩn, t• liệu hệ thống hiện có, tài liệu về sản phẩm khác v.v...
6. Những thứ giao đ•ợc có yêu cầu
Phần này bao gồm giải thích ban đầu về tuyến bố công việc (Sow).
Chủ yếu đây là danh sách những thứ giao đ•ợc chính của dự án nh• t•
liệu, phần mềm, đào tạo và mọi phần cứng hay thiết bị thích đáng. Phần
này cũng thảo luận việc bảo đảm theo yêu cầu cho hệ thống sẽ đ•ợc giao.
7. Định dạng đề nghị yêu cầu
Định dạng tiêu chuẩn yêu cầu cho đề nghị đ•ợc mô tả ở phần này.
Điều này bao gồm nội dung yêu cầu về:
- Đề nghị kỹ thuật
- Đề nghị quản lý
- Đề nghị về giá cả
- Tuyên bố về công việc
Thí dụ về một phác họa đề nghị có nêu ở phần 3.4
Phần này cũng bao gồm danh sách mọi thông tin có thể phụ lục cho dự
án, ngoài đề nghị cơ bản (theo định dạng mô tả trên) nó có thể bao gồm
Quản lý dự án phần mềm
42
báo cáo tài chính mới nhất của tổ chức ng•ời đề nghị hay ủy nhiệm th•
kỹ thuật của ng•ời đề nghị.
8. Đệ trình lịch trình và lịch quyết định
Những thời hạn quyết định liên quan đến RFP đ•ợc mô tả ở phần này.
Nó bao gồm thời gian chậm nhất cho việc đệ trình một đề nghị và ngày
dự kiến tiến hành lựa chọn. Nó cũng có thể bao gồm lcịh trình mong
muốn để hoàn thành công việc phát triển.
Một trong những mục tiêu của RFP là làm cho nhiệm vụ so sánh các
đề nghị đ•ợc dễ dàng. Nhiệm vụ này có thể trở nên cực kỹ khó nếu mọi
đề nghị đ•ợc cấu tạo khác nhau hay nếu các đề nghị đó đ•ợc dựa trên
những giả định rất khác nhau. Phần 3 của phác thảo nói đến cuộc họp với
mọi ng•ời đề nghị. Cuộc họp này tạo cơ hội đảm bảo là mọi ng•ời đề
nghị đều có một cơ sở chung về hiểu biết và kết quả trong các đề nghị
của họ dễ so sánh hơn. Nó cũng thành đạt khi yêu cầu khuôn dạng đề
nghị tiêu chuẩn hóa, nêu ở phần 7 của RFP. Bảng 3.1. có nêu phác thảo
đại khái của một RFP.
Bảng 3.1. Phác thảo khái quát cho một RFP
1. Tuyên bố vấn đề và mục tiêu dự án
- Mô tả hiện trạng
- T• liệu hỗ trợ
các báo cáo
các biểu đồ
các thí dụ
- Mô tả vấn đề
- Các mục tiêu
2. Yêu cầu kỹ thuật
- Giao diện với các hệ thống hiện có
- Truyền thông và kiến trúc mạng
- Độ tin cậy của hệ thống
- Ngôn ngữ lập trình
- Yêu cầu cơ sở dữ liệu
- Tiêu chuẩn quân sự hay chính quyền
- Ràng buộc thời gian
- Máy tính chủ
3. Thông tin quản trị
- Ai có thể đáp ứng cho RFP
- Ngày tháng và địa điểm cuộc họp theo lịch với mọi ng•ời đề nghị
ng•ời đ•ợc chọn- Làm sao yêu cầu sáng tỏ hay thông tin bổ sung
- Tiêu chuẩn lựa chọn đề nghị
- Các thông tin quản trị khác
4. Yêu cầu chi phí
- Cơ cấu giá
Quản lý dự án phần mềm
43
các dịch vụ
các sản phẩm
cung cấp
- Biện minh cho chi phí
- Lập giá riêng từng pha
- Loại hợp đồng phát triển đ•a chào
- So sánh chi phí của các giải pháp thay thế
5. T• liệu tham khảo
- Các tiêu chuẩn
- T• liệu về hệ thống hiện có
- T• liệu về sản phẩm
6. Yêu cầu chuyển giao
- T• liệu
- Phần mềm
- Phần cứng hay thiết bị thích ứng
- Bảo hành hệ thống sẽ chuyển giao
- T• liệu về sản phẩm chuyển giao
- Huấn luyện
- Các công cụ phát triển và thử nghiệm
7. Định dạng đề nghị
- Đề nghị kỹ thuật
- Tuyên bố công việc
- Đề nghị quản lý
- Bổ sung và phụ lục
+ báo cáo tài chính của tổ chức đề nghị
+ ủy nhiệm th• kỹ thuật của ng•ời đề nghị
+ Tóm tắt nhân sự chủ lực
- Đề nghị lập giá
8. Lịch đệ trình và lịch quyết định
- Hạn cuối cùng phải đệ trình đề nghị
- Hạn dự kiến tiến hành lựa chọn
- Lịch mong muốn hoàn thành công việc phát triển
3.3.3. Phát yêu cầu đề xuất RFP
Có pha ph•ơng pháp cơ bản trong phần phát một RFP
- Theo một danh mục phân phát hạn chế
- Theo một danh mục phân phát rộng
- Cho mọi ai yêu cầu
Danh mục phân phát hạn chế chỉ có những tổ chức nào đã đ•ợc lựa
chọn theo bộ chỉ tiêu đặc tr•ng. Nhiều cơ quan chính phủ duy trì một
Quản lý dự án phần mềm
44
danh mục các công ty đ•ợc công nhận cho mỗi lớp RFP. Ph•ơng pháp
này loại trừ các tổ chức ít có cơ may, đ•ợc lựa chọn.
Danh mục phân phát rộng bao gồm bất cứ tổ chức nào có chút ít cơ
may đ•ợc lựa chọn. Với một tổ chức đ•ợc bổ sung vào danh mục chỉ yêu
cầu điều đó. Các danh mục phân phát rộng có thể thích hợp cho những dự
án nhỏ, những dự án không đòi hỏi giám định đặc biệt nào hay những dự
án mà ít tổ chức thích hợp đã nhắm vào.
Không phải không phổ biến là thông tin RFP ban đầu đ•ợc quảng cáo
trong báo chí hay tạp chí chuyên ngành. Những quảng cáo đã mô tả vắn
tắt RFP và mời các công ty yêu cầu bản sao toàn bộ RFP. Sự tiếp cận này
th•ờng là thích hợp khi phải tìm kiếm những ng•ời đề nghị tiềm ẩn mới.
Bất kể ph•ơng pháp phân phát nào đ•ợc chọn lựa, tổ chức đề xuất RFP
phải nhớ là thủ tục đề xuất không kết thúc cùng với sự phân phát RFP. Tổ
chức phân phát phải sẵn sàng cung cấp mọi thông tin bổ sung và làm
sáng tỏ những điều có thể đ•ợc yêu cầu. Có một cách để thực hiện điều
này là (nh• đã nêu). Định lịch họp với mọi ng•ời đề nghị tiềm ẩn nhằm
làm sáng tỏ và trả lời mọi câu hỏi. Cuộc họp này cũng là một cơ hội cho
các ng•ời đề nghị đi xem một l•ợt các thiết bị mục tiêu và biết đ•ợc tận
mắt những vấn đề sẽ đ•ợc dự án giải quyết.
3.4. đề xuất
Các loại kiến nghị có thể phần thành 2 phạm trù cơ bản:
- Kiến nghị do yêu cầu
- Kiến nghị không yêu cầu
Kiến nghị do yêu cầu đáp ứng hoặc RFP chính thức hoặc lời mời đặc
biệt để trình kiến nghị trong khi kiến nghị không do yêu cầu thông
th•ờng do ng•ời đề nghị x•ớng xuất. Tất nhiên có nhiều tổ hợp của hai
biểu đó ví nh• tình huống kỳ dị nh•ng th•ờng thấy khi một kiến nghị
không do yêu cầu làm nảy sinh việc đề xuất RFP chính thức.
3.4.1. Đề xuất không do yêu cầu
Những kiến nghị không do yêu cầu ít chính thức hơn nhiều so với kiến
nghị do yêu cầu và th•ờng không là gì hơn là một b•ớc đầu dẫn đến
những th•ơng thảo chính thức hơn. Kiến nghị không do yêu cầu phải có
những phần cơ bản sau:
1. Biện minh việc đệ trình kiến nghị
2. Mô tả vấn đề phải giải quyết
3. Mô tả giải pháp đề nghị
4. Mô tả tổ chức của ng•ời kiến nghị
5. Tổng quan chung về kinh phí của giải pháp đề nghị
Phần biện minh là cốt tử vì nó giải thích vì sao khách hàng nên đọc
tiếp. Phần này có thể nêu, chẳng hạn là ng•ời kiến nghị đã phát triển một
công nghệ mới và thành công có lợi cho khách hàng và có thể thích nghi
với nhu cầu của (tổ chức) khách hàng. Mục tiêu chính là cung cấp câu trả
Quản lý dự án phần mềm
45
lời cho câu hỏi của khách hàng: “Vì sao công ty lại tiếp cận tôi và vì sao
đọc kiến nghị này là lợi ích cho tôi vậy ?”
Các phần 2 và 3, mô tả cách mà kiến thức chuyên môn hóa của ng•ời
đề nghị đ•ợc vận dụng vào các vấn đề của tổ chức khách hàng. Điều này
đòi hỏi ng•ời đề nghị nghiên cứu tổ chức của khách hàng nhằm đảm bảo
là kiến nghị cung cấp một giải pháp thực cho một vấn đề thực.
Chi phí chính xác của giải pháp không cần nêu ở giai đoạn này. Một
kiến nghị không do yêu cầu hiến khi đ•ợc chấp nhận ngày vòng đầu.
Mục tiêu chính của nó là tạo dựng một mối quan tâm. Nếu kiến nghị tạo
đủ mối quan tâm thì ng•ời đề nghị sẽ đ•ợc mời thảo luận kiến nghị đó và
sau đó sẽ đệ trình lại cho khách hàng một bản trình bày kiến nghị chi tiết
hơn.
3.4.2. Đề xuất khi có yêu cầu
Kiến nghị do yêu cầu mà khách hàng x•ớng xuất coi nh• đáp lại RFP
chính thức hay một hình thức mời nào khác đệ trình kiến nghị. Trái với
tính chất không chính thức của kiến nghị không do yêu cầu, kiến nghị do
yêu cầu là hoàn chỉnh và chi tiết và nội dung th•ờng ràng buộc cho ng•ời
đề nghị (kiến nghị coi nh• văn bản ràng buộc đ•ợc thảo luận thêm và
minh họa ở lời nói đầu ch•ơng 10). Cùng với yêu cầu đệ trình kiến nghị,
khách hàng cũng có thể dẫn chính xác kiến nghị phải đ•ợc chuẩn bị thể
bào và đệ trình ra sao. Một thí dụ về dạng kiến nghị chính thức có ở bảng
3.2.
Một lĩnh vực cơ bản khiến kiến nghị do yêu cầu và không do yêu cầu
khác nhau là ở nhu cầu cạnh tranh. Các kiến nghị do yêu cầu phải có khả
năng cạnh tranh thắng lợi với các kiến nghị khác. Điều này có nghĩa là
việc chuẩn bị kiến nghị do yêu cầu phải đ•ợc coi bản thân nó là một dự
án mini và nh• thế đòi hỏi hình thành một đội ngũ chuẩn bị kiến nghị.
3.4.3. Đội ngũ chuẩn bị đề xuất.
Việc hình thành ban kiến nghị là cơ bản cho bất cứ tổ chức nào dự tính
đáp ứng thành công một RFP. Ban này chỉ định ng•ời có nhiệm vụ định
vị những RFP thích hợp và độ trình để thảo luận căn cứ đ•ờng lỗi chỉ đạo
do ban đề ra. Đ•ờng lối chỉ đạo phải nhằm vào các RFP mà:
- nằm trong phạm vi đ•ờng lỗi kinh doanh của công ty
- nằm trong phạm vị giới hạn kích th•ớc đặc tr•ng (dự án không quá
nhỏ và không quá lớn).
- không hiển nhiên loại trừ chính công ty (thí dụ yêu cầu giám định
đặc biệt hay hoàn thành về an ninh).
Căn cứ ở đánh giá của ban về các RFP đek trình, ban kiến nghị quyết
định RFP nào là đáp ứng đ•ợc bởi công ty.
Sau đó ban kiến nghị lựa chọn đội ngũ chuẩn bị cho mỗi kiến nghị.
Đội ngũ này có thể chỉ có một ng•ời hay nhiều thành viên, tùy thuộc ở
qui mô của dự án kiến nghị. Đội ngũ rút từ kinh nghiệm và giám định của
Quản lý dự án phần mềm
46
mọi nhân viên công ty và nếu cần có thể sử dụng dịch vụ của các chuyên
gia bên ngoài hỗ trợ trong việc chuẩn bị kiến nghị.
Kiến nghị cơ bản yêu cầu trong phạm vi đội ngũ chuẩn bị kiến nghị
bao gồm:
- Kiến thức kỹ thuật liên quan đến mỗi lĩnh vực riêng rẽ do kiến nghị
l•u ý
- Quản lý dự án kể cả dự toán và lập kế hoạch
- Kiến thức tài chính, kể cả định ngân sách và lập kế hoạch tài chính
cho toàn bộ dự án
- Quen thuộc với tổ chức của khách hàng
- Kinh nghiệm trong soạn thảo kiến nghị
Một thành viên của đội ngũ sẽ đ•ợc ban chỉ định lãnh đạo đội hay điều
phối viên. Sau khi đội ngũ đã hình thành, hai việc ủy thác đầu tiên của nó
là:
1. Duyệt xét b•ớc đầu RFP
2. Chuẩn bị lịch trình cho việc hoàn thành dự án và giao trách nhiệm.
Việc chuẩn bị kiến nghị tốt tốn tiền và phải đ•ợc coi nh• là một đầu t•.
Nừu việc này làm tốt, nó có thể tạo ra lợi nhuận, ngân sách kiến nghị
không thích hợp sẽ giảm cơ may tạo ra kiến nghị thắng đ•ợc các thành
viên của đội ngũ chuẩn bị kiến nghị phải đ•ợc tập trung vào nhiệm vụ và
họ phải đ•ợc cung cấp nguồn lực thích hợp.
Theo Silver (1986), các kiến nghị trong công nghệ cao và các công
nghiệp hành không vũ trụ đ•ợc cấp ngân sách khoảng 2% trị giá hợp
đồng, dù sao, phạm vi chi phí. Kiến nghị là 1% đến 10%. Chi phí hợp
đồng càng cao, phần trăm dành cho chuẩn bị kiến nghị càng thấp.6
3.4.4. Khuôn dạng đề xuất
Kiến nghị tốt phải trả lời đ•ợc 6 câu hỏi cơ bản: ai, cái gì. tại sao, thế
nào, khi nào, và bao nhiêu. Đáp án cho các câu hỏi đó đơn giản liên quan
đến:
1. Ai là tổ chức đệ trình kiến nghị ?
2. Cái gì đ•ợc đề nghị ?
3. Tại sao kiến nghị đ•ợc đệ trình ?
4. Làm sao công việc kiến nghị đ•ợc thực hiện ?
5. Khi nào nó sẽ đ•ợc phát triển xong và bàn giao ?
6. Bao nhiêu chi phí ?
6 Silver đ•a ra, phạm vi hợp đồng dự án $10K đén $2B với phạm vi chi
phí kiến nghị từ 1% đến 20% ở Hoa Kỳ và phạm vi hợp đồng $10K đến
$1B với phạm vi chi phí kiến nghị 1% đến 10% ở Châu Âu. Căn cứ ở hầu
hết các dự án khoảng $250K và $100, ông dựa ra phạm vi chi phí kiến
nghị từ 1,5% đến 8% ở Hoa kỳ và 1% đến 2 1/2% ở châu Âu.
Quản lý dự án phần mềm
47
Câu hỏi tại sao là quan trọng cho một kiến nghị không do yêu cầu và
tạo cơ sở cho việc đệ trình nó. Đáp án cho một RFP chỉ cần khẳng định
Kiến nghị này đ•ợc đệ trình để phúc đáp yêu cầu đ•ợc kiến nghị cuả
công ty Acme Inc số 456 ngày 5/6....
Năm câu hỏi khác đ•ợc nhằm vào 5 hợp phần chính của kiến nghị
1. Kiến nghị kỹ thuật (cái gì, làm sao)
2. Kiến nghị quản lý (làm sao, khi nào)
3. Kiến nghị định giá (bao nhiêu)
4. Tuyên bố công việc (cái gì, khi nào)
5. Tóm tắt điều hành và trong phần bổ sung bao gồm:
- Nền tảng và kinh nghiệm của công ty (ai)
- Trình độ chuyên môn của nhân sự chủ lực
- Các chứng vật và văn bản thích hợp
Bảng 3.2. Một khái lựợc cho một kiến nghị kỹ thuật
1. Tổng quan về vấn đề cần giải quyết
2. Tổng quan về giải pháp kiến nghị
3. Hợp phần cần mua
4. Hợp phần cần phát triển
5. Thiết b
Các file đính kèm theo tài liệu này:
- Giao trinh quan ly du an phan mem.pdf