12/08/2018, 14:25

Agile - Scrum: Phần 2 - Cách thức phát triển phần mềm trong Scrum

Tiếp nối phần 1 tại đây lý thuyết về Agile - Scrum. Phần này mình sẽ đi sâu tìm hiểu sâu hơn về Scrum, quy trình phát triển phần mềm. Phát triển lặp theo Sprint Theo mô hình phát triển sản phẩm truyền thống, việc phát triển sản phẩm đi qua từng giai đoạn Do phải đi qua toàn bộ ...

Tiếp nối phần 1 tại đây lý thuyết về Agile - Scrum. Phần này mình sẽ đi sâu tìm hiểu sâu hơn về Scrum, quy trình phát triển phần mềm.

Agile-Scrum-Belgium.png

Phát triển lặp theo Sprint

Theo mô hình phát triển sản phẩm truyền thống, việc phát triển sản phẩm đi qua từng giai đoạn

Screen Shot 2016-12-26 at 9.10.27 AM.png

Do phải đi qua toàn bộ những quy trình này nên một sản phẩm cần phải có nhiều tháng hoặc vài năm thì một sản phẩm mới có thể đến tay được người sử dụng. Điều đó không áp dụng được nhu cầu của người dùng và làm giảm tính cạnh tranh trên thị trường.

Do vậy chung ta cần đến các phương pháp phát triển Agile, và Scrum là một trong số đó.

Screen Shot 2016-12-26 at 9.06.23 AM.png

  • Scrum là một khung làm việc dành cho việc phát triển sản phẩm với các nhóm liên chức năng làm việc theo cách thức lặp và tăng trưởng.
  • Quy trình phát triển được thông qua các phân đoạn nối tiếp nhau được gọi là một Sprint.
  • Kết thúc mỗi Sprint, nhóm phát triển sẽ cho ra đời một phần tăng trưởng chuyển giao được của sản phẩm.
  • Mỗi Sprint diễn ra không qua 4 tuần và kéo dài liên tiếp mà không bị gián đoạn.
  • Các Sprint có độ dài không đổi và Sprint này bắt đầu sau khi Sprint khác kết thúc.
  • Các Sprint được đóng khung về thời gian. Chúng kết thúc vào một ngày xác định bất kể công việc đã được hoàn thành hay chưa và không được phép kéo dài thêm thời gian

Quá trình diễn ra một Sprint

ScrumOverview.jpg

Bắt đầu Sprint:
  • Nhóm phát triển sẽ lựa chọn một số hạng mục từ một danh sách ưu tiên các yêu cầu của khách hàng. Nhóm thống nhất một số mục tiêu mà họ tin rằng có thể đạt được khi Sprint kết thúc, những thứ có thể thấy được và thật sự phải được hoàn thành.
  • Sau đó nhóm phát triển bắt tay vào giải quyết từng hạng mục đã lựa chọn. Vai trò của từng thành viên, cá nhân và sự công tác là rất quan trọng để nhóm có thể hoàn thành các hạng mục với chật lượng khách hàng mong đợi.
  • Hàng ngày nhóm phát triển tập hợp trong một thời gian ngắn để thanh tra quá trình thực hiện và điều chỉnh các bước tiếp theo để hoàn thành các công việc còn lại.
  • Trong suốt Sprint, không có bất kỳ một hạng mục nào được phép thêm vào, Scrum cho phép thay đổi ở Sprint tiếp theo nhưng với Sprint ngắn hiện tại chỉ tập trung vào một mục tiêu rõ rệt đã được đặt ra ở đầu Sprint.
Kết thúc Sprint:
  • Nhóm sơ kết Sprint với các bên liên quan, trình bày các việc đã làm, mọi người tiếp nhận các phản hồi, đóng góp để đưa vào Sprint tiếp theo
  • Scrum quan tâm tới phần tăng trưởng thực sự ở cuối mỗi Sprint. Đối với một quy trình phát triển phần mềm thì nó tương đương với việc:
    • Nó đã được tích hợp hệ thống.
    • Kiểm thử đầy đủ.
    • Tài liệu hoàn chỉnh.
    • Có thể chuyển giao được tới khách hàng.

Lợi ích của việc Đóng khung thời gian

Khái niệm: Đóng khung thời gian có nghĩa là ta xác định một khoảng thời gian hữu hạn cố định cho từng hoạt động. Đóng khung thời gian đi kèm với việc đưa ra một thời hạn kết thúc và kết quả mong đợi của hoạt động đó. Hoạt động này sẽ chấm dứt khi khung thời gian kết thúc bất kể là các công việc được hoàn thành hay chưa. Đóng khung thời gian mạng lại rất nhiều lợi ích to lớn và hầu hết các sự kiên trong Scrum đều đóng khung thời gian.

khung-thoi-gian-trong-dau-tu-bo.jpg

Những lợi ích của việc đóng khung thời gian:

  • Gia tăng tập trung trong công việc: Đóng khung mục tiêu trong khoảng thời gian nhất định sẽ giúp bạn tập trung vào công việc, mục tiêu đó mà không bị các việc khác xen vào.
  • Tối ưu hoá công việc: Khi bạn được đặt vào công việc có khung thời gian hữu hạn thì bạn sẽ tìm cách hoàn thành công việc, nhiệm vụ đó trong khoảng thời gian cho phép. Loại bỏ công việc ít mang lại giá trị để tập trung vào những công việc mang lại giá trị cao hơn sẽ được làm trước.
  • Tăng năng suất công việc: Khi bạn không có một thời hạn để hoàn thành thì thông thường công việc đó sẽ bị kéo dài ra, đặc biệt là đối với những người hay có thói quen lùi công việc lại để làm sau. Đóng khung thời gian sẽ giúp bạn làm được nhiều việc hơn só với trước.
  • Nhanh chóng có được các phản hồi: Khi bạn sớm kết thúc một công việc thay vì kéo dài nó ra thì bạn sẽ sớm có ngay kết quả để biết bạn đã làm tốt hay chưa để bạn có thể cải tiến công việc ngay trong lần tiếp theo.
  • Giúp bạn quản lý được rủi ro: Nếu vòng đời của một công việc quá lớn thì ta sẽ lâu nhận được kết quả. Trong quá trình đó tiềm ẩn rất nhiều rủi ro khiến cho công việc bị thất bại. Nếu chúng ta đặt một khung thời gian càng nhanh càng tốt thì chúng ta sớm nhận ra được rủi ro và thậm chí nếu có thất bại thì cũng sẽ diễn ra nhanh hơn và chúng ta có thể khắc phục ở công việc tiếp theo.
0