HIỆN TRẠNG CỦA NGÀNH PHÁT TRIỂN PHẦN MỀM . • Dự án không minh bạch. • Xuất hiện rủi ro, hiểu sai yêu cầu ban đầu. • Vấn đề khi tích hợp các module và ổn định hệ thống. • Xuất hiện thêm các yêu cầu phát sinh. • Lượng mã nguồn tăng nhanh, áp lực thời gian sau khi sản phẩm bắt đầu chạy. Agile là gì ? ▸ Agile là triết lý và tất cả những phương pháp phát triển phần mềm, phát triển sản phẩm và quản lý. ▸ Dựa trên triết lý được mô tả trong tuyên ngôn Agile. ĐIỂM CHÍNH VỀ AGILE Con người là trung tâm. Khách hàng tham gia vào quá trình phát triển sản phẩm. Team làm việc với sự tin tưởng, linh hoạt. Đáp ứng được sự thay đổi. Tạo ra giá trị (phần mềm, landing page,…) liên tục và truyền tải nó đến khách hàng. Nhắc đến sự phát triển bền vững và ổn định
Trang 1TÌM HIỂU MÔ HÌNH
TRONG PHÁT TRIỂN
PHẦN MỀM
Trang 2Thành viên nhóm:
1 Đoàn Minh Hòa
2 Nguyễn Huỳnh Thúy Điệp
3 Nguyễn Quốc Lực
4 Bùi Ngọc Danh
Trang 3 GIỚI THIỆU VỀ NGUYÊN LÝ AGILE
SCRUM TRONG PHÁT TRIỂN PHẦN MỀM
HIỆN TRẠNG NGÀNH PHÁT TRIỂN PHẦN MỀM
TRAO ĐỔI & THẢO LUẬN
DEMO
NỘI DUNG:
Trang 41.HIỆN TRẠNG
Trang 5HIỆN TRẠNG CỦA
NGÀNH PHÁT TRIỂN PHẦN MỀM
Trang 6HIỆN TRẠNG CỦA NGÀNH PHÁT TRIỂN PHẦN MỀM
Trang 7Bạn đã và đang làm việc nhóm,
vậy bạn và nhóm của mình đang gặp phải những
vấn đề nổi cộm nào trong công việc?
Trang 8KHỦNG HOẢNG &
SỰ RA ĐỜI CỦA PHƯƠNG PHÁP LUẬN AGILE
• Thập kỷ 80: Khủng hoảng các phương pháp luận để phát triển
phần mềm
• Nhiều phương pháp phần mềm ra đời: XP, Scrum, FDD, Crystal,
DSDM, Kanban, v.v…
Trang 9Số liệu dự án được phân tích từ báo cáo CHAOS của Standish Group năm 2015
Quy mô dự án Phương pháp Thành công Thử thách Thất bại
Trang 102.
Trang 11Agile là gì ?
▸ Agile là triết lý và tất cả những phương
pháp phát triển phần mềm, phát triển
sản phẩm và quản lý.
▸ Dựa trên triết lý được mô tả trong
tuyên ngôn Agile.
Trang 12TUYÊN NGÔN AGILE
Trang 13Cá nhân và sự tương tác hơn
là quy trình và công cụ
▸ Cá nhân và sự tương tác giữa các thành
viên là cốt yếu để một nhóm đạt được
hiệu suất cao.
▸ Áp dụng chu kỳ thanh tra và thích
nghi để tạo điều kiện phát triển giao
tiếp.
Trang 14Cộng tác với khách hàng hơn
là đàm phán hợp đồng
▸ Đưa vào một đồng minh tích cực của
khách hàng làm việc sát cánh với đội
phát triển (gọi là Product Owner).
Trang 15Phần mềm chạy tốt hơn là tài
liệu đầy đủ
▸ Khi các tính năng của một sản phẩm
vượt qua tất cả các kiểm thử và có thể
được vận hành bởi người dùng cuối
>> Sản phẩm đó hoàn thành.
Trang 16Phản hồi với thay đổi hơn là
bám sát vào kế hoạch
▸ 60% yêu cầu trong dự án hoặc sản
phẩm thay đổi trong suốt quá trình phát
triển phần mềm.
▸ Thiết lập các quy trình được thiết kế
đặc biệt để thay đổi các ưu tiên dưa
trên thông tin phản hồi.
Trang 1712 NGUYÊN TẮC TRONG AGILE
.
Trang 18KHÁCH HÀNG
Chào mừng thay đổi, ngay cả trong giai đoạn muộn nhất.
THAY ĐỔI
Sự hài lòng được đặt
lên hàng đầu, liên tục
chuyển giao trong
phần mềm.
Trang 19TIN CẬY
Làm việc cùng một nơi
là cách tốt nhất để liên lạc.
FACE-2-FACE
Dev team là những
người có động lực và
tin cậy.
Trang 20CHẠY ĐƯỢC
Business và Dev nên gần gũi và hợp tác hàng ngày
HỢP TÁC
Phần mềm chạy được
và giao thường xuyên
(hàng tuần)
Trang 21PHẦN MỀM
Phát triển bền vững, duy trì tốc độ không đổi.
BỀN VỮNG
Phần mềm chạy được
là thước đo của tiến
độ.
Trang 22ĐƠN GIẢN HÓA
Chú ý đến cá kỹ thuật mới và thiết kế tốt.
MỚI & TỐT
Tối đa hóa số việc
không cần phải làm.
Trang 23Kiến trúc, yêu cầu và thiết kế tốt tạo nên nhóm tự tổ chức tốt.
Trang 24PHƯƠNG PHÁP AGILE VÀ MỨC ĐỘ PHỔ BIẾN
Trang 25Một số Framwork
AGILE
SCRUM
- Framwork gọn nhẹ
- Dùng để quản lý các dự án có chu
kì phát triển
- Có thể kết hợp với các
framework khác
KANBAN
- Tập trung vào trực quan hóa quy trình với công việc được chia nhỏ
-Xác định được nút cổ chai và giảm thời gian chờ
EXTREME PROGRAMMIN
G
- Tập trung đưa
ra sản phẩm chất lượng cao
- Team hợp tác trong chu kì ngắn, linh hoạt và đáp ứng nhanh với thay đổi
Trang 26SO SÁNH
AGILE VÀ
Trang 27AGLIE (Scrum,…)
• Với sự tham gia của khách hàng
trong dự án giảm đi nguy cơ sai lầm
trong phát triển sản phẩm
• Chấp nhân sự thay đổi, team làm
việc dựa trên tin tưởng, linh hoạt
nên số lượng thường vừa đủ
• Giảm thiểu lãng phí về thời gian và
tiền bạc, truyền tải giá trị liên tục đến
khách hàng
Plan-Drive (WATERFALL
• Gắn với kế hoạch dựa trên hợp đồng
Khách hàng chỉ biết dự án đi đến đâu
so với kế hoạch
• Làm việc trên giới hạn của hợp
đồng, sự hợp tác của team thường
thấp do thay đổi nhân sự
• Giảm thiểu rủi ro phá vỡ hợp đồng
giữa nhà đầu tư và khách hàng
Trang 2803 ĐIỂM
CHÍNH VỀ
Con người là trung tâm Khách hàng tham gia vào quá trình phát triển sản phẩm Team làm việc với sự tin tưởng, linh hoạt
Đáp ứng được sự thay đổi Tạo ra giá trị (phần mềm, landing page,…) liên tục và truyền tải nó đến khách hàng
Trang 292 PHƯƠNG PHÁP
SCRUM TRONG
PHÁT TRIỂN PHẦN
MỀM
Trang 30Scrum là gì?
• Là một phương pháp cụ thể chia sẻ các giá trị được phát biểu
trong Tuyên ngôn Agile
• Scrum là khung làm việc (framework) để phát triển, chuyển
giao và duy trì các sản phẩm phức tạp theo cách thức lặp
Trang 31Đặc điểm của cách
tổ chức công việc theo Scrum
- Tổ chức công việc theo chu trình ngắn (phân
đoạn) Cấp quản lý không can thiệp.
- Nhóm báo cáo trực tiếp cho khách hàng Quyết
định khối lượng công việc, ước tính thời gian
Trang 34KHUNG LÀM
Trang 35 Cải tiến Sprint
Trang 36CÁC SỰ KIỆN TRONG
SCRUM
Trang 38MỘT SỐ CÔNG CỤ TRONG
SCRUM
Trang 39PRODUCT BACKLOG
• Là danh sách mọi công việc cần để tạo
thành sản phẩm và là nguồn để đáp ứng
các thay đổi trong suốt dự án
• Product Owner là người chịu trách nhiệm
với Product Backlog
Trang 40SPRINT BACKLOG
• Là các công việc được lấy ra từ Product
Backlog để thực hiện trong 1 sprint
• Develop Team sẽ là người được chọn và
đưa ra mục tiêu thực hiện cho sprint đó
Trang 41• Là bảng tổng kết chỉ ra các công việc naò
từ Product backlog đã hoàn thành và các
giá trị được truyền tải đến khách hàng
Trang 42SCRUM
Trang 43Biết khi nào cần can thiệp và để nhóm tự thông qua
kinh nghiệm và sai lầm của họ
Luôn có mặt để trả lời câu hỏi và đưa ra lời khuyên
khi Dev team và Owner Product cần
Trang 44SCRUM MASTER
Bảo vệ nhóm bằng cách ngăn cản phiền nhiễu từ
bên ngoài
Loại bỏ các trỏ ngại cho nhóm đẻ họ có thể tập
trung vào công việc
Không phải là Sếp vai trò này định nghĩa bởi tập
hợp các trách nhiệm không theo cấp bậc
Trang 45SCRUM MASTER
Huấn luyện Product Owner về Scrum Practices
Giúp nhóm sử dụng thành thục Scrum Artifacts
Huấn luyện tất cả các thành viên trong nhóm về
Scrum Practices
Hành động như một nhà truyền giáo về Scrum,
giúp cả công ty triển khai Scrum
Trang 48PRODUCT OWNER
Giao tiếp các bên liên quan thường xuyên và thiết
lập mối quan hệ chặc chẽ với khách hàng
Không đảm nhận vai trò Scrum Master
Không làm công việc phát triển sản phẩm
Trang 49PRODUCT OWNER
Hiểu được giá trị người dung cho từng Story
Làm rõ các yêu cầu cho nhóm phát
Là người ghi nhận phản hồi từ các bên liên quan ở
Sprint Review
Là người có quyết định cuối cùng khi Sprint cần
kết thúc sớm
Trang 50LỢI ÍCH KHI DÙNG
SCRUM
Trang 51Độ trực
quan
Giá trị chuyển giao
thay đổi
Trang 531 Bốn nguyên lý của Agile là gì ?
2 Scrum có phải là Agile không ?
3 Sự khác biệt lớn nhất giữa mô hình truyền thống & Agile ?
4 Theo các bạn, có phải tất cả các nhóm nhỏ đều nên làm việc theo “kiểu Agile” không ?
5 Theo các bạn, Scrum chỉ áp dụng trong sản xuất các phần mềm, đúng hay sai ?
6 Theo các bạn, Scrum không coi trọng việc lập kế hoạch bởi vì nó linh hoạt theo thời gian, đúng hay sai ?
7 Product Owner có phải là Product Manager không ?
8 ScrumMaster có thể kiêm Product Owner không ?
CÂU HỎI ỨNG DỤNG
Trang 54Any questions?