Professional Documents
Culture Documents
• 1. Định nghĩa
NHẬP MÔN • 2. Quy trình phát triển phần mềm
CÔNG NGHỆ PHẦN MỀM • 3. Một số mô hình phát triển phần mềm
– 3.1. Mô hình CMM
(INTRODUCTION TO SOFTWARE – 3.2. Mô hình tuyến tính
– 3.3. Mô hình chế thử
ENGINEERING) – 3.4. Mô hình phát triển ứng dụng nhanh
– 3.5. Các mô hình tiến hóa
– 3.6. Mô hình hướng thành phần
– 3.7. Mô hình RUP
– 3.8. Các kỹ thuật thế hệ thứ 4
• 4. Đánh giá sản phẩm và quy trình
1 2
1 2
3 4
3 4
Các phương pháp luận và kỹ thuật
Các pha trong vòng đời PM
cho từng pha
• Một cách rõ ràng hoặc rõ ràng, tất cả các sản
phẩm phần mềm đều trải qua ít nhất các giai Tên pha Nội dung nghiệp vụ Phương pháp, kỹ thuật
Xác định Đặc tả yêu cầu người dùng
đoạn sau: yêu cầu Xác định yêu cầu phần mềm
Phân tích cấu trúc hóa
– Yêu cầu — xác định nhu cầu của khách hàng và các Thiết kế Thiết kế cơ bản phần mềm
Thiết kế cấu trúc hóa
ràng buộc của sản phẩm hệ thống Thiết kế cấu trúc ngoài của phần mềm
– Thiết kế — xác định cấu trúc / tổ chức của hệ thống Thiết kế
Là thiết kế chi tiết: Thiết kế cấu trúc bên trong Lập trình cấu trúc
phần mềm] chương trình
của phần mềm (đơn vị chương trình hoặc Phương pháp Jackson
môđun) Phương pháp Warnier
– Mã hóa — viết phần mềm Lập trình Mã hóa bởi ngôn ngữ lập trình Mã hóa cấu trúc hóa
– Kiểm thử — vận hành hệ thống để tìm và loại bỏ các Đảm bảo Phương pháp kiểm thử
khiếm khuyết chất lượng
Kiểm tra chất lượng phần mềm đã phát triển
chương trình
– Bảo trì — sửa chữa và nâng cao sản phẩm sau khi Vận hành Sử dụng, vận hành phần mềm đã phát triển.
Chưa cụ thể
khách hàng triển khai Bảo trì Biến đổi, điều chỉnh phần mềm
5 6
5 6
Các mô hình vòng đời phần mềm 2. Quy trình phát triển phần mềm
• Quá trình là một tập hợp các hoạt động, với các đầu vào và
đầu ra được xác định rõ ràng, để hoàn thành một số nhiệm Khung quy trình chung (Common process framework)
vụ.
• Mô hình vòng đời là một mô tả về một quá trình thực hiện Hoạt động khung (Framework activities)
một sản phẩm phần mềm trong toàn bộ hoặc một phần Tập tác vụ (Task sets)
vòng đời của nó. Tác vụ (Tasks)
– Các mô hình vòng đời có xu hướng tập trung vào các pha chính
của chu kỳ và mối quan hệ của chúng với các pha khác. Điểm quan trọng
(milestones),sản phẩm chuyển
– Các nghiên cứu gần đây về quy trình phần mềm đã xem xét chi giao (deliverables)
tiết nhiều khía cạnh của việc phát triển và bảo trì.
– Mô hình vòng đời là một mô tả quy trình phần mềm, nhưng Điểm Kiểm Tra Chất Lượng
thuật ngữ mô hình vòng đời có trước các cuộc thảo luận về quy (SQA points)
trình phần mềm. Các hoạt động giám sát, đánh giá kỹ thuật, đảm bảo chất
lượng phần mềm, quản lý cấu hình, quản lý rủi ro, ...
(Umbrella activities)
7 8
7 8
3. Một số mô hình phát triển PM 3.1. Mô hình khả năng thuần thục
3.1. Capability Maturity Model (CMM by SEI): Tại sao phải sử dụng mô hình CMM trong công
nghệ làm phần mềm?
Mô hình khả năng thuần thục • Khó khăn khi không sử • Thuận lợi khi sử dụng
dụng CMM CMM
– Các khái niệm • Các tiến trình phần mềm thường • Dễ dàng quản lý phát triển phần mềm.
– Tại sao sử dụng mô hình CMM bị thay đổi cập nhật mà không có
sự chuần bị trước.
Các tiến trình được cập nhật qua sự
điều khiển của các nhà phần tích và
– Các thức sử dụng mô hình • Đặc tả một tiến trình phần mềm
không chặt chẽ, dẫn đến sự
kiểm thử.
• Vai trò, trách nhiệm của mỗi thành
khủng hoảng khi thực hiện một viên trong các tiến trình được phân
dự án. định rõ ràng.
• Thiếu cơ sở để đánh giá chất • Quản lý chất lượng của phần mềm,
lượng phần mềm, để đưa ra thoả mãn các yêu cầu khách hàng. Có
phương thức tiến hành và cách cơ sơ chuẩn xác đánh giá chất lượng,
giải quyết các vấn đề phát sinh. thời gian, chi phí và phân tích dự án và
các tiến trình.
9 10
9 10
Các khái niệm cơ bản trong CMM Thực thi tiến trình phần mềm
(Software Process Performance)
• Tiến trình (Process) • Thực thi tiến trình phần mềm cho biết kết quả
– Một tiến trình phần mềm là một tập hợp các hành thực tế của một tiến trình phần mềm.
động, phương thức, thực hành, thay đổi mà người ta
dùng để duy trì và phát triển phần mềm cũng như các • Hướng tới kết quả đạt được còn khả năng tiến
thành phần liên quan tới chúng (ví dụ: kế hoạch dự
án, thiết kế, lập trình, kiểm thử, tài liệu hướng dẫn...). trình phần mềm cho thấy kết quả có thể mong
• Khả năng tiến trình phần mềm đợi.
(Software Process Capability) • Do phụ thuộc vào đặc trưng của dự án và từng
– Cho biết phạm vi kết quả có thể mong đợi của một trường hợp cụ thể, nên kết quả thực tế thường
tiến trình phần mềm.
– Dự đoán khả năng làm dự án phần mềm tiếp theo của không phản ánh đầy đủ khả năng tiến trình của
công ty. một công ty.
11 12
11 12
Độ thuần thục của tiến trình PM Mô hình chi tiết các thành phần trong
(Software process maturity) cấu trúc CMM.
Mức độ thuần nhận được từ
thục
• Chỉ rõ một tiến trình phần mềm được xác chỉ ra
Các vùng tiến
tổ chức bởi
định, quản lý, đánh giá, điều khiển, đạt hiệu trình chính
Khả năng
quả một cách rõ ràng. tiến trình
đạt được Các tính năng phổ
nhận được từ
biến
• Cho biết khả năng phát triển, chỉ ra giá trị của
Các mục tiêu ánh xạ Các thực hành
tiến trình phần mềm, tính vững chắc của dự chính
13 14
Tiến trình ổn định, Được định nghĩa Tiến trình ổn định, Được định nghĩa
chuẩn (3) chuẩn (3)
Tiến trình có Có tính lặp lại Tiến trình có Có tính lặp lại
kỷ luật (2) Quá trình vận hành phụ thuộc vào khả năng của từng cá
kỷ luật (2) Kết quả là đưa được những hiệu quả quản lý tiến trình của
nhân riêng lẻ, và thường xuyên thay đổi do phụ thuộc vào kỹ một dự án nµy vào một dự án khác. Điều này cho phép lặp
năng, trình độ hiểu biết và các hoạt động của từng thành lại (repeatable) những thành công đối với một dự án tương
Ban đầu viên trong dự án. Ban đầu tự mặc dù có thể các dự án này cũng có những điểm khác
(1) (1) biệt.
15 16
15 16
Mô hình 5 mức của CMM Mô hình 5 mức của CMM
Lập được tài liệu tiến trình tiêu Mục tiêu là điều khiển tiến trình.
chuẩn đối với việc phát triển và Các tiến trình phần mềm được
bảo trì phần mềm có tổ chức, bao quản lý để vận hành ổn định, an
gồm cả công nghệ phần mềm, các toàn. Có những đánh giá phần
tiến trình quản lý, và các tiến trình mềm và chất lượng, hiệu quả các
tích hợp với nhau (nghĩa rằng đầu Tiến trình cải Cải tiến hoạt động trong tiến trình. Tiến trình cải Cải tiến
ra của một tiến trình sẽ là đầu vào tiến liên tục (5) tiến liên tục (5)
của tiến trình tiếp theo ).
Tiến trình ổn định, Được định nghĩa Tiến trình ổn định, Được định nghĩa
chuẩn (3) chuẩn (3)
Tiến trình có Có tính lặp lại Tiến trình có Có tính lặp lại
kỷ luật (2) Một tiến trình được định nghĩa tốt gồm có các tính chất như
kỷ luật (2) Do các tiến trình ổn định và được đánh giá đúng nên khi có
có tiêu chuẩn, đầu vào, tiêu chuẩn và thủ tục rõ ràng để tiến các trường hợp ngoại lệ, sẽ xác định và chỉ rõ những nguyên
hành công việc, kiểm tra các đầu ra. nhân gây ra biến đổi.
Ban đầu Ban đầu
(1) (1)
17 18
17 18
19 20
19 20
Khả năng nhìn nhận tại mỗi mức Khả năng tiến trình và dự đoán theo
thuần thục các mức của CMM
• Khi mức độ thuần thục tăng, sự sai khác giữa kết
quả đạt được và kết quả dự tính giảm xuống.
• Khi mức độ thuần thục tăng, độ biến động của
kết quả thực tế so với kết quả đề ra giảm xuống.
• Khi mức độ thuần thục tăng thì các kết quả sẽ
được cải thiện. Đó là, chi phí giảm, thời gian phát
triển ngắn hơn, chất lượng và năng suất tăng.
21 22
21 22
23 24
3.2. Mô hình tuyến tính Mô hình tuyến tính
Tạo mã / lập trình (Code generation / programming): Kiểm thử (Testing): Kiểm tra các chương
• Công nghệ học Hệ thống / Thông tin và mô hình hóa Chuyển thiết kế thành chương trình máy tính bởi trình và môđun cả về lôgic bên trong và
(System / Information engineering and modeling): ngôn ngữ nào đó. Nếu thiết kế đã được chi tiết hóa
thì lập trình có thể chỉ thuần túy cơ học
chức năng bên ngoài, nhằm phát hiện
ra lỗi và đảm bảo với đầu vào xác định
thiết lập các yêu cầu, ánh xạ một số tập con các yêu thì cho kết quả mong muốn
cầu sang phần mềm trong quá trình tương tác giữa
phần cứng, người và CSDL
25 26
27 28
27 28
3.3. Mô hình chế thử (Prototyping model) Mô hình chế thử: Khi nào ?
• Khi mới rõ mục đích chung chung của phần
mềm, chưa rõ chi tiết đầu vào hay xử lý ra sao
hoặc chưa rõ yêu cầu đầu ra
Nghe Khách Tạo / sửa
trình bày bản mẫu • Dùng như “Hệ sơ khai” để thu thập yêu cầu
người dùng qua các thiết kế nhanh
• Các giải thuật, kỹ thuật dùng làm bản mẫu có
thể chưa nhanh, chưa tốt, miễn là có mẫu để
Khách kiểm tra
bản mẫu thảo luận gợi yêu cầu của người dùng
29 30
29 30
31 32
RAD: Business modeling RAD: Mô hình dữ liệu và tiến trình
• Luồng thông tin được mô hình hóa để trả lời • Mô hình dữ liệu (Data modeling): các đối tượng
các câu hỏi: dữ liệu cần để hỗ trợ nghiệp vụ (business). Định
– Thông tin nào điều khiển xử lý nghiệp vụ ? nghĩa các thuộc tính của từng đối tượng và xác
– Thông tin gì được sinh ra?
lập quan hệ giữa các đối tượng
– Ai sinh ra nó ? • Mô hình tiến trình (Process modeling): Các đối
– Thông tin đi đến đâu ?
tượng dữ liệu được chuyển sang luồng thông tin
thực hiện chức năng nghiệp vụ. Tạo mô tả xử lý
– Ai xử lý chúng ?
đễ cập nhật (thêm, sửa, xóa, khôi phục) từng đối
tượng dữ liệu
33 34
33 34
35 36
Mô hình gia tăng
3.5. Các mô hình tiến hóa
(The incremental model)
• Phần lớn các hệ phần mềm phức tạp đều tiến hóa theo • Kết hợp mô hình tuần tự và ý tưởng lặp lại của
thời gian: môi trường thay đổi, yêu cầu phát sinh thêm,
hoàn thiện thêm chức năng, tính năng chế bản mẫu
• Các mô hình tiến hóa (evolutionary models) có tính lặp • Sản phẩm lõi với những yêu cầu cơ bản nhất
lại. Kỹ sư phần mềm tạo ra các phiên bản (versions) ngày của hệ thống được phát triển
càng hoàn thiện hơn, phức tạp hơn
• Các mô hình tiêu biểu: • Các chức năng với những yêu cầu khác được
– Gia tăng (Incremental) phát triển thêm sau (gia tăng)
– Xoắn ốc (Spiral) • Lặp lại quy trình để hoàn thiện dần
– Xoắn ốc WINWIN (WINWIN spiral)
– Phát triển đồng thời (Concurrent development)
37 38
37 38
Gia tăng 3 Phân tích Thiết kế Lập trình Kiểm thử Xuất xưởng 3
Làm mới
Gia tăng 4 Phân tích Thiết kế Lập trình Kiểm thử XX 4 Nâng cấp
Khách hàng Xây dựng &
đánh giá Xuất xưởng
Thời gian/lịch Bảo trì
39 40
39 40
Mô hình xoắn ốc (tiếp) Mô hình xoắn ốc (tiếp)
• Giao tiếp khách hàng: giữa người phát triển và • Xây dựng và xuất xưởng: xây dựng, kiểm thử,
khách hàng để tìm hiểu yêu cầu, ý kiến cài đặt và cung cấp hỗ trợ người dùng (tư liệu,
• Lập kế hoạch: Xác lập tài nguyên, thời hạn và huấn luyện, . . .)
những thông tin khác • Đánh giá của khách hàng: Nhận các phản hồi
• Phân tích rủi ro: Xem xét mạo hiểm kỹ thuật của người sử dụng về biểu diễn phần mềm
và mạo hiểm quản lý trong giai đoạn kỹ nghệ và cài đặt
• Kỹ nghệ: Xây dựng một hay một số biểu diễn
của ứng dụng
41 42
41 42
43 44
43 44
Mô hình phát triển đồng thời
Mô hình xoắn ốc WINWIN
(concurrent development)
2. Xác định điều kiện 3a. Hòa hợp điều kiện thắng
• Xác định mạng lưới những hoạt động đồng thời
thắng của cổ đông 3b. Thiết lập mục tiêu mức tiếp
và các ràng buộc, dự kiến
(Network of concurrent activities)
1. Xác định mức
• Các sự kiện (events) xuất hiện theo điều kiện vận
tiếp của cổ đông động trạng thái trong từng hoạt động
4. Đánh giá tiến trình và
dự kiến sản phẩm,
• Dùng cho mọi loại ứng dụng và cho hình ảnh khá
giải quyết rủi ro
chính xác về trạng thái hiện trạng của dự án
• Thường dùng trong phát triển các ứng dụng
7. Xét duyệt và đánh giá
khách/chủ (client/server applications): hệ thống
6. Kiểm định sản phẩm
và quy trình
5. Xác định mức tiếp của
sản phâm và quy trình,
và các thành phần cấu thành hệ thống được phát
kể cả phân chia nhỏ
triển đồng thời
45 46
45 46
• Với ưu điểm tái sử dụng các thành phần qua Thư Đặt Lấy
viện / kho các lớp: tiết kiệm 70% thời gian, 80% giá Kỹ nghệ
thành phần
vào thư viện
thành phần
nếu có
thành, chỉ số sản xuất 26.2/16.9 Khách hàng Xây dựng & Xây dựng
đánh giá Xuất xưởng thành phần
• Với UML như chuẩn công nghiệp đang triển khai nếu kh.có
47 48
47 48
2.3.7. Mô hình RUP
Tổng kết các mô hình
(Rational Unified Process)
• SV tự nghiên cứu • Thác nước: mô hình tuyến tính
• Chế thử: mô hình lặp đi lặp lại
• Gia tăng: kết hợp giữa mô hình tuyến tính và
lặp đi lặp lại
• Xoăn ốc: kết hợp giữa mô hình tuyến tính và
lặp đi lặp lại
• Phát triển nhanh: mô hình lặp đi lặp lại
49 50
49 50
51 52
51 52
4. Đánh giá: Sản phẩm và quy trình
(Product and process)
• Quy trình yếu thì sản phẩm khó mà tốt, song
không nên coi trọng quá mức vào quy trình
hoặc quá mức vào sản phẩm
• Sản phẩm và quy trình cần được coi trọng như
nhau
53
53
Chương 3. Phương pháp Agile
• Outline
NHẬP MÔN – 1. Đặt vấn đề
CÔNG NGHỆ PHẦN MỀM – 2. Tuyên ngôn của phương pháp Agile
(INTRODUCTION TO SOFTWARE – 3. Các nguyên lý của phương pháp Agile
– 4. So sánh Agile và Waterfall
ENGINEERING) – 5. Nguyên tắc cơ bản của phương pháp Agile
– 6. Tính phù hợp của các phương pháp Agile
– 7. Một số phương pháp Agile phổ biến
• Scrum
• Lean development
• Extreme Programming (XP)
1 2
1 2
3 4
3 4
Vòng đời lý tưởng - Thác nước
Non-strict waterfall model
(Nghiêm ngặt) Không có phản hồi
• Mặc dù mô hình thác nước nhấn mạnh một chuỗi tuyến tính
của các pha, trên thực tế, trong thực tế luôn có một lượng lớn
sự lặp lại các pha trước đó, một điểm được tạo bởi các mũi
tên dẫn ngược lên thác nước
5 6
5 6
7 8
7 8
Pekka Abrahamsson, Juhani Warsta, Mikko T. Siponen, and Jussi
History of Agile:
Lịch sử của Agile
Ronkainen. 2003. New directions on agile methods: a comparative
Where Did it analysis. In Proceedings of the 25th International Conference on
Come From? Software Engineering (ICSE '03). IEEE Computer Society, Washington,
DC, USA, 244-254.
9 10
9 10
2. Tuyên ngôn phương pháp Agile Agile: Values, Principles and Methods
• Cách tốt hơn để phát triển phần mềm là làm điều
đó và giúp người khác làm điều đó. Thông qua
việc này, các giá trị sau sẽ được nhận ra:
– Các cá nhân và tương tác qua các quy trình và công cụ
– Phần mềm làm việc dựa trên tài liệu toàn diện
– Sự hợp tác của khách hàng trong quá trình đàm phán hợp đồng
– Đáp ứng sự thay đổi so với việc tuân theo kế hoạch
• Mặc dù các giá trị có trong các mục trên bên phải,
nhưng các mục bên trái được coi trọng hơn.
http://agilemanifesto.org/
11 12
11 12
3. Agile: 12 nguyên lý 3. Agile: 12 nguyên lý
1. Ưu tiên cao nhất của là làm hài lòng khách hàng thông qua việc 7. Phần mềm làm việc là thước đo chính của sự tiến bộ.
phân phối sớm và liên tục các phần mềm có giá trị. 8. Các quy trình Agile thúc đẩy sự phát triển bền vững. Các
2. Hoan nghênh các yêu cầu thay đổi, ngay cả trong giai đoạn muộn nhà tài trợ, nhà phát triển và người dùng sẽ có thể duy trì
của việc phát triển. Các quy trình nhanh khai thác sự thay đổi vì lợi
thế cạnh tranh của khách hàng. một tốc độ phát triển liên tục.
3. Cung cấp sản phẩm phần mềm thường xuyên, từ vài tuần đến vài 9. Sự quan tâm liên tục, sự xuất sắc về kỹ thuật và thiết kế
tháng, ưu tiên khoảng thời gian ngắn hơn. tốt giúp tăng cường sự nhanh nhẹn.
4. Người kinh doanh và nhà phát triển phải làm việc cùng nhau hàng 10. Sự đơn giản - nghệ thuật tối đa hóa khối lượng công việc
ngày trong suốt dự án. chưa hoàn thành - là điều cần thiết.
5. Xây dựng các dự án xung quanh những cá nhân có động lực. Cung 11. Các kiến trúc, yêu cầu và thiết kế tốt nhất xuất hiện từ các
cấp cho họ môi trường và sự hỗ trợ mà họ cần, và tin tưởng để họ nhóm dự án.
hoàn thành công việc.
6. Phương pháp hiệu quả nhất để truyền tải thông tin đến và trong 12. Theo định kỳ, các nhóm phản ánh về cách trở nên hiệu
nhóm phát triển là trò chuyện trực tiếp. quả hơn, sau đó điều chỉnh hoạt động của mình sao cho
cho phù hợp.
13 14
13 14
15 16
15 16
Tính phù hợp của các phương pháp
Một số phương pháp Agile phổ biến
Agile
• Khó xác định về loại dự án phần mềm nào phù hợp • Scrum
nhất cho cách tiếp cận Agile.
• Lean Development
• Nhiều tổ chức lớn gặp khó khăn trong việc chuyển từ
phương pháp truyền thống sang một phương pháp • Extreme programming (XP)
Agile (linh hoạt).
• Adaptive Software Development (ASD)
• Khi Agile có rủi ro:
– Phát triển quy mô lớn (> 20 nhà phát triển) • Agile Modeling
– Phát triển phân tán (các nhóm không nằm chung) • Crystal Methods
– Các công ty kiểm soát kỳ quặc
– Khách hàng hoặc người liên hệ không đáng tin cậy
• Dynamic System Development Methodology
– Bắt buộc một quy trình nhanh trong nhóm phát triển
(DSDM)
– Nhà phát triển thiếu kinh nghiệm • Feature Driven Development
17 18
17 18
‘Scrum’ (liên quan đến “scrimmage”) là thuật ngữ chỉ một nhóm người chơi tụ
tập với nhau để hoàn thành công việc trong môn bóng bầu dục. Trong phát "Cách tiếp cận quản lý dự Peter DeGrace and Leslie Hulet Stahl.
triển phần mềm, công việc là đưa ra một bản phát hành. án thích ứng tốt nhất cho Wicked Problems, Righteous Solutions.
các dự án phần mềm xấu" 1990. Yourdon Press
Comes from Japan and based from industrial process control theory:
Nhiều vấn đề hệ thống mà các nhà phát triển phần mềm gặp phải (các đặc điểm xấu):
Takeuchi, Hirotaka and Nonaka, Ikujiro: The New New Product Development
1. Không có công thức chính xác cho một vấn đề xấu.
Game, Harvard Business Review, 1986. 2. Những vấn đề xấu không có quy luật dừng.
“Stop running the relayy race and take up rugby” 3. Giải pháp cho các vấn đề xấu không phải đúng-hay-sai mà là tốt-hay-xấu
4. Không có thử nghiệm tức thời và cuối cùng nào về giải pháp cho một vấn đề xấu.
"Dừng chạy cuộc đua tiếp sức và chơi bóng bầu dục" 5. Mọi giải pháp được thực hiện cho một vấn đề xấu đều có hậu quả.
6. Các vấn đề xấu không có một tập hợp các giải pháp tiềm năng tốt.
7. Mọi vấn đề xấu xa về cơ bản là duy nhất.
8. Mọi vấn đề xấu có thể được coi là một nguyên nhân của một vấn đề khác.
Speed Up 9. Nguyên nhân của một vấn đề xấu có thể được giải thích theo nhiều cách.
development 10. Người lập kế hoạch (thiết kế) không có quyền sai.
19 20
19 20
J Paul Gibson: Agile Methods J Paul Gibson: Agile Methods
Burndown chart. Biểu đồ này, được cập nhật mỗi ngày, cho thấy công việc còn lại trong
sprint. Biểu đồ burndown được sử dụng để theo dõi tiến trình spint và quyết định khi nào các
Scrum Phase mục phải được loại bỏ khỏi sprint backlog và hoãn lại sprint tiếp theo.
Product backlog. Product backlog là danh sách đầy đủ các yêu cầu — bao gồm lỗi, yêu cầu
nâng cao, cải tiến khả năng sử dụng và hiệu suất — hiện không có trong bản phát hành sản
phẩm.
Sprint backlog. Sprint backlog là danh sách các hạng mục tồn đọng được chỉ định cho một
sprint, nhưng chưa hoàn thành. Trong thực tế phổ biến, không có hạng mục tồn đọng nào
của sprint phải mất hơn hai ngày để hoàn thành. Sprint backlog giúp nhóm dự đoán mức độ
nỗ lực cần thiết để hoàn thành một sprint.
21 22
21 22
Trong thời gian một spint, nhóm có một cuộc họp hàng ngày. Mỗi thành viên trong nhóm mô tả công
việc sẽ được thực hiện trong ngày hôm đó, tiến độ từ ngày hôm trước. Để giữ cho các cuộc họp ngắn
gọn, cuộc họp phải được tiến hành với tất cả mọi người (họp đứng trong cùng một phòng).
Khi đủ các backlog đã được thực hiện để người dùng cuối tin rằng bản phát hành đáng được đưa vào
The backlog is key: it is populated during the planning phase of a release sản xuất, kết thúc quá trình phát triển. Sau đó, nhóm thực hiện kiểm tra tích hợp, đào tạo và tài liệu
and defines the scope of the release khi cần thiết để phát hành sản phẩm.
Việc tồn đọng là khóa: nó được điền vào trong pha lập kế hoạch của lần
phát hành sản phẩm và xác định phạm vi của bản phát hành
23 24
23 24
J Paul Gibson: Agile Methods J Paul Gibson: Agile Methods
Cuộc họp đứng hàng ngày (còn được gọi là "cuộc họp hàng ngày", "cuộc họp
hàng ngày", "điểm danh buổi sáng", v.v.), để giữ cuộc họp ngắn, được mô tả
như sau: Mục đích cho daily stand-up là Good Start, Improvement, Focus,
Team, Status (GIFTS)
• Cả nhóm họp hàng ngày để cập nhật tình trạng nhanh chóng.
Có một số mục tiêu cho cuộc họp đứng hàng ngày:
• Tuy nhiên việc này không thực sự đảm bảo giúp phân biệt một phương án
• Để giúp khởi đầu ngày mới tốt đẹp
hiệu quả với việc lãng phí thời gian.
• Để hỗ trợ cải thiện
• Đối với những người có kinh nghiệm, với việc đứng lên theo bản năng, khi • Để củng cố sự tập trung
gặp sự cố họ sẽ biết phải điều chỉnh những gì để khắc phục tình hình. • Để củng cố tinh thần đồng đội
• Để thông báo những gì đang xảy ra
• Đối với những người mới bắt đầu, khi mọi thứ gặp trục trặc, ít có khả năng
họ sẽ tìm ra giải pháp (những gì phải làm) và có nhiều khả năng là từ bỏ The purpose is not to meet... it is to improve.
hoàn việc nếu không được hỗ trợ. -- Joe Ely, "More on Daily Start-Up Meetings"
25 26
Ai tham dự?
Mọi người và các đại diện từ các lĩnh vực khác nhau muốn biết và/hoặc đóng góp Ở đâu và khi nào và như thế nào?
vào dự án. Trạng thái giao tiếp trong nhiều cuộc họp cần nhiều sự nỗ lực.
• Gặp gỡ nơi công việc xảy ra
Do đó. Thay thế một số hoặc tất cả các cuộc họp và báo cáo bằng cuộc họp hàng • Cùng một nơi, cùng một lúc
ngày. Bất kỳ ai trực tiếp tham gia hoặc muốn biết về hoạt động hàng ngày của dự • Vào đầu ngày? … hay không?
án đều nên tham gia cuộc họp đứng hàng ngày. • Đứng gần nhau
• Chuẩn bị trước
Nhưng. Những người không liên quan trực tiếp có thể làm gián đoạn cuộc họp nếu • Mười lăm phút hoặc ít hơn… Thực hiện giải quyết vấn đề ngoại tuyến
họ không rõ về hành vi được mong đợi. Điều này có thể được giải quyết bằng cách • Khuyến khích quyền tự chủ (xoay người điều hành?)
thông báo trước cho những người tham gia và quan sát viên mới về các chỉ tiêu dự
kiến.
27 28
27 28
J Paul Gibson: Agile Methods
October 2011
Scrum
Pros Cons
Lean development
Scrum sử dụng Sprint nhỏ để chia hệ thống Scrum chỉ hoạt động khi ban quản lý “tin (phát triển tinh gọn)
thành các thành phần nhỏ hơn một cách tưởng các nhà phát triển sử dụng phán
hiệu quả và phân chia cho các nhóm. đoán của riêng mình” để hoàn thành nhiệm
vụ. Các thuộc tính chính của scrum là khả J Paul Gibson: Agile Methods
năng kiểm soát nhẹ nhàng và tinh tế. Vì
October 2011
vậy, nếu đội ngũ phát triển còn trẻ và chưa
trưởng thành, Scrum trở rất rủi ro.
Một hoạt động chính trong scrum là “cuộc Scrum được thiết kế lý tưởng cho công ty
họp scrum hàng ngày”, giúp các thành viên có “các phương pháp nhanh hiện có”. Do
trong nhóm đưa ra bằng chứng về việc đó, một công ty phải có một số kiến thức
hoàn thành nhiệm vụ và cho phép cải tiến làm việc về các phương pháp nhanh trước
liên tục, do đó cho phép áp dụng kỹ thuật từ khi sử dụng Scrum.
dưới lên một cách nhanh chóng
29 30
29 30
October 2011
31 32
31 32
J Paul Gibson: Agile Methods J Paul Gibson: Agile Methods
Lean Software Development October 2011 October 2011
Lean software development: focus on testing
1. Eliminate waste. Bất kỳ hoạt động nào không “tự trả giá” trong nỗ lực giảm thiểu ở những
nơi khác trong hệ thống và cần được loại bỏ.
2. Amplify learning. Các nhà phát triển luôn cần học các phương pháp mới để tạo ra một hệ
thống mạnh mẽ nhất.
3. Decide as late as possible. Lợi ích của việc đưa ra quyết định vào phút cuối là tránh đưa ra
quyết định sai lầm sớm và sau đó phải sửa chữa nó sau này.
4. Deliver as fast as possible. Nguyên tắc này là nếu bạn cung cấp rất nhanh, nó sẽ làm giảm
cơ hội thay đổi yêu cầu. Điều này có thể phải trả giá rất lớn nếu sự thay đổi đến muộn
trong quá trình phát triển.
5. Empower the team. Để mọi người chịu trách nhiệm, có động lực và gắn bó với nhau như
một đội, họ cần phải chịu trách nhiệm về kết quả và được ủy quyền để biến nó thành
hiện thực.
6. Build integrity in: Điều quan trọng là hệ thống duy trì tính toàn vẹn trong suốt chu trình
phát triển. Điều đó có nghĩa là phải kiểm tra tích hợp, kiểm thử đơn vị và kiểm thử chung,
đặc biệt là từ khách hàng.
7. See the whole. Đừng chia nhỏ hệ thống thành nhiều phần mà hãy giữ nguyên toàn bộ hệ
thống.
33 34
33 34
Pros Cons
Tư duy toàn bộ hệ thống, mặc dù khó đối Với hệ thống lớn hoặc hệ thống phức tạp,
với hệ thống phức tạp, giúp đảm bảo tính cách duy nhất để các nhà phát triển hình
nhất quán và toàn vẹn của hệ thống. Giảm dung cấu trúc của nó là thông qua việc
thời gian tích hợp kể từ khi được phát triển phân vùng hệ thống. Nhưng LSD đề xuất
dưới dạng đơn vị số ít. điều ngược lại, điều này có thể khó thực
hiện.
Nhóm làm việc thiết kế các quy trình của Quyết định càng muộn càng tốt có thể ảnh
riêng mình, đưa ra các cam kết riêng, thu hưởng xấu đến lịch trình. Điều này có thể
thập thông tin cần thiết để đạt được mục làm tổn hại đến sự phát triển song song và
tiêu và tự lập chính sách để đạt được các làm tăng thời gian thực hiện.
mốc quan trọng của mình.
35 36
35 36
J Paul Gibson: Agile Methods Extreme Programming J Paul Gibson: Agile Methods
Extreme Programming (XP) From: Embracing Change with Extreme Programming, Beck, 1999
37 38
37 38
Extreme Programming (XP) J Paul Gibson: Agile Methods Extreme Programming (XP) J Paul Gibson: Agile Methods
Embracing Change with Extreme October 2011 Embracing Change with Extreme October 2011
Làm thế nào để xác định thời điểm nên lập trình?
Không thể lập trình cho đến khi biết mình đang lập trình gì.
Khách hàng chọn bản phát hành tiếp theo bằng cách chọn các tính năng có giá trị nhất
(được gọi là các câu chuyện trong XP) trong số tất cả các câu chuyện có thể có, được xác
XP coi khoảng thời gian trước khi hệ thống đi vào sản xuất lần đầu định bởi chi phí của các câu chuyện và tốc độ của nhóm trong việc cài đặt các câu chuyện.
tiên là một bất thường nguy hiểm trong vòng đời của dự án và cần
được khắc phục càng nhanh càng tốt. Tuy nhiên, mọi dự án đều phải Khách hàng chọn câu chuyện của lần lặp lại tiếp theo bằng cách chọn những câu chuyện có
giá trị nhất còn lại trong bản phát hành, được thông báo lại bằng chi phí của các câu chuyện
bắt đầu từ đâu đó.
và tốc độ của nhóm.
Kết hợp phân tích tổng thể dưới dạng các câu chuyện là số lượng của Các lập trình viên biến các câu chuyện thành các nhiệm vụ chi tiết nhỏ hơn mà họ tự nhận
trách nhiệm.
một trường hợp sử dụng. Mỗi câu chuyện phải theo định hướng
kinh doanh, có thể kiểm tra và ước tính được. Sau đó, lập trình viên biến một nhiệm vụ thành một tập hợp các trường hợp kiểm thử để
chứng minh rằng nhiệm vụ đã hoàn thành.
Một tháng là một khoảng thời gian dài để đưa ra những câu chuyện
Làm việc với một đối tác, lập trình viên làm cho các trường hợp kiểm thử chạy, đồng thời
cho một dự án. cải tiến thiết kế để duy trì thiết kế đơn giản nhất có thể cho toàn bộ hệ thống.
39 40
39 40
J Paul Gibson: Agile Methods J Paul Gibson: Agile Methods
XP Practices I (Usually associated with Agile) XP Practices I (Usually associated with Agile)
Planning game. Khách hàng quyết định phạm vi và thời gian phát hành dựa trên các ước Tests. Các lập trình viên viết các bài test đơn vị. Các tests này được thu thập và tất cả chúng
tính do lập trình viên cung cấp. Các lập trình viên chỉ triển khai các chức năng được yêu cầu phải chạy chính xác. Khách hàng viết các test chức năng cho các câu chuyện trong một lần
bởi các câu chuyện trong lần lặp này. lặp lại. Tất cả các thử nghiệm này cũng nên chạy, mặc dù trên thực tế, đôi khi phải đưa ra
Small releases. Hệ thống được đưa vào sản xuất trong vài tháng, trước khi giải quyết toàn quyết định kinh doanh so sánh chi phí cho một lỗi đã biết và chi phí của sự chậm trễ.
bộ vấn đề. Các bản phát hành mới được thực hiện thường xuyên — bất cứ nơi nào từ hàng
ngày đến hàng tháng. Refactoring. Thiết kế của hệ thống được phát triển thông qua các biến đổi của thiết kế hiện
Metaphor. Hình dạng của hệ thống được xác định bằng một phép ẩn dụ hoặc một tập hợp có để giữ cho tất cả các thử nghiệm hoạt động.
các phép ẩn dụ được chia sẻ giữa khách hàng và lập trình viên.
Simple design. Tại mọi thời điểm, thiết kế chạy tất cả các tests, truyền đạt mọi thứ mà lập Continuous integration. Tích hợp mã mới hệ thống hiện tại sau không quá vài giờ. Khi tích
trình viên muốn giao tiếp, không chứa mã trùng lặp và có ít mã nhất các lớp và các phương hợp, hệ thống được xây dựng từ đầu và tất cả các bài kiểm tra phải vượt qua hoặc các thay
thức. Quy tắc này có thể được tóm tắt là, "Nói mọi thứ một lần và chỉ một lần. đổi bị loại bỏ.
41 42
41 42
J Paul Gibson: Agile Methods XP – Daily Communication is Key J Paul Gibson: Agile Methods
Pair programming. Tất cả mã được viết bởi hai người tại một màn hình / bàn phím / chuột.
Collective ownership. Mọi lập trình viên đều cải thiện bất kỳ mã nào ở bất kỳ đâu trong hệ
thống vào bất kỳ lúc nào nếu họ thấy có cơ hội.
On-site customer. Một khách hàng ngồi với nhóm toàn thời gian.
40-hour weeks. Không ai có thể làm thêm tuần thứ hai liên tiếp. Ngay cả thời gian làm
thêm giờ được sử dụng quá thường xuyên cũng là dấu hiệu của những vấn đề lớn cần được
giải quyết.
Open workspace. Nhóm làm việc trong một căn phòng lớn với các buồng nhỏ. Lập trình
viên theo cặp làm việc trên máy tính được thiết lập tại trung tâm.
Just rules. Khi là thành viên của nhóm Extreme, bạn đăng ký để tuân theo các quy tắc.
Nhưng chúng chỉ là các quy tắc. Nhóm có thể thay đổi các quy tắc bất kỳ lúc nào miễn là họ
đồng ý về cách họ sẽ đánh giá tác động của thay đổi.
43 44
43 44
Extreme Programming (XP) J Paul Gibson: Agile Methods J Paul Gibson: Agile Methods
45 46
47
47
Chương 4: Quản lý dự án phần mềm
1 2
1 2
3 4
3 4
Giá thành + Thời gian+ Chất lượng
Quản lý dự án (Cost + Schedule + Quality)
• Quản lý dự án là áp dụng kiến thức, kỹ • Quản lý dự án là để đưa ra một sản phẩm cuối cùng:
năng, công cụ và kỹ thuật vào các hoạt – trong phạm vi ngân sách hay nguồn tài chính cho phép
động của dự án nhằm đáp ứng yêu cầu – đúng hạn
của dự án. – với nguồn lực cho phép
– Đạt mục tiêu dự án – phù hợp với đặc tả
– Đạt hoặc vượt các yêu cầu hay kỳ vọng của – chất lượng đủ để phục vụ các nhu cầu kinh doanh và đáp
những người có quyền lợi và nghĩa vụ liên ứng các tiêu chuẩn chuyên môn và kỳ vọng của công tác
quan (stakeholders) quản lý
– Cân bằng giữa các yếu tố: thời gian, chi phí,
chất lượng sản phẩm
5 6
5 6
7 8
1. Giải quyết bài toán quản lý dự án
QUẢN LÝ DỰ ÁN PHẦN MỀM ĐẦU VÀO TIẾN TRÌNH (Đặc Tính thuần thục của quá trình, Phương pháp luận, Đánh ĐẦU RA TIẾN TRÌNH (Ví dụ
trưng) giá và tối ưu, Ràng buộc, khuôn mẫu, cơ sở hạ tầng, Nền chọn lọc)
tảng văn hoá và chính sách
1. Giải quyết bài toán quản lý dự án Đầu ra của các tiến trình Quy hoạch tổng thể dự án (kế
1 2 3 N
khác hoạch lệ thuộc)
2. Sàng lọc dự án
Yêu cầu thay đổi của khách
3. Nhiệm vụ của người quản lý dự án Đầu vào vật chất Chuyển đổi đầu vào thành đầu ra hàng
4. Các pha quản lý dự án Tương tác các bên liên Thời gian & Giá
Chi phí sửa đổi và lịch trình cơ
quan bản
Kỹ năng, kỹ thuật quản lý dự án thành
Chất lượng đầu vào của quá trình, Do kết quả của một quá trình quản lý dự án thường là đầu Quản lý dự án sử dụng rộng rãi các quy trình
Kiến thức, Năng lực,Kinh nghiệm, Sự vào của một quá trình khác, sai sót trong một hoặc nhiều để sản xuất "sản phẩm" (xem mẫu ở trên).
rõ ràng, Khả năng, Truyền thông, quá trình sẽ kéo theo sai sót trên toàn chuỗi toàn bộ quá Một số quy trình khá phức tạp và có nguy cơ
9 Hợp tác, Phối hợp trình lỗi cao. 10
9 10
Do - Check - Act“ cân bằng rủi ro của khách hàng Bộ phận trực tuyến
Các dự án khác
Quản lý
dự án
Đối tác thương mại
Các nhà cung cấp
– Người quản lý dự án giỏi – Tạo khả năng kinh CNTT Các nhà thầu
11 12
PM = Tâm điểm giao tiếp Bài tập
• Không phải là công
việc bán thời gian • Phân biệt vai trò, nhiệm vụ của người
• Phải biết chu kỳ
sống của dự án, các quản lý (managers) và người lãnh đạo
tiến trình của dự án
và vai trò của các
tiến trình này trong
(leaders)
việc thực hiện các
công việc ở các pha • Các kỹ năng người quản lý dự án cần có
khác nhau trong chu
kỳ sống của dự án
• Nhận biết được sự
phức tạp của môi
trường thực hiện
dự án
• Phải được chuẩn
bị để đối phó với
các mối xung đột Hầu hết các dự án thất bại vì thiếu quản lý dự án
khác nhau và quản lý con người, không phải vì lý do kỹ
thuật
13 14
13 14
Nhà quản lý vs. Nhà lãnh đạo Kỹ năng quản lý cho Quản lý dự án
Nhìn chung, nhà lãnh đạo có nhiệm vụ chỉ ra mục tiêu và liên kết mọi người • Lãnh đạo (nhất thiết khác với ‘quản lý’!) • Đàm phán với người khác để đạt được
để đạt được mục tiêu. – Thiết lập đường hướng (tầm nhìn và chiến thoả thuận
lược) – Phạm vi, chi phí, thời hạn, hợp đồng,
Lãnh đạo cố gắng để tìm ra những điểm chung.
– Săp xếp người (tầm nhìn giao tiếp và chiến nhiệm vụ, nguồn lực v..v.
Lãnh đạo cần phải có được hình ảnh rõ ràng về tương lai.
lược bằng lời nói và hành động)
• Giải quyết vấn đề
Lãnh đạo tập trung vào các phản ánh liên quan đến kỳ vọng. – Thúc đẩy và tạo cảm hứng
– Định nghĩa vấn đề (kỹ thuật, quản lý, giao
Một nhà lãnh đạo tốt luôn luôn tập trung vào việc tương lai hướng đến đồng – Lãnh đạo có thể được thể hiện ở tất cả các tiếp)
nhất nhóm của mình. cấp – Ra quyết định (xác định các giải pháp khả
• Lãnh đạo • Quản lý • Giao tiếp rõ rang, không nhập nhằng thi và thực hiện lựa chọn với yếu tố thời
– Viết và nói, nghe và nói gian)
– Tập trung vào tương lai – Tập trung vào hiện tại
– Tích hợp – Đa dạng – Nội bộ và bên ngoài • Ảnh hưởng đến tổ chức
– Hi vọng – Trông coi – Trang trọng và thân mật – Sự hiểu biết về các động thái chính thức và
– theo chiều dọc (cấp trên, cấp dưới) và không chính thức của tổ chức (sức mạnh &
– Tầm nhìn – Hỗ trợ
chiều ngang (cấp ngang hàng) (Vertical and chính trị - theo nghĩa tích cực)
– Sáng tạo – Giải quyết vấn đề
horizontal)
– Cảm hứng – Phân tích
– Sáng kiến – Cấu trúc, sắp xếp
– Cơ hội – Thực tế
15 16
15 16
4. Các pha quản lý dự án 4. Các pha quản lý dự án
Kết thúc dự án
Kết thúc dự án
Lập kế hoạch quản lý
Khái niệm, mục tiêu, cách tiếp cận và cách biện minh rằng
một dự án đã được định nghĩa đúng, được đồng ý, và được
lý
truyền đạt đúng.
17 18
17 18
Lập kế hoạch
Kết thúc dự
Kết thúc dự án
quản lý
án
lý
19 20
4. Các pha quản lý dự án 4. Các pha quản lý dự án
Định nghĩa và thiết kế dự án Phân bổ lợi Định nghĩa và thiết kế dự án Phân bổ lợi
ích ích
Pha / Giai đoạn Phase / Stage
Lập kế hoạch quản
Kết thúc dự án
Lợi ích theo kế hoạch sẽ được đánh giá và theo dõi
lý
lý
trong suốt dự án
• Chuyển giao công việc, quy trình, kết quả cần đạt cho Theo dõi và quản lý lợi ích
các bộ phận chuyên ngành khác. Quản lý chất lượng
• Nộp hồ sơ, tài liệu đúng hạn, đầy đủ chi tiết về hoạt động Quản lý rủi ro
cũng như quá trình kiểm tra giám sát dự án, đây là cơ sở để Quản lý vấn đề
bảo trì và phát triển dự án trong tương lại. Kiểm soát thay đổi phạm vi
• Giải phóng nhân lực, thiết bị và phương tiện Quản lý cấu hình
Kiểm soát tài liệu
Xây dựng đội ngũ, sự hợp tác và thông tin liên lạc nội bộ
Quản lý thay đổi tổ chức
• Đánh giá mức độ thành công của dự án Thông tin liên lạc bên ngoài
• Xác định các mục cần cải tiến Chi tiêu & Kế toán
• Rút ra bài học kinh nghiệm Quản lý nhà thầu phụ
21 22
21 22
Hoạch định
Xây dựng cấu trúc
công việc
Thực hiện ước
lượng
Lên lịch
biểu
Lên ngân
sách
QUẢN LÝ DỰ ÁN PHẦN MỀM
dự án
Kết thúc
Xác định sửa Các yếu tổ quyết định thành công của dự án
Kết thúc dự đổi cần thiết
dự án án
Thực hiện sửa
đổi
24
23 24
Mở đầu 1. Quản lý rủi ro
• Quản lý dự án bao gồm kỹ năng quản lý chung • Rủi ro là gì ? Có thể quản lý được
(general management) và kỹ năng lãnh đạo – Những sự kiện có thể làm phá vỡ một dự án rủi ro
(leadership), có tính đến các yếu tố cá nhân. – Những điều không chắc chắn, những khoản nợ
hay những điểm yếu có thể làm cho dự án
– Phương pháp kỹ thuật lập kế hoạch, lập dự toán, kiểm không đi theo đúng kế hoạch đã định
soát công việc để đạt được một kết quả mong muốn đúng
hạn, trong phạm vi ngân sách và phù hợp với đặc tả kỹ • Tại sao cần quản lý rủi ro ? Không thể loại trừ
hết rủi ro
thuật – Tất cả các dự án đều phụ thuộc vào rủi ro
– Quy trình độc lập, gồm các hoạt động phối hợp, kiểm soát – Tiến trình sẽ không đúng theo kế hoạch trong
được, có thời hạn rõ ràng, được thực hiện nhằm đạt được một số giai đoạn của dự án
Giảm thiểu ảnh hưởng của các
một mục tiêu phù hợp với yêu cầu cụ thể về chi phí, thời • Khi nào cần quản lý rủi ro ? sự cố không biết trước cho
gian và nguồn lực. – Khi lập kế hoạch quản lý dự án
– Lập kế hoạch, tổ chức, chỉ đạo và kiểm soát các nguồn tài – Khi dự án sẵn sàng thực thi Nâng cao xác suất thực hiện
nguyên của công ty cho một mục tiêu tương đối ngắn hạn – Khi khôi phục một dự án đã bỏ dở thành công dự án
nhằm tiến tới hoàn thành mục đích và các mục tiêu cụ thể. – Khi rà xét dự án Tạo ra ý thức kiểm soát
Có được các giải pháp hiệu quả
– Khi có sự sai lệch lớn so với kế hoạch xảy ra và kịp thời
25 26
25 26
bước 1
lập thành văn
bản các rủi ro cụ
thể
• Hành động ngăn ngừa có thể gồm:
Phân tích ảnh
hưởng rủi ro
– Giảm thiểu rủi ro: đào tạo huấn luyện bổ sung cho các
bước 2 LTV
– Loại bỏ rủi ro: hợp đồng thuê khoán chuyên môn với
Xây dựng và triển
khai kế hoạch quản
bước 3
các LTV giàu kinh nghiệm
lý rủi ro
giám sát và cập nhật
các tài liệu rủi ro
bước 4
27 28
27 28
2. Quản lý chất lượng Quy trình quản lý chất lượng
• Thích hợp với mục đích
1.Lập kế hoạch 2.Thiết lập khung đảm 3. Tiến hành các hoạt 4. Triển khai các họat
• Giảm tối đa sự lãng phí bằng cách thực hiện chất lượng bảo chất lượng động kiểm soát chất
lượng
động hiệu chỉnh
Thoả mãn Đạt chất lượng phải đựợc lên kế hoạch - không tuỳ tiện
nhu cầu Đạt chất lượng xuất phát từ bảo đảm chất lượng và kiểm soát chất lượng
Phương pháp Thực hiện Đạt chất lượng phụ thuộc vào sự hỗ trợ quản lý
29 30
29 30
31 32
31 32
Trao đổi tình trạng dự án Lập báo cáo – WBS
Dự án
• Tập trung vào các thành tựu của các mục tiêu Mức WBS
kinh doanh, chứ không phải vào quy trình dự 1 Giai đoạn
án
• Đưa ra thông tin chính xác tin cậy dựa trên kế 2 Phạm vi
hoạch dự án
3 Hoạt động
• Nêu bật những điểm ngoại lệ so với kế hoạch Quan sát bên ngoài
33 34
Create WBS(3)
Lập báo cáo – WBS
Mức độ phân chia công việc phụ thuộc vào mục tiêu
• Có nhiều cách phân chia công việc: theo sản
phẩm cần bàn giao, theo quy trình, theo mốc 0
Hệ thống m ới
・Bạn có thể hiểu
được các yếu tố của
thời gian, v.v. WBS?
2 3
・Bạn thường xuyên
1 Hỗ trợ
<Chart Form WBS> <Tabular Form WBS> Phát triển Chuyển đổi kiểm tra tiến độ thế
phát triển
nào?
・Có sự phân chia rõ
1. Quản lý dự án
1.1 lập kế hoạch 2.1 2.2 ràng về vai trò
1.1.1 Đưa ra phạm vi
1.1.2 Danh sách hoạt động
Hệ thống con 1 Hệ thống con 2 không?
1.1.3 Lập kế hoạch về tài nguyên ・Gói công việc cần
1.1.4 Ước lượng thời gian
1.1.5 Ước lượng chi phí
dự tính chính xác
1.1.6 Phân tích rủi ro 2.2.1 2.2.2 2.2.3 2.2.4 hơn không?
1.1.7 Lập lịch Test Kiểm
Thiết kế Lập trình
1.1.8 Kế hoạch quản lý dự án Specification thử
1.2 Thực hiện
2. Thiết kế
35 36
Quy trình lập báo cáo và kiểm soát dự
Lập kế hoạch, theo dõi, báo cáo án
kế hoạch theo dõi và rà xét rà xét các
công việc các dữ kiện KQBG và
Các mục tiêu kinh Báo cáo các chi tiết mục tiêu nỗ lực
báo cáo và phân tích tiến trình Tái định hướng dự án
37 38
37 38
39 40
4. Quản lý thay đổi và vấn đề phát
Kiểm soát nguồn thay đổi tiềm năng
sinh
Các yêu cầu mới và
• Thay đổi là gì ? Các đánh giá khác
đưa ra những khám
Luật pháp
phá Kiểm tra
– Bất cứ hoạt động nào thay đổi phạm vi, kết quả bàn giao, kiến trúc cơ Xuất hiện nhà cung
nhau của người sử
dụng
• Đơn vị
bản, chi phí, lịch trình của một dự án cấp phần mềm mới
• Khối
• Tích hợp
• Tại sao cần phải quản lý thay đổi và vấn đề phát sinh ? • Chấp thuận
41 42
43 44
43 44
Kỹ thuật và quy trình quản lý cấu hình Kiểm soát phiên bản
• Cung cấp một kho chứa an toàn đối với các kết
quả bàn giao
• Cho phép việc kiểm soát và tiết lộ có nguyên tắc
các kết quả bàn giao thông qua vòng đời của nó, 0.1 0.2 0.n 1.1 1.2 1.n
với đầy đủ các dấu tích lịch sử, đảm bảo phiên
bản đúng và cập nhật, đã được kiểm tra và phát
hành
• Kiểm soát thay đổi cuả các kết quả bàn giao, đảm
bảo các kết quả này được lưu theo đúng thứ tự Được chấp nhận
• Cung cấp việc lập báo cáo về hiện trạng của các
kết quả bàn giao và những thay đổi của chúng 1.0 2.0
45 46
45 46
Bổ sung khoản
mục mới (1) Khái niệm
Nguyên lý và tiến trình quản lý dự án
Kỹ năng, kỹ thuật quản lý dự án
Các báo cáo Các yếu tổ quyết định thành công của dự án
Kiểm soát
(6)
47 48
47 48
Bài tập: Tỉ lệ thành công của dự án Dự án nào là thành công ?
phần mềm là bao nhiêu ? Dự án nào tốt hơn ?
– 90% ? • Hệ thống A
– 70% ? – Bàn giao hệ thống đúng hạn
– 50% ? – Hoàn thành dự án với kinh phí được cấp
– 30% ? – Hầu như không dùng đến sau khi nghiệm thu
• Tại sao các dự án lại thất bại ?
• Điều gì khiến một dự án thành công ? • Hệ thống B
– Trễ hạn
– Cần thêm vốn đầu tư để hoàn thành dự án
– Đã được sử dụng hơn 10 năm
49 50
49 50
thiếu kỹ năng
chuyên môn: 15%
51 52
Nguyên nhân thất bại của Project Để tránh thất bại
• Cán bộ không hiểu các yêu cầu của khách hàng
• Phạm vi của dự án không rõ ràng Cải tổ việc quản
lý dự án
• Quản lý thay đổi yếu kém Nghiên cứu khả
• Công nghệ được lựa chọn bị thay đổi thi
• Các nhà quản lý lảng tránh các kinh nghiệm và các bài 0 10 20 30 40 50 60 70 80 90 %
53 54
53 54
55 56
55 56
10 quy tắc vàng Nguyên tắc 5W2H (Boehm)
• Quản lý dự án thành công chính là vấn đề về con người
– nhưng không được quên quản trị
• Tại sao hệ thống đang được phát triển (Why)
• Khám phá các nguồn hỗ trợ và chống đỡ • Những cái gì sẽ được hoàn thành (What)
• Sự hiện diện có thể là dối trá - xem xét lịch trình ẩn đằng sau
• Phải hiểu rằng những con người khác nhau thì có những cách nhìn khác nhau • Khi nào (When)?
•
– hãy đặt mình vào địa vị của họ
Thiết lập kế hoạch của bạn sao cho có thể chỉnh sửa dễ dàng
• Ai sẽ chịu trách nhiệm về 1 chức năng(Who)
• Đối mặt với từng sự kiện như là nó đã có từ trước • Nó sẽ được đặt ở đâu trong tổ chức (Where)
• Sử dụng quản trị để hỗ trợ cho các mục đích của dự án
• Thời gian mục tiêu đối với từng nhiệm vụ không được giống như đã nêu trong kế • Công việc sẽ được hoàn thành về mặt Kĩ thuật
•
hoạch
Đọc lại phạm vi và các mục tiêu của dự án mỗi tuần 1 lần
và được quản trị như thế nào (How)
• Không ngạc nhiên! • Lượng tài nguyên cần thiết (How)?
57 58
57 58
Kết luận
• Quản lý dự án phần mềm là hoạt động bao
trùm các hoạt động sản xuất phần mềm.
• Nhân tố chính là Con người. Các kỹ thuật khác
nhau về giao tiếp và phối hợp được dùng để
hỗ trợ công tác nhân sự.
• Quản lý dự án nhấn mạnh công tác đánh giá,
lượng hoá, kế hoạch và kiểm soát rủi ro.
59
59