You are on page 1of 59

CÔNG NGHỆ PHẦN MỀM

AGILE - SCRUM
Phiên bản: 1.0
Tháng 8 – 2013
TS. NGUYỄN Trọng Phúc

Đại học Giao Thông Vận Tải


Khoa: Công Nghệ Thông Tin
CHƯƠNG I

GIỚI THIỆU CHUNG


AGILE - SCRUM
NỘI DUNG
 Giới thiệu chung
 Khái niệm
 Một số phương pháp truyền thống
 Mô hình thác nước - V
 Mô hình lặp
 Mô hình tăng trưởng
 Hạn chế chung các phương pháp truyền thống
 AGILE
 Khái niệm
 Một số cách tiếp cận AGILE
 AGILE vs Phương pháp truyền thống
 SCRUM
 Scrum
 Scrum framework
GIỚI THIỆU CHUNG

KHÁI NIỆM
KHÁI NIỆM
 Công nghệ phần mềm
 “Software Engineering is the application of a
systematic, disciplined, quantifiable approach to
development, operation and maintenance of
software: that is, the application of engineering to
software.” - IEEE Standard Computer Dictionary,
ISBN 1-55937-079-3, 1990.
 Công nghệ phần mềm bắt đầu được đưa ra và áp
dụng bởi NASA trong việc thực hiện dự án xây dựng
hệ thống điều khiển cho tàu con thoi.
 Tăng chất lượng sản phẩm

 Giảm chi phí và các lỗi phát sinh trong dự án


KHÁI NIỆM
KHÁI NIỆM
 Chu trình phát triển phần
mềm
 Thu thập và phân tích yêu cầu: phần
mềm dùng để làm gì, phục vụ cho ai
và thao tác như thế nào…
 Thiết kế: cung cấp một cái nhìn chung
về hệ thống trên quan điểm của người
phát triển.
 Cài đặt: thực hiện bởi nhóm phát triển
dưới sự quản lý của Project Manager.
 Kiểm thử: đảm bảo sản phẩm đáp ứng
yêu cầu đặt ra ban đầu.
 Triển khai
 Bảo trì, bảo hành.
GIỚI THIỆU CHUNG

MỘT SỐ MÔ HÌNH TRUYỀN THỐNG


MÔ HÌNH THÁC NƯỚC
MÔ HÌNH CHỮ V
MÔ HÌNH THÁC NƯỚC
 Đặc điểm
 Tiếp cận theo từng bước cụ thể, quản lý dựa trên kế
hoạch được đưa ra ban đầu.
 Phác thảo các bước, các công việc và đưa ra các tài
liệu liên quan một cách chi tiết trước khi thực hiện.
 Đảm bảo mọi công việc đều được xác định, có tổ
chức, có kế hoạch và được kiểm soát.
 Được sử dụng rộng rãi trong các công ty phần mềm
cỡ vừa và nhỏ.
MÔ HÌNH THÁC NƯỚC
 Hạn chế
 Giá trị cuối cùng của
sản phẩm khác so với
yêu cầu ban đầu =>
mất dần theo mỗi
bước.
 Không thấy được giá
trị trong từng bước.
 Chi phí cho thay đổi
tăng dần theo từng
bước.
MÔ HÌNH THÁC NƯỚC
 Hạn chế
 Phản hồi từ phía
khách hàng chỉ nhận
được khi đã hoàn
thành dự án.
 Chi phí cao cho việc
quản lý và lên kế
hoạch.
 Chi phí cao cho việc
tìm hiểu tài liệu ban
đầu => rủi ro cao.
MÔ HÌNH THÁC NƯỚC
MÔ HÌNH LẶP
MÔ HÌNH LẶP
 Đặc điểm
 Tiếp cận giải quyết bài toán không dựa trên việc đáp
ứng đầy đủ từng yêu cầu, thay vào đó, người ta giải
quyết từng phần của bài toán theo từng nhóm các
yêu cầu.
 Xây dựng bộ khung của chương trình, sau đó, tại mỗi
bước lặp, tăng cường khả năng cho từng chức năng.
 Quá trình phân tích, thiết kế, cài đặt và thử nghiệm
được thực hiện đồng thời.
 Đảm bảo được sự tin tưởng của khách hàng thông
qua phản hồi của họ sau mỗi bước lặp.
MÔ HÌNH LẶP
MÔ HÌNH LẶP
 Hạn chế
 Yêu cầu phải được xác định đầy đủ và không thay
đổi để có thể xây dựng bộ khung của chương trình.

 Độ khó và thời gian để hoàn thiện các chức năng


ngày càng tăng => dễ bị ảnh hưởng đến tổng thời
gian của dự án.

 Kiến trúc chung của hệ thống có thể bị thay đổi khi


hoàn thiện các chức năng.
MÔ HÌNH LẶP
MÔ HÌNH TĂNG TRƯỞNG
MÔ HÌNH TĂNG TRƯỞNG
 Đặc điểm
 Tiếp cận giải quyết bài toán không dựa trên việc xác
định đầy đủ các yêu cầu, thay vào đó, người ta giải
quyết từng phần của bài toán theo lựa chọn các yêu
cầu có độ ưu tiên.
 Quá trình phân tích, thiết kế, cài đặt và thử nghiệm
được thực hiện trong mỗi bước.
 Đảm bảo được sự tin tưởng của khách hàng thông
qua phản hồi của họ sau mỗi bước.
 Tính mềm dẻo cao, giảm chi phí khi thay đổi yêu cầu.
MÔ HÌNH TĂNG TRƯỞNG
 Hạn chế
 Yêu cầu phải được xác định đầy đủ để có thể hình
dung ra toàn bộ hệ thống trước khi phân rã chúng
thành các bài toán con.

 Các yêu cầu cần được xác định độ ưu tiên thông qua
giá trị, độ khó. Tuy nhiên, chi tiết các yêu cầu sẽ
được tăng cường sau mỗi bước.

 Kiến trúc chung của hệ thống có thể bị thay đổi khi


tích hợp các bước.
MÔ HÌNH TĂNG TRƯỞNG
HẠN CHẾ CHUNG
 Một số yêu cầu chung
 Các yêu cầu phải đảm bảo tính ổn định cao.
 Công nghệ phải được nắm rõ và sử dụng được.
 Nắm bắt và dự báo được các khả năng có thể xảy ra
đối với toàn bộ quá trình thực hiện dự án.
 Mỗi thay đổi hoặc thiếu thông tin sẽ ảnh hưởng đến
toàn bộ dự án
 Thời gian kiểm thử và kiểm tra độ đáp ứng yêu cầu
ban đầu sẽ chiếm phần lớn thời gian.
 Các dự án ngày nay khó có thể đáp ứng các yêu
cầu trên.
GIỚI THIỆU CHUNG

AGILE
AGILE - MANIFESTO
AGILE
AGILE
 Đặc điểm
 AGILE là một cách tiếp cận dựa trên sự kết hợp giữa
phương pháp lặp và phương pháp tăng trưởng nhằm
mục đích:
 Tăng cường giá trị sau mỗi giai đoạn ngắn.

 Đáp ứng các yêu cầu của khách hàng một cách

nhanh nhất.
 Hạn chế các quy trình, thay bằng vai trò của các

thành viên.
 Đưa khách hàng đến gần nhất với đội phát triển
AGILE?
AGILE - PRINCIPLES
AGILE - PRINCIPLES
AGILE - PRINCIPLES
AGILE - METHODS
AGILE - METHODS
GIỚI THIỆU CHUNG

AGILE vs Waterfall
AGILE vs Waterfall
AGILE vs Waterfall
AGILE vs Waterfall
AGILE vs Waterfall
AGILE vs Waterfall
AGILE vs Waterfall
GIỚI THIỆU CHUNG

AGILE - SCRUM
SCRUM
 Khái niệm
 Scrum là một cách tiếp cận AGILE cho việc phát triển
và xây dựng các sản phẩm, dịch vụ.
SCRUM
 Lịch sử
 1986: Harvard Business Review article - Takeuchi &
Nonaka: sự thành công của các công ty Honda,
Canon trong việc sản xuất các sản phẩm mang tính
toàn cầu => self-organizing team.
 1993: Jeff Sutherland đưa ra quy trình cơ bản của
Scrum dựa trên: self-organizing, iteration, increment.
 1995: bài báo đầu tiên về Scrum process.
 2001 -> nay: được áp dụng trong thực tiễn, mang lại
thành công cho nhiều dự án.
SCRUM
 Ưu điểm
 Thỏa mãn khách hàng:
 Đưa khách hàng những giá trị của sản phẩm sớm nhất.
 Nhận được sự phản hồi từ phía khách hàng nhanh nhất.
 Nhận được kết quả và sự tin tưởng của các bên liên quan.
 Lợi nhuận trong việc đầu tư:
 Thấy được kết quả đầu tư sau mỗi lần bàn giao.
 Sản phẩm đến tay người dùng sớm nhất và sẽ được hoàn
thiện trong các phiên bản sau.
 Đôi phát triển:
 Giảm thiểu các rủi ro và các nhược điểm mà các phương
pháp khác đang tồn tại.
SCRUM FRAMEWORK
 Khái niệm
 Scrum framework là tập hợp các giá trị, các nguyên
tắc và các công việc làm cơ sở cho mỗi tổ chức có
thể lựa chọn để đưa ra quy trình cho riêng mình
nhằm đáp ứng được mục tiêu đề ra.
 Kết quả của sản phẩm thu được phụ thuộc vào việc
lựa chọn về quy trình của mỗi tổ chức cũng như việc
đáp ứng các yêu cầu của quy trình đề xuất.
SCRUM - FRAMEWORK
SCRUM - PRACTICES
SCRUM - ROLES
 Product owner:
 Xác định các yêu cầu và chịu trách
nhiệm về chất lượng sản phẩm so với
các yêu cầu.
 Đóng vai trò cầu nối giữa đội phát triển
và các bên liên quan.
 Scrum master:
 Hỗ trợ đội với vai trò người quản lý về
mặt quy trình.
 Loại bỏ các trở ngai và bảo vệ đội từ
các bên liên quan.
 Dev team:
 Tổ chức theo dạng cross-functional và
self-organizing.
 Thực hiện và chịu trách nhiệm về sản
phẩm đưa ra trước Product Owner.
SCRUM - ARTIFACTS
 Product backlog:
 Danh sách các yêu cầu được xác định bởi
P.O thông qua các bên liên quan.
 Được đánh giá:giá trị, độ ưu tiên, thời gian
và các điều kiện để đảm bảo yêu cầu.
 Danh sách có thể thay đổi theo mỗi bước
Sprint.
 Sprint backlog:
 Danh sách các yêu cầu trong mỗi giai đoạn
được thông qua bởi P.O và Dev Team.
 Được lên kế hoạch và chi tiết các công
việc.
 Product increment:
 Giá trị mà mỗi Sprint mang lại đối với sản
phẩm cuối cùng.
 Được xác định bởi P.O đối với các bên liên
quan.
SCRUM - ACTIVITIES
 Grooming:
 Chuẩn bị cho Sprint tiếp: phân tích, làm
rõ yêu cầu và lựa chọn yêu cầu.
 Sprint planning:
 Lên kế hoạch và phân rã các yêu cầu.
 Sprint execution:
 Thực hiện bởi Dev-team {self-
organizing}.
 Daily scrum:
 Thông báo các vấn đề và tiến độ cũng
như các trở ngại có thể xảy ra.
 Sprint review:
 Đánh giá lại chất lượng sản phẩm.
 Sprint retrospective:
 Đánh giá lại quy trình đã áp dụng của
Sprint.
SCRUM
SCRUM
 Good smells
 Việc đánh giá (daily scrum) phải được thực hiện hàng
ngày.
 Tất cả các thành viên đều thoải mái khi hỗ trợ người
khác.
 Luôn đề xuất khi cần sự trợ giúp.
 Vấn đề của mỗi thành viên là vấn đề của cả đội.
 Trao đổi và làm việc theo nhóm là chìa khóa của
thành công.
SCRUM
 Bad smells
 Thời gian cho mỗi Sprint quá dài.
 Số thành viên trong một team quá nhiều.
 DEV Team cố gắng áp dụng Waterfall trong mỗi
Sprint
 Analysis => Design => Code => Test
 P.O không sẵn sàng hỗ trợ mọi thời điểm.
 Các thành viên làm việc độc lập theo task của mình.
 Thiếu sự trao đổi và tương tác giữa các thành viên.
 Phụ thuộc quá nhiều vào Scrum Master
 Project manager?
GIỚI THIỆU CHUNG

HỎI & TRẢ LỜI


SCRUM
SCRUM
SCRUM
 Web-pages
 www.scrumalliance.org
 www.scrumprimer.org
 www.scrumforteamsystem.com/ProcessGuidance
 www.agilealliance.com
 www.controlchaos.com
 www.jeffsutherland.org

You might also like