Quy trình phát triển phần mềm Agile - Scrum, 10 bước để áp dụng cho các bạn sinh viên

   Một phần mềm muốn đảm bảo chất lượng đều cần phải áp dụng quy trình phát triển phần mềm. Trãi qua nhiều thời kỳ phát triển thì chúng ta đã có nhiều mô hình như Waterfall, XP, SCRUM, Spiral ... Mỗi một mô hình có ưu và khuyết điểm riêng. 
   
   Khi còn ở ghế nhà trường, mình thường tiếp xúc với quy trình Waterfall, khi mà thầy cô cứ bắt chúng ta phải soạn tài liệu, tài liệu và tài liệu. Nào là tài liệu lấy yêu cầu (Requirement), hợp đồng (Proposal), tài liệu đặc tả (SRS), Use case ... Tuy nhiên mình thấy mấy cái đó khá tốn thời gian và không được nhiều lợi ích cho lắm. 

Mô hình Waterfall

   Khi đi làm, đa số các công ty nước ngoài (trừ Nhật ra) thường áp dụng mô hình Agile. Tại sao? Bởi Agile rất linh hoạt và cho chúng ta thỏa sức sáng tạo. Không như các mô hình truyền thống, khi mà tài liệu đã có sẵn và chúng ta phải làm đúng như khung đã viết ra, Agile sẽ phân nhỏ Product thành những Product Backlog. Và từ những Backlog đó chúng ta có thể code theo cách của chúng ta, không bị ràng buộc bởi bất cứ thứ gì, miễn sao đáp ứng tất cả các Acceptance Criteria của một User Story.

      Mô hình SCRUM

   Có rất nhiều tài liệu nói về SCRUM và các công ty (điển hình là công ty Axon Active mà mình đang làm) thường hay đến các trường đại học và mở các lớp giảng dạy về quy trình SCRUM. Ở đây mình khuyên các bạn nên có kiến thức về SCRUM, bởi nó sẽ là một lợi thế rất lớn khi các bạn ra trường và đi phỏng vấn ở các công ty phần mềm. Nếu có cơ hội, hãy tham gia các lớp học về mô hình phát triển Agile để nhận được chứng chỉ. 

       
Chỉ cần nắm hết kiến thức của SCRUM ON A PAGE này thì các bạn có thể đi chém gió được rồi. :gianxao:



10 Bước để các bạn thực hiện quy trình SCRUM như sau: 



  • Bước 1: Thu nhập các đặc điểm của sản phẩm (backlog) trong đơn đặt hàng. Đây là bước quan trọng nhất. Lập nên các đội làm việc, có thể tách thành các đội nếu cần thiết và thảo luận với nhau về nghiệp vụ cần làm. Sau đó bổ nhiệm một người vào vị trí Product owner, người này có khả năng trao đổi, bao quát công việc tốt, biết sắp xếp ưu tiên đúng thứ tự các nhiệm vụ. Sau đó tự tổ chức lại đội làm việc, đề xuất ra vị trí Scrum master và thảo luận chi tiết các yêu cầu, sắp xếp chúng theo thứ tự ưu tiên. 
  • Bước 2: Ước lượng đầy đủ các yêu cầu về sản phẩm đầu ra. Chia sản phẩm thành số lượng các danh mục backlog. Tuy nhiên số lượng sẽ không chính xác được, về sau chúng sẽ được bổ sung. Tiếp đến là ước lượng chi tiết từng backlog, ước lượng số lượng các đội làm việc. 
  • Bước 3: Lên kế hoạch phát triển các vòng lặp sprint. Tổ chức các cuộc họp trao đổi kế hoạch phát triển sprint với tất cả các thành viên (Planning meeting). Xác định khoảng thời gian sẽ phát triển một sprint (thường là 14 ngày), mục tiêu của sprint là gì, sẽ đạt được gì, phân tích các yêu cầu của sprint một cách rõ ràng. 
  • Bước 4: Lên kế hoạch phát triển các nhiệm vụ của sprint. Tất cả mọi người sẽ xác định ngân sách của sprint đó, chia các đặc điểm thành các tác vụ nhỏ hơn, ước lượng số thời gian sẽ làm từng task (giờ), hoàn tất các yêu cầu và nhận dạng task quan trọng. 
  • Bước 5: Tạo ra không gian làm việc cộng tác cho tất cả mọi người. Thường sử dụng bảng trắng để vẽ nên những vấn đề cần thiết cho tất cả mọi người cùng đánh giá.  
  • Bước 6: Các thành viên bắt tay xây dựng từng sprint. Lập trình, kiểm thử và điều chỉnh thời gian để có hiệu quả tốt nhất. Đôi khi có thể hủy bỏ một sprint và quay lại với việc lập kế hoạch khác. 
  • Bước 7: Mọi người báo cáo kết quả hằng ngày (Daily meeting) để tiếp tục làm việc. Các báo cáo tập trung vào các vấn đề: đạt được những gì so với lần trao đổi trước; sẽ hoàn thành những gì trong lần trao đổi tiếp theo; có những trở ngại gì trong quá trình làm việc v.v. 
  • Bước 8: Tổng hợp kết quả trên biểu đồ (Burndown chart). Đây là bức tranh tổng quát về những việc đã làm được, những việc chưa làm được, thời gian ước lượng còn lại và có thể điều chỉnh lại. 
  • Bước 9: Xem xét để hoàn tất (Review Meeting). Khi các thành viên nói công việc đã hoàn thành có nghĩa là mọi thay đổi sẽ bị từ chối, đẩy lại cho vòng lặp sau. 
  • Bước 10: Đánh giá, phản ánh và lặp lại. Có các cuộc họp đánh giá lại sprint của các thành viên (Retrospective). Sẽ trình bày những gì đạt được, phản hồi của khách hàng, xét thời hạn của sprint. Nhìn lại biểu đồ ở bước 8 để xác định lại toàn bộ hệ thống và tiếp nhận những đóng góp, bổ sung để đưa tiếp vào các vòng lặp sprint tiếp theo.

Previous
Next Post »
Thanks for your comment