MÔ HÌNH PHÁT TRIỂN SẢN PHẨM
Các nhà phát triển phần mềm luôn cập nhật những xu hướng mới để phát triển công nghệ. Trong quy trình phát triển phần mềm có rất nhiều bước để đảm bảo sản phẩm được đưa ra thị trường.
1. Mô hình phát triển sản phẩm truyền thống:
Theo Model phát triển sản phẩm truyền thống cần phải đi qua toàn bộ quy trình thì sản phẩm có thể cho phụ vụ. Có thể mất vài tháng hoặc vài năm:
- Không quản lý được thời gian cho ra đời sản phẩm- Không đáp ứng nhu cầu người dùng
- Không cạnh tranh trong môi trường công nghệ
Do đó cần sử dụng đến các phương pháp phát triển phần mềm hiện đại nhất như:
1. Phương pháp phát triển Agile
2. Phương pháp phát triển Scrum
Vì sao lại sử dụng 2 mô hình phát triển Scrum/Agile để xây dựng phát triển phần mềm? Bài viết này sẽ chia sẻ chi tiết để các bạn biết phương pháp hiện đại này.
2. Mô hình phát triển sản phẩm Scum:
Scrum là một quy trình quản lý và kiểm soát được áp dụng trong các dự án phát triển phần mềm giúp loại bỏ những công đoạn phức tạp và chỉ tập trung vào những công đoạn cần thiết đáp ứng được nhu cầu của khác hàng đưa ra. Scrum cũng được coi là một bộ tập quán hay một khung làm việc được đưa ra để áp dụng trong phát triển phần mềm.
Scrum ra đời vào khoảng những năm 1990. Cho tới bây giờ nó vẫn được coi như một khung làm việc hiệu quả và được sử dụng rộng rãi trong cả các công ty lớn và nhỏ. Đặc điểm của Scrum là nó đơn giản dễ hiểu và dễ áp dụng. Trong bài viết này tôi sẽ chia sẻ với các bạn những hiểu biết có được khi áp dụng Scrum vào trong thực tế phát triển phần mềm ở một dự án tôi từng là lập trình viên. Trước hết chúng ta cần tìm hiểu một số khái niệm căn bản.
Scrum Team
Scrum team bao gồm những thành phần sau:
- Product Owner: Nhiệm vụ của Product Owner là đảm bảo việc quản lý các backlog (hay những công việc còn tồn đọng) của việc phát triển sản phẩm phần mềm. Việc này đòi hỏi Product Owner phải liên tục cập nhật thông tin cho các thành viên trong team để họ có thể yểu về yêu cầu hay các tính năng cần có của sản phẩm. Product Owner cũng cần phải hỗ trợ các thành viên trong team để họ hiểu được các tính năng khác nhau của sản phẩm ngay cả khi họ không trực tiếp phát triển tính năng đó.
- Development Team: Đây chính là những lập trình viên sẽ tham gia vào việc phát triển từng tính năng cụ thể. Trong Scrum thì các thành viên của Development Team đều được coi là developers bất kể chức danh thực sự của họ trong công ty như thế nào. Các developers này có thể sẽ có kỹ năng khác nhau và một số sẽ giỏi về những kỹ năng nhất định, tuy nhiên khi sử dụng Scrum thì tất cả các thành viên của Development Team yêu cầu phải có khả năng làm việc thay thế vị trí của nhau và không ai chỉ chịu trách nhiệm phát triển một (hoặc một số) tính năng nhất định.
- Scrum Master: Người này sẽ chịu trách nhiệm cho việc lên kế hoạch để phân công công việc, dựa trên kinh nghiệm của mình để sắp xếp thứ tự ưu tiên giải quyết những công việc tồn đọng nào có trong Backlog trước, tổ chức các buổi hop với Product Owner để theo dõi tình hình và nắm thông tin cần thiết.
Tiếp theo sau khi tìm hiểu về Scrum Team chúng ta cần phải hiểu được khái niệm tiếp theo
Sprint
Sprint là khoảng thời gian thường là 1 tháng hoặc có thể ít hơn mà theo đó sản phẩm sẽ được release phiên bản mới. Khi một Sprint kết thúc thì Scrum Master cần phải chuyển trạng thái của nó sang Done. Khi bắt đầu một Sprint thì Scrum Master cần đưa ra mục tiêu của Sprint đó và mục tiêu này không được phép thay đổi cho tới khi Sprint hoàn thành. Tuy nhiên Product Owner vẫn có quyền huỷ một Sprint trước thời hạn kết thúc của nó. Mặc dù để làm điều này thì Product Owner cần sự đồng thuận của Development Team cũng như Scrum Master. Sau khi một Sprint kết thúc thì các bên sẽ dựa trên kết quả của Sprint đó để lên kế hoạch cho Sprint tiếp theo.
Sprint Planning
Sprint Planning
Đây là bước đầu tiên cần phải thực hiện trước khi một Sprint bắt đầu. Việc lên kế hoạch cho một Sprint thường kéo dài không quá 8 tiếng đồng hồ và phải trả lời được 2 câu hỏi sau:
- Những công việc nào cần phải được hoàn thành trong Sprint này và
- Làm sao để có thể hoàn thành những công việc này
Sau khi thống nhất được số lượng công việc thời gian hoành thình thì chúng ta có thể bắt đấu Sprint. Trong khi thực hiện một Sprint chúng ta sẽ phải có những buổi họp được gọi là Daily Sprint hay Daily Meeting.
Daily Sprint
Các buổi họp Daily Sprint thường kéo dài từ 10 cho tới 15 phút trong buổi họp này tất cả các thành viên sẽ lần lượt báo cáo lại:
- Những gì họ đã làm được ngày hôm qua
- Những gì họ sẽ làm ngày hôm nay
- Những khó khăn mà họ mắc phải
Mỗi buổi họp này sẽ giúp việc định dự đoán được kế hoạch đưa ra trong Sprint đang làm sẽ tiến triển như thế nào và liệu có cần phải cập nhật lại bản kế hoạch đã đưa ra hay không. Tuy nhiên cần nhớ rằng việc thay đổi kế hoạch này không bao gồm thay đổi mục tiêu đã đưa ra của Sprint. Ví dụ bạn có thể tăng thêm thời gian để hoàn thành một tính năng và qua đó khiến Sprint phải kéo dài hơn dự kiến. Tuy nhiên mục tiêu của Sprint là cho release phiên bản mới cần được giữ nguyên.
Sprint Review
Là công việc được thực hiện ở cuối mối Sprint nhằm đánh giá lại kết quả thực hiện được từ Sprint mới hoàn thành và qua đó đưa ra những kiến nghị để có thể thực hiện tốt hơn ở Spring sau. Sprint Review thường kéo dài khoảng 4h đồng hồ và có thường được diễn ra với không khí thân mật để giúp các thành viên có thể thoải mái đưa ra ý kiến của mình.
Và cuối cùng một khái niệm quan trọng trong Scrum mà bạn cần phải nắm được đó là
Sprint Restrospective
Sau khi Sprint Review kết thúc thì việc tiếp theo là tổng kết những kiến nghị và đánh giá từ bước Sprint Review ở trên để đưa ra những cải tiến nhằm nâng cao hiệu quả làm việc cũng như sản phẩm.
Lợi ích của Scrum
Lưu ý về Scrum
- Lập kế hoạch
- Scrum daily
- Rà soát sprint: phản hồi cải tiến nhanh các vấn đề không đúng yêu cầu
- Cải tiesn sprint
Mô Hình Phát Triển Sản Phẩm Scrum
20:56:00
giáo trình chia sẻ, tin công nghệ



