Professional Documents
Culture Documents
AGILE
PHÁT TRIỂN PHẦN MỀM LINH HOẠT
Các yêu cầu bên phải vẫn còn giá trị, nhưng các mục ở bên trái được đánh giá cao hơn.
Ý nghĩa của tuyên ngôn AGILE
Cá nhân và sự tương tác...
Cá nhân và sự tương hỗ quan trọng
hơn quy trình và công cụ”
Ý tưởng là đặt trọng tâm vào con người và sự tương hỗ giữa
những thành viên trong nhóm, điều này không có nghĩa là phủ
nhận tầm quan trọng của quy trình và công cụ nhưng trong
Agile nó được đặt sau yếu tố con người.
Sản phẩm dùng được…
Việc tạo ra và cập nhật các tài liệu về sản phẩm là bắt buộc.
Đứng với góc độ khách hàng thì khách hàng chỉ quan tâm
đến sản phẩm có hoạt động được và tốt hay không.
Vậy tập trung quá nhiều cho việc tạo tài liệu là không cần
thiết, dành thời gian đó để trao đổi để hiểu thêm về công
việc phải làm.
Cộng tác với khách hàng…
Không có dự án nào không có sự thay đổi điều chỉnh khi thực thi
mặc dù kế hoạch đã được định ra rõ ràng từ đầu do vậy cần tập
thích nghi với thay đổi.
Agile không khuyến khích cho sự thay đổi nhưng khuyến khích
chúng ta tập thích nghi với thay đổi.
Đặc trưng Agile
❖ Dự án sẽ được thực hiện trong các phân đoạn lặp đi lặp lại.
❖ Các phân đoạn (Iteration hoặc Sprint) có khung thời gian
ngắn (từ một đến bốn tuần).
❖ Trong mỗi phân đoạn này, nhóm phát triển thực hiện đầy đủ
các công việc cần thiết như lập kế hoạch, phân tích yêu cầu,
thiết kế, triển khai, kiểm thử (với các mức độ khác nhau) để cho
ra các phần nhỏ của sản phẩm.
❖ Agile thường phân rã mục tiêu thành các phần nhỏ với quá
trình lập kế hoạch đơn giản và gọn nhẹ nhất có thể, và không
thực hiện việc lập kế hoạch dài hạn.
Đặc trưng Agile
❖Do các phân đoạn chỉ kéo dài trong một khoảng thời
gian ngắn, và việc lập kế hoạch cũng được điều chỉnh
liên tục, nên các thay đổi trong quá trình phát triển
đều có thể được đáp ứng theo cách thích hợp .
❖ Theo đó, các quy trình agile thường thích ứng rất tốt
với các thay đổi.
Đặc trưng Agile
Nhóm tự tổ chức và liên chức năng
❖Cấu trúc nhóm agile thường là liên chức năng(cross-
functionality) và tự tổ chức(self-organizing). Theo đó,
các nhóm này tự thực hiện lấy việc phân công công
việc mà không dựa trên các mô tả cứng về chức danh
hay làm việc dựa trên một sự phân cấp rõ ràng trong
tổ chức
❖Các nhóm cộng tác với nhau để ra quyết định, theo dõi
tiến độ, giải quyết các vấn đề mà không chờ mệnh
lệnh của các cấp quản lý.
❖Được trao quyền để tự ra quyết định, tự quản lí và tổ
chức lấy công việc của chính mình để đạt được hiệu
quả cao nhất.
Đặc trưng Agile
Quản lý tiến trình thực nghiệm (Empirical Process
Control)
❖Các nhóm agile ra các quyết định dựa trên các dữ liệu
thực tiễn.
❖Agile rút ngắn vòng đời phản hồi (short feedback life
cycle) để dễ dàng thích nghi và gia tăng tính linh hoạt.
❖ Theo thời gian, các chiến lược này sẽ tiến gần đến
trạng thái tối ưu, nhờ đó nhóm có thể kiểm soát được
tiến trình, và nâng cao năng suất lao động.
Đặc trưng Agile
1
9
Thành công của Agile
2
0
Thành công của Agile
2
1
Các phương pháp Agile
Các phương pháp Agile
Các phương pháp Agile
Agile vs Mô hình thác nước
Agile vs Mô hình thác nước
2
6
Agile vs Mô hình thác nước
Agile vs Mô hình thác nước
2
8
Agile vs Mô hình thác nước
Iterative
29
Agile vs Mô hình thác nước
Incremental
30
3
1
Scrum framework
Scrum là gì?
Scrum là gì?
Scrum là gì?
Khái lược về Scrum
❖ Scrum là một khung làm việc trong đó con người có thể xác
định các vấn đề thích nghi phức tạp, nhưng vẫn giữ được
năng suất và sáng tạo để chuyển giao các sản phẩm có giá trị
cao nhất.
❖ Scrum có các tính chất:
➢ nhẹ nhàng
➢ dễ hiểu
➢ rất khó để tinh thông
❖ Scrum là khung làm việc đã được sử dụng để quản lý quá
trình phát triển các sản phẩm phức tạp từ đầu những năm
1990.
❖ Scrum không phải là một quy trình hay một kĩ thuật cụ thể,
nó là một khung làm việc cho phép bạn sử dụng nhiều quy
trình và kĩ thuật khác nhau. Scrum làm rõ độ hiệu quả tương
đối của công tác quản lý và phát triển sản phẩm, từ đó cho
phép bạn cải tiến nó.
Khung làm việc Scrum
❖Khung làm việc Scrum bao gồm một Nhóm Scrum với
các vai trò được phân định rõ ràng, các sự kiện, các
đồ nghề và các quy tắc. Mỗi thành phần trong khung
làm việc phục vụ một mục đích rõ ràng và nòng cốt
trong việc sử dụng và thành công của Scrum.
❖Các chiến lược cụ thể để sử dụng Scrum có thể rất
khác nhau
❖Các quy tắc của Scrum gắn kết các yếu tố sự kiện, vai
trò, đồ nghề với nhau, điều khiển các mối quan hệ và
tương tác giữa chúng.
BA VAI TRÒ
❖ Product Owner (chủ sản phẩm): Là
người chịu trách nhiệm về sự thành
công của dự án, người định nghĩa các
yêu cầu và đánh giá cuối cùng đầu ra
của các nhà phát triển phần mềm.
❖ Scrum Master: Là người có hiểu biết
sâu sắc về Scrum và đảm bảo nhóm
có thể làm việc hiệu quả với Scrum.
❖ Development Team (Đội sản xuất,
hay Nhóm phát triển) Một
nhóm liên chức năng (cross-
functional) tự quản lý để tiến hành
chuyển đổi các yêu cầu được tổ chức
trong Product Backlog thành chức
năng của hệ thống.
BA TRỤ CỘT CỦA SCRUM
❖Minh bạch,
❖Thanh tra
❖ Thích nghi.
BA TRỤ CỘT CỦA SCRUM
Inspection
❖ Người sử dụng Scrum phải
thường xuyên thanh tra các tạo
tác và tiến độ đến đích để phát
hiện các bất thường không theo
ý muốn.
❖ Tần suất thanh tra không nên
quá dày để khỏi ảnh hưởng đến
công việc.
❖ Công tác thanh tra có ích nhất
khi được thực hiện bởi người có
kĩ năng tại các điểm quan trọng
của công việc
BA TRỤ CỘT CỦA SCRUM
Adaptation
Scrum rất linh hoạt như các
phương pháp phát triển linh hoạt
(agile software development)
khác. Nhờ đó nó mang lại tính
thích nghi rất cao. Dựa trên các
thông tin minh bạch hóa từ các
quá trình thanh tra và làm việc,
Scrum có thể phản hồi lại các thay
đổi một cách tích cực, nhờ đó
mang lại thành công cho dự án.
BA TRỤ CỘT CỦA SCRUM
❖ Là các hoạt động xảy ra trong suốt vòng đời của quá trình phát triển.
❖ Các sự kiện chính trong Scrum là:
❖ Sprint: Là khung thời gian ít hơn một tháng để Nhóm Scrum thực
hiện tất cả những hoạt động cần thiết để sản xuất được một phần
tăng trưởng của sản phẩm. Tất cả các sự kiện khác của Scrum đều
được diễn ra trong khung thời gian của một Sprint.
❖ Lập kế hoạch Sprint: Là sự kiện diễn ra ở đầu mỗi Sprint để chuẩn
bị cho toàn bộ Sprint. Buổi Lập kế hoạch Sprint được chia làm 2
phần riêng biệt với 2 mục đích khác nhau. Phần 1 nhằm trả lời câu
hỏi: “Chúng ta sẽ làm gì?”. Phần 2 nhằm trả lời câu hỏi: “Chúng ta
sẽ làm như thế nào?”.
❖ Scrum Hằng ngày: Là buổi trao đổi ngắn mà Nhóm Phát triển thực
hiện đều đặn hằng ngày nhằm cập nhật và đồng bộ công việc giữa
các thành viên. Sự kiện này cũng được coi là buổi tái-lập kế hoạch
của Nhóm Phát triển.
Các sự kiện trong SCRUM
❖ Cải tiến Sprint: Là một sự kiện quan trọng trong Scrum diễn ra
ngay sau buổi Sơ kết Sprint nhằm mục đích thanh tra và thích nghi
quy trình làm việc. Nói cách khác đây là dịp để Nhóm Scrum nhìn
lại quá trình làm việc của một Sprint và xác định những thay đổi
cần thiết đối với quy trình để làm việc tốt hơn trong Sprint sau.
CÁC TẠO TÁC TRONG SCRUM
Các tạo tác trong Scrum là những công cụ hoặc kết quả được tạo ra và sử
dụng trong quá trình vận hành Scrum. Các tạo tác trong Scrum bao gồm:
❖ Product Backlog: Là nơi lưu trữ danh sách các tính năng mong muốn của
sản phẩm. Danh sách này được sắp xếp dựa trên độ ưu tiên của từng
hạng mục. Các hạng mục có độ ưu tiên cao hơn nằm ở phía trên của danh
sách và sẽ được Nhóm Phát triển lựa chọn để đưa vào sản xuất sớm, các
hạng mục có độ ưu tiên thấp hơn sẽ nằm ở phía cuối của danh sách và
được phát triển muộn hơn.
❖ Sprint Backlog: Là bảng công việc được Nhóm Phát triển sử dụng để quản
lý quá trình phát triển trong một Sprint. Sprint Backlog được Nhóm Phát
triển tạo ra trong buổi Lập kế hoạch Sprint và cập nhật trong suốt Sprint.
Sprint Backlog chứa danh sách các hạng mục được phát triển trong
Sprint và các công việc cần làm tương ứng với từng hạng mục để hoàn
thành nó.
❖ Phần tăng trưởng: Là tên gọi ngắn của Phần tăng trưởng Sản phẩm Có
khả năng Chuyển giao được (Potentially Shippable Product Increment) là
phần sản phẩm Nhóm Phát triển tạo ra cuối mỗi Sprint.
Các bước thực hiện
❖01. Product-Backlog-template
❖02. Product Owner Checklist
❖00.Planning Poker
Lập kế hoạch Sprint
❖08.SMART rubric
❖07.Sprint-Backlog-template
❖05.Sprint Planning Checklist
Dayly SCRUM
❖User-Story-template
Theo dõi tiến độ Sprint
❖04. Burndown-Chart-sample
Làm mịn Product Backlog
❖01. Product-Backlog-template
❖00.Planning Poker
Sơ kết Sprint