0

Tổng quan về Agile - Phần 2

1. Quản lý dự án Agile là gì?

Quản lý dự án theo mô hình agile bao gồm các nhiệm vụ ngắn giúp tạo điều kiện cho các lộ trình phát triển sản phẩm nhanh hơn và phản hồi kỹ lưỡng, thường xuyên hơn từ khách hàng. Đổi lại, làm việc theo nhóm và cộng tác trở nên dễ dàng hơn vì có nhiều phản hồi về sản phẩm nhiều hơn.

Agile Manifesto - Tuyên ngôn Agile gồm 4 giá trị cốt lõi

  1. Cá nhân & tương tác hơn là quy trình & công cụ.
  2. Cung cấp phần mềm chạy tốt hơn là bộ tài liệu hoàn chỉnh.
  3. Cộng tác với khách hàng hơn là sự thương lượng trong hợp đồng.
  4. Thích ứng với thay đổi hơn là tuân thủ theo kế hoạch.

2. Phương pháp Agile Scrum

Scrum là một khuôn khổ Agile được sử dụng để thực hiện các ý tưởng đằng sau phát triển phần mềm Agile. Được tạo ra bởi Jeff Sutherland và Ken Schwaber (cũng là một phần của 13 cá nhân đã củng cố Tuyên ngôn Agile), nó bao gồm năm giá trị : cam kết, can đảm, tập trung, cởi mở và tôn trọng. Mục tiêu của nó là phát triển, cung cấp và duy trì các sản phẩm phức tạp thông qua sự hợp tác, trách nhiệm giải trình và tiến trình lặp đi lặp lại.

Điều phân biệt Scrum với các phương pháp luận Agile khác là các vai trò, sự kiện và tạo tác mà nó được tạo thành, mà nó sử dụng để vận hành.

1. Vai trò của nhóm Scrum

  • Product Owner : Chuyên gia sản phẩm đại diện cho các bên liên quan và là tiếng nói của khách hàng.
  • Development Team : Nhóm các chuyên gia cung cấp sản phẩm (nhà phát triển, lập trình viên, nhà thiết kế).
  • Scrum Master : Người lãnh đạo đầy tớ có tổ chức, người đảm bảo việc hiểu và thực hiện Scrum được tuân thủ.
  • Sprint : Các hộp thời gian lặp lại trong đó mục tiêu được hoàn thành. Khung thời gian không quá một tháng dương lịch và nhất quán trong suốt quá trình phát triển.
  • Sprint plan : Nơi toàn bộ nhóm Scrum tập hợp lại - vào đầu mỗi Sprint - để lập kế hoạch cho sprint sắp tới.
  • Scrum Daily : Cuộc họp đóng hộp với thời gian 15 phút được tổ chức vào cùng một thời điểm, mỗi ngày của Sprint, nơi thảo luận về những thành tựu của ngày hôm trước, cũng như những kỳ vọng cho phần sau.
  • Sprint Review: Một cuộc họp không chính thức được tổ chức vào cuối mỗi Sprint, trong đó nhóm Scrum trình bày Phần phát triển của họ với các bên liên quan và thảo luận về phản hồi.
  • Sprint Retrospective : Một cuộc họp trong đó nhóm Scrum phản ánh về tiến trình của Sprint trước và thiết lập các cải tiến cho Sprint tiếp theo.
  • Product Backlog : Do Product Owner quản lý, đây là nơi tất cả các yêu cầu cần thiết cho một sản phẩm khả thi được liệt kê theo thứ tự ưu tiên. Bao gồm các tính năng, chức năng, yêu cầu, cải tiến và bản sửa lỗi cho phép thực hiện bất kỳ thay đổi nào đối với sản phẩm trong các bản phát hành trong tương lai.
  • Sprint Backlog : Danh sách các nhiệm vụ và yêu cầu cần phải hoàn thành trong Sprint tiếp theo. Đôi khi đi kèm với bảng nhiệm vụ Scrum, được sử dụng để hình dung tiến trình của các nhiệm vụ trong Sprint hiện tại và bất kỳ thay đổi nào được thực hiện theo định dạng 'Việc cần làm, Việc làm và Việc hoàn thành'.

Kanban là một phương pháp trực quan được sử dụng phổ biến trong quản lý dự án Agile. Nó vẽ nên một bức tranh về quy trình quy trình làm việc, với mục đích xác định sớm bất kỳ điểm nghẽn nào trong quy trình để sản phẩm hoặc dịch vụ chất lượng cao hơn được cung cấp.

2. Sáu thực hành chung của nó là:

  1. Hình dung
  2. Hạn chế công việc đang thực hiện
  3. Quản lý luồng
  4. Đưa ra các chính sách rõ ràng
  5. Sử dụng vòng lặp phản hồi
  6. Tiến hóa hợp tác hoặc thử nghiệm
  • Kanban boad : Một công cụ quản lý trực quan dùng để hình dung quá trình phát triển. Nó có thể là vật lý (bảng trắng, ghi chú dính và điểm đánh dấu) hoặc ảo (như công cụ quản lý dự án trực tuyến của Zenkit ) và có thể được sử dụng cho năng suất cá nhân cũng như sử dụng chuyên nghiệp.
  • Thẻ Kanban : Thẻ mô tả một hạng mục công việc / nhiệm vụ trong quá trình làm việc. Được sử dụng để thông báo tiến độ với nhóm của bạn, nó đại diện cho thông tin như trạng thái, thời gian chu kỳ và thời hạn sắp xảy ra.

3. Lập trình cực đoan (XP)

Dựa trên năm giá trị của giao tiếp, đơn giản, phản hồi, dũng cảm và tôn trọng, XP là một khuôn khổ nhằm tạo ra chất lượng cuộc sống cao hơn cho nhóm phát triển, cũng như một sản phẩm chất lượng cao hơn, thông qua tập hợp các phương pháp kỹ thuật. Những thực hành này là:

  • Trò chơi lập kế hoạch
  • Bản phát hành nhỏ
  • Ẩn dụ
  • Thiết kế đơn giản
  • Thử nghiệm
  • Tái cấu trúc
  • Lập trình cặp
  • Sở hữu tập thể
  • Hội nhập liên tục
  • 40 giờ tuần
  • Khách hàng tại chỗ
  • Tiêu chuẩn mã hóa

Crystal bao gồm một họ các phương pháp Agile bao gồm Crystal Clear, Crystal Yellow và Crystal Orange. Các đặc điểm độc đáo của họ được hướng dẫn bởi các yếu tố như quy mô nhóm, mức độ quan trọng của hệ thống và các ưu tiên của dự án. Các thành phần chính bao gồm làm việc theo nhóm, giao tiếp và tính đơn giản, cũng như phản ánh để thường xuyên điều chỉnh và cải thiện quá trình phát triển. Khung Agile này chỉ ra cách mỗi dự án có thể yêu cầu một bộ chính sách, thực hành và quy trình phù hợp để đáp ứng các đặc điểm cụ thể của dự án.

4. Phương pháp phát triển hệ thống động (DSDM)

DSDM là một phương pháp Agile tập trung vào toàn bộ vòng đời của dự án. Nó được tạo ra vào năm 1994 sau khi những người sử dụng Phát triển ứng dụng nhanh (RAD) muốn quản trị và kỷ luật hơn đối với cách làm việc lặp đi lặp lại này. Dựa trên tám nguyên tắc , triết lý của nó là 'bất kỳ dự án nào cũng phải phù hợp với các mục tiêu chiến lược được xác định rõ ràng và tập trung vào việc cung cấp sớm các lợi ích thực sự cho doanh nghiệp.'

Nó khuyến khích việc sử dụng các phương pháp sau để có thể đưa ra hướng dẫn thực hành tốt nhất cho việc phân phối các dự án đúng hạn, trong ngân sách:

  • Hội thảo tạo điều kiện
  • Lập mô hình và phát triển lặp lại
  • Ưu tiên MoSCoW
  • Quyền anh thời gian

5. Phát triển theo hướng tính năng (FDD)

FDD là một quá trình phát triển phần mềm lặp đi lặp lại và gia tăng nhẹ. Với mục tiêu cung cấp phần mềm hữu hình, hoạt động kịp thời, đây là một phương pháp Agile bao gồm các giai đoạn công việc cụ thể, rất ngắn, được thực hiện riêng biệt cho từng tính năng.

Quá trình phát triển của nó được thiết lập dựa trên một loạt các phương pháp hay nhất với mục tiêu giá trị khách hàng. Tám phương pháp hay nhất là:

  1. Mô hình đối tượng miền
  2. Phát triển theo tính năng
  3. Quyền sở hữu thành phần / lớp
  4. Nhóm tính năng
  5. Kiểm tra
  6. Quản lý cấu hình
  7. Công trình thông thường
  8. Hiển thị tiến trình và kết quả

Luôn luôn hữu ích nếu bạn biết cách làm mọi thứ tốt nhất. Dưới đây là bảy điều bạn và nhóm của bạn nên làm khi triển khai bất kỳ loại phương pháp Agile nào:

6. Sự cộng tác của khách hàng

Một trong những giá trị cốt lõi được nêu trong Tuyên ngôn Agile, sự hợp tác với khách hàng là một phần quan trọng của phương pháp Agile. Thông qua giao tiếp nhất quán với nhóm phát triển, khách hàng phải luôn nhận thức được tiến độ và nỗ lực kết hợp sẽ tạo ra sản phẩm chất lượng cao hơn.

7. Câu chuyện của người dùng

Một công cụ được sử dụng để giải thích một tính năng phần mềm từ góc độ người dùng cuối, mục đích của Câu chuyện người dùng là tạo ra một mô tả đơn giản về một yêu cầu. Nó giúp hình dung loại người dùng sản phẩm, họ muốn gì và (các) lý do sử dụng sản phẩm. Định dạng Câu chuyện người dùng phổ biến được sử dụng là:

Với tư cách là [vai trò], tôi muốn [tính năng], bởi vì [lý do].

8. Hội nhập liên tục

Tích hợp liên tục (CI) liên quan đến việc giữ cho mã được cập nhật bằng cách tạo ra một bản dựng hệ thống sạch sẽ vài lần mỗi ngày. Với một quy tắc nêu rõ rằng các lập trình viên không bao giờ để lại bất kỳ thứ gì chưa tích hợp vào cuối ngày, nó cho phép cung cấp phiên bản sản phẩm phù hợp để phát hành bất cứ lúc nào. Những gì CI tìm cách làm là giảm thiểu thời gian và nỗ lực cần thiết cho mỗi lần tích hợp.

9. Kiểm tra tự động

Thực hiện các thử nghiệm tự động giúp nhóm được thông báo về những thay đổi mã nào có thể chấp nhận được và liệu một chức năng có đang hoạt động theo kế hoạch hay không. Kiểm tra hồi quy được chạy tự động trước khi công việc bắt đầu.

10. Lập trình cặp

Lập trình theo cặp nhằm mục đích nâng cao các thiết kế tốt hơn, ít lỗi hơn và chia sẻ kiến ​​thức trong nhóm phát triển. Một trong những phương pháp lập trình viên Agile ít được chấp nhận nhất, nó liên quan đến việc một lập trình viên 'lái xe' (vận hành bàn phím), trong khi người kia 'điều hướng' (xem, học hỏi, cung cấp phản hồi). Các vai trò có thể được luân chuyển.

11. Phát triển theo hướng thử nghiệm (TDD)

TDD hướng đến việc nâng cao các thiết kế đơn giản và truyền cảm hứng cho sự tự tin. Thay vì một quy trình mà phần mềm được thêm vào mà không được chứng minh là đáp ứng các yêu cầu, thì đó là một phương pháp dựa trên sự lặp lại của một chu kỳ phát triển rất ngắn, trong đó các yêu cầu được chuyển thành các trường hợp thử nghiệm và sau đó phần mềm được cải tiến để vượt qua các thử nghiệm mới.

12. Biểu đồ Burndown

Biểu đồ kết thúc là một biểu đồ đồ họa của công việc còn lại để làm so với thời gian bạn phải làm. Sử dụng một trong những kế hoạch quản lý dự án Agile cho phép bạn dự đoán khi nào tất cả công việc sẽ được hoàn thành. Một biểu đồ chi tiết cũng sẽ bao gồm số lượng Câu chuyện của người dùng trên mỗi đơn vị thời gian.

Phương pháp Agile là một quy trình hiệu quả cho các nhóm đang tìm kiếm một cách tiếp cận linh hoạt để phát triển sản phẩm. Không còn dành riêng cho ngành công nghiệp phần mềm, nó có thể được triển khai cho bất kỳ liên doanh kinh doanh nào yêu cầu một kế hoạch tấn công phi tuyến tính cũng cần coi trọng sự hợp tác của khách hàng, làm việc theo nhóm hiệu quả , những thay đổi đáp ứng và tất nhiên, kết quả chất lượng.

Bài viết được tham khảo từ nhiều nguồn như: https://mthi.vn/10986/feature-driven-development/https://www.mountaingoatsoftware.com/agile/scrum/resources/overview


All Rights Reserved

Viblo
Let's register a Viblo Account to get more interesting posts.