Site icon Bệ Phóng Việt

Lập kế hoạch dự án theo Agile.

Advertisements

Trong bài học này, chúng ta sẽ tìm hiểu về các chiến lược và kỹ thuật lập kế hoạch dự án phát triển phần mềm theo nguyên lý Agile.

Điều quan trọng bạn nên nhớ là dự án phải xử lý linh hoạt khi có các thay đổi.

Giới thiệu

Lập kế hoạch cho toàn bộ dự án là một việc khó nhưng sẽ dễ dàng hơn nhiều khi khối lượng công việc được chia thành các việc nhỏ để dễ quản lý.

Việc lập kế hoạch nói chung bao gồm xác định và sắp xếp các đầu việc, gán thời gian và ước tính các đầu việc.

Việc phát hành sản phẩm có 2 mức độ:  

Các kỹ năng trong việc lên kế hoạch:

Work breakdown structure (Cấu trúc phân chia công việc, viết tắt là WBS) là một kỹ thuật thể hiện dự án theo một dạng có thể dễ dàng quan sát. Kỹ thuật này chia công việc ra thành các đầu việc nhỏ hơn.

Các đầu việc sẽ được chia nhỏ đến mức thực sự rõ ràng và có thể gán cho một người thực hiện.

WBS thường được thể hiện dưới dạng danh sách hoặc biểu đồ:

Nguồn: Ganttpro.com

 

Mục đích sử dụng WBS:

Phần lớn việc lập kế hoạch dự án là giải quyết thời gian và nỗ lực cần thiết để thực hiện.

Chúng ta sẽ sử dụng các thuật ngữ sau:

Estimate: là ước tính về thời gian mà team dev cần để hoàn thành một đầu việc. Ước tính được thể hiện theo một khoảng như là 1-2 giờ, 0.5-1 ngày.

Estimate không thể thương lượng, không nên bao gồm thời gian dư thừa hoặc thêm thời gian ngẫu nhiên, hoặc bị ảnh hưởng bởi các stakeholder khác.

Target: là một điểm cụ thể trong lịch trình dự án cần phải đáp ứng, nó tương tự như hạn chót của công việc. Mốc này thường vào cuối một sprint hoặc ngày phát hành sản phẩm.

Commitment: thời gian đội dev đồng cam kết phát hành sản phẩm, có thể được thương lượng dựa trên estimate và target.

Cách tốt nhất để có cam kết đúng là thảo luận với team dev trước, để có con số chính xác. Sau đó, tiếp tục thảo luận với khách hàng để xác định ngày mục tiêu, từ đó có thể xác định cam kết.

Các kỹ thuật hữu ích để estimate ở cấp độ dự án:

Time box là tạo ra một khung thời gian có giới hạn để xây dựng hoặc để hoàn thành một số đầu việc nhất định. Đây là một kỹ thuật quan trọng khi làm Scrum.

Trong Scrum, Timebox là một Sprint, thường kéo dài 2-4 tuần. Mỗi Sprint bao gồm một lượng nhỏ công việc được giới hạn trong thời gian phát triển ngắn.

Story Point:

Story point thay thế cho estimate.

Story point là một giá trị để xác định mất bao lâu để hoàn thành một phần công việc so với các công việc khác. Story point đo tương đối và không có đơn vị cụ thể, không giống như ước tính thời gian.

Story point sử dụng user story và backlog:

Để sử dụng story point trong một dự án:

  1. Gán một con số cơ sở lên một user story. Bạn nên chọn một user story dễ để dùng làm con số cơ sở.
  2. Lấy đó làm cơ sở, gán story point cho các user story còn lại. Nếu một US lớn gấp đôi US đầu tiên thì nên tăng gấp đôi giá trị.
  3. Sau khi hoàn tất, ta sẽ có một danh sách US có ước tính công việc đều liên quan đến nhau.

Tổng số Story point của một dự án là các story point lẻ được cộng lại.

Điều cực kỳ quan trọng là phải nhớ không coi story point như thời gian. Việc đó sẽ không mang lại lợi ích gì.

Một cách hay để đảm bảo các story point cố định và tương đối là sử dụng dãy Fibonacci – bất kỳ số riêng lẻ nào cũng là tổng của hai số đứng trước nó: 1, 1, 2, 3, 5, 8, 13, 21, v.v.

Kế hoạch phát – Release plan:

Kế hoạch này quyết định những User story nào từ dự án sẽ được hoàn thành và phát hành trong mỗi Sprint. Nó được thực hiện trước khi bất kỳ Sprint nào bắt đầu và ưu tiên các nhiệm vụ dựa trên mức độ quan trọng: Must do > Should do > Could do.

 

Kỹ thuật lập kế hoạch ở cấp độ đầu việc và lập kế hoạch vòng lặp:

Có nhiều cách để tạo estimate cho các task. Tất cả đều dựa trên dữ liệu trước đó.

Tuy nhiên hãy nhớ rằng ước tính là những con số không thể thương lượng được.

PM nên để ý về các quan hệ phụ thuộc của các đầu việc khi lên kế hoạch dự án:

Kế hoạch vòng lặp (Interation Planning):

Ta có thể hiểu giống như lên kê hoạch cho một Sprint, tập trung chi tiết vào quản lý các đầu việc hơn.

Kế hoạch này được lập trong các buổi họp Sprint Planning và sẽ quyết định cho team dev sẽ làm gì trong một Sprint, xác định được Sprint Goal là mục tiêu của 1 và báo cáo lại sô thời gian sử dụng/story point trong sprint trước đó .

Các rủi ro cần chú ý trong phát triển phần mềm:

Patterns trong Tiếng Anh được hiểu là các việc lặp lại, hoặc một quy trình làm gì đó được lặp lại nhiều lần.

Đối với các rủi ro thất bại trong dự án cũng thường xuất hiện nhiều lần nên được gọi là anti-pattern.

Các PM cần nhận thức được các anti-pattern thường xảy ra trong dự án để tránh các hậu quả nghiêm trong dẫn đến sự thất bại của dự án.

Sau đây là một số anti-pattern theo nhóm:

Anti pattern theo cá nhân trong quản lý:

Các rủi ro khác :

Bài tiếp theo: Bài 5: Giới thiệu về kỹ thuật đánh giá và số liệu thống kê để cải thiện phần mềm

Exit mobile version