6. Công việcxâydựngphầnmềmđượcquẳngcho
ĐỘI SẢN XUẤT
Bọnnàyngồilạivớinhauđể
LẬP KẾ HOẠCH
Thángtớilàmgì
Đểcóđược(vài) chứcnăngnàođóhoànchỉnh
để“show hàng” vàocuốitháng
17. eXtremeProgramming
Đọcthêm: http://www.hanoiscrum.net/hnscrum/learning/167
Nguyênlý
•Phảnhồinhanh(Rapid Feedback)
•Giả định Đơn giản(Assume Simplicity)
•Thay đổi tăngtrưởng(Incremental Change)
•Sống chung với Thay đổi(Embracing Change)
•Công việc chất lượng cao(Quality Work)
Giátrị
•Giaotiếp(Communication)
•Tính đơn giản (Simplicity)
•Phảnhồi(Feedback)
•Tôntrọng(Respect)
•Can đảm (Courage)
Phát triển những phần mềm với chất lượng cao nhất, với chi phí thấp nhất, ít lỗi nhất, siêu năng suất và tối đa hóa lợi nhuận đầu tư
19. Lean Software Development
SửdụngTưduyTinhgọn(Lean Thinking) cholĩnhvựcpháttriểnphầnmềm
7 Nguyênlý
1.Loạibỏlãngphí
2.Khuếch trương việc học
3.Quyết định càng muộn càng tốt
4.Chuyểngiaocàngnhanhcàngtốt
5.Traoquyềnchonhóm
6.Tạoratínhtoànvẹntựthân
7.Thấytoàncảnh
Đọcthêm: http://www.hanoiscrum.net/hnscrum/learning/168-agilemethod3-lean-software-development
22 Công cụ
1.NhìnraLãngphí
2.ÁnhxạDòngGiátrị
3.Phản hồi
4.Phân đoạn
5.Đồng bộ hóa
6.Phát triển theo lô
7.Tư duy Lựa chọn
8.Trách nhiệm Phút cuối
9.Ra quyết định
10.Hệ thống kéo
11.Lý thuyết Hàng đợi
12.Giá của Trì hoãn
13.Tự-Xác-định
14.Động viên
15.Lãnh đạo
16.Chuyên môn
17.ToànvẹnNhậnthức
18.ToànvẹnKháiniệm
19.Táicấutrúc
20.Kiểmthử
21.Đo lường
22.Hợp đồng
20. Kanban
Phương phápluậnCảitiếnQuytrìnhtheocáchthứctiếnhóavàtăngtrưởng
‘Complex Adaptive System for Lean’
KhôngcầnPhânđoạn? Bỏluôn!
KhôngcầnƯớclượng? Bỏluôn!
5 Đặcđiểm
1.TrựcquanhóaLuồngcôngviệc
2.GiớihạnViệc-đang-làm
3.ĐolườngvàQuảnlíLuồng
4.Công khaiChínhsáchQuytrình
5.DùngMôhìnhđểnhậnbiếtcáccơhộiCảitiến
26. Agile | Agility | Linh hoạt
•Ken Schwaber:
1.flexibility, the capacity and capability of rapidly and efficiently adapting to change.
2.ability to take advantage of opportunities while controlling risk.
Wiki:
Agile Software Development: mộthọcácphươngpháppháttriểnphầnmềmdựatrêncácnguyênlítăngtrưởng(incremental) vàlặp(iterative), trongđócácyêucầuvàgiảipháptiếnhóathôngqua sựcộngtácgiữacácnhómliênchứcnăng(cross-functional) tựtổchức(self-organizing).
28. TuyênngônPháttriểnPhầnmềmLinh hoạt
28
Chúng tôi đã phát hiện racáchtốthơnđểphát triển phần mềmthôngqua việcthực hiệnnóvàgiúp đỡ người khác thực hiện. Quacông việcnày, chúng tôiđã đi đến việc đánh giá cao:
Cá nhânvà tương tác
hơn là quy trìnhvàcông cụ;
Phần mềm chạy tốt
hơn là tài liệu đầy đủ;
Cộng tácvới khách hàng
hơn là đàm phánhợp đồng;
Phản hồi vớithay đổi
hơn là bám sát kế hoạch.
Mặc dù các thứbên phải vẫn còn giá trị,chúng tôi đánh giácao hơn cácmụcở bên trái.
Dịchtừ: AgileManifesto.org
Xemthêm: http://www.hanoiscrum.net/hnscrum/learning/145-agileprincipleandvalues
29. Tuần tự và Chồng lấp
Nguồn: “The New New Product Development Game” của Takeuchi và
Nonaka. Harvard Business Review, tháng Giêng 1986.
Phát triển tuần tự
Nhóm Scrum làm mỗi thứ một ít ở mọi thời điểm, tập trung đưa ra
các chức năng [chạy tốt] sớm nhất.
29
53. Mộttìnhhuốngpháttriển
Requirement Analysis
UI Mocking
•Customer discussion
Design Draft
•Design Discussion
Code the skeletonto test the design
Codingin team
Refactoringand Refinement
Build the increment
$
DevTeam
PO
Collaboration:
Steps:
Artifacts:
As a super user, I want to …
A
B
IDo
Interface IDo{
//TODO …
}
Class A{
//TODO …
}
Class B:IDo{
//TODO …
}
Note:
TDD|BDD|AMDD can be used or not
Interface IDo{
//TODO …
}
Class A{
method1(){
//Mr. A codes here
}
}
Class B:IDo{
method1(){
//Mrs. B codes here
}
}
Class C{
}
$
PO
53
54. User Story
•User story làcácyêucầulinhhoạt(agile requirement)
•Đảmbảosựcânbằngcủacácbênthamgiapháttriểnsảnphẩm: kháchhàng, ngườidùngvànhàpháttriển
–Thểhiệnbằngmộtngônngữhướng-người-dùngvàcácnhàpháttriểncóthểhiểuđược
•Hướngtớingườidùngvànghiệpvụ, khôngchứacácđặctínhvềhệthống
54