12 nguyên tắc của phát triển phần mềm linh hoạt | TIGO Software Solutions

Các nguyên tắc của Phát triển phần mềm linh hoạt

YjFAjzq.png (700×353)

Phát triển phần mềm linh hoạt dựa trên mười hai nguyên tắc:

  1. Sự hài lòng của khách hàng được đặt lên hàng đầu và liên tục chuyển giao phần mềm có giá trị cho họ
  2. Chào mừng các yêu cầu thay đổi, ngay cả trong giai đoạn muộn của dự án
  3. Phần mềm chạy được, được giao thường xuyên (hàng tuần chứ không nên là hàng tháng)
  4. Người làm bên mảng kinh doanh và người phát triển phần mềm nên gần gũi, hợp tác hàng ngày
  5. Dự án phần mềm được xây dựng bởi các cá nhân có động lực, những người đáng tin cậy
  6. Mặt đối mặt khi nói chuyện là cách tốt nhất để liên lạc (làm việc cùng nơi)
  7. Phần mềm chạy được là thước đo của tiến độ
  8. Phát triển bền vững, có thể duy trì một tốc độ không đổi
  9. Liên tục chú ý đến các kỹ thuật mới và thiết kế tốt
  10. Đơn giản hóa – nghệ thuật của việc tối đa hóa số việc không cần phải làm – là điều cần thiết
  11. Kiến trúc, yêu cầu và thiết kế tốt tạo nên nhóm tự tổ chức tốt
  12. Thường xuyên phản ánh việc làm thế nào để nhóm làm việc hiệu quả hơn và điều chỉnh cho phù hợp

Đơn giản hóa là gì? Đó là làm thế nào để tối đa hóa số việc không cần phải làm

Bản tuyên ngôn của Phát triển phần mềm linh hoạt

Trong tháng 2 năm 2001, 17 nhà phát triển phần mềm đã gặp nhau ở một khu nghỉ mát tại bang Utah để thảo luận phương pháp phát triển phần mềm. Họ đưa ra Bản tuyên ngôn sau cho Phát triển phần mềm linh hoạt:

  • Cá nhân và sự tương tác hơn là quy trình và các công cụ
  • Phần mềm chạy được hơn là tài liệu đầy đủ.
  • Hợp tác với khách hàng hơn là đàm phán dựa theo hợp đồng
  • Đáp ứng với các thay đổi hơn là làm theo kế hoạch đã định
     

Mặc dù vế thứ hai có vai trò quan trọng, người ta đánh giá vế thứ nhất cao hơn để thành công.

Cá nhân và sự tương tác: Tự tổ chức và động lực rất quan trọng, cũng như sự tương tác để làm việc cùng vị trí và theo cặp lập trình.

Phần mềm có thể chạy được: Phần mềm chạy được sẽ hữu ích hơn hơn là chỉ trình bày tài liệu cho khách hàng xem ở cuộc họp.

Khách hàng hợp tác: Không thể thu thập tất cả yêu cầu của khách hàng vào giai đoạn đầu của chu kỳ phát triển phần mềm, do đó liên tục cộng tác để lấy thông tin từ khách hàng hoặc các bên tham gia là rất quan trọng.

Đáp ứng thay đổi: Phương pháp Linh hoạt tập trung vào việc phản ứng nhanh chóng với sự thay đổi và không ngừng phát triển.

Tài liệu: Các tài liệu sống (living documents) nên chiếm tỷ lệ lớn so với tài liệu chết (thí dụ specs). Tài liệu sống đi xuyên suốt vòng đời dự án và được cập nhật liên tục hàng ngày, trong khi tài liệu chết dùng cho chốt hợp đồng hoặc ràng buộc chặt giữa các bên.

Phương pháp pháp triển linh hoạt tập trung vào các vòng đời ngắn và có tính lặp lại chu kỳ

Các phương pháp phát triển phần mềm linh hoạt còn nhấn mạnh khả năng hoạt động của phần mềm như là phương thức chính yếu để đánh giá tiến độ. Cùng với việc đánh giá cao giao tiếp trực tiếp, các phương pháp tạo ra rất ít tài liệu khi so sánh với các phương pháp khác. Điều này dẫn đến phê phán rằng các phương pháp phát triển linh hoạt không có tính kỷ luật.

Lặp đi lặp lại, gia tăng và tiến hóa (Iterative, incremental và evolutionary)

Dự án thường sẽ chia thành các giai đoạn nhỏ (timebox), có đầy đủ các bước làm việc (ra kế hoạch, phân tích, thiết kế, lập trình, kiểm thử). Chúng được lặp đi lặp lại trong suốt dự án (chu kỳ từ 2-4 tuần).

Phần mềm chạy được là thước đo của tiến độ làm việc.

Hiệu quả và đối thoại mặt-đối-mặt

Người ta khuyến khích sự giao tiếp trực tiếp giữa các bên liên quan trong phương pháp Phát triển phần mềm linh hoạt.

Rất ngắn vòng lặp phản hồi và chu kỳ thích ứng

Một đặc điểm nổi bật của Phát triển phần mềm linh hoạt là các buổi “trao đổi hằng ngày” (daily stand-up). Trong khoảng thời gian ngắn (chẳng hạn 15 phút), các thành viên của nhóm sẽ cho biết mình đã làm được gì và sẽ làm gì hôm nay. Khó khăn cũng được nêu ra nếu có.

Tập trung vào chất lượng

Các công cụ như Tích hợp liên tục, kiểm thử tự động,… được áp dụng để tăng chất lượng của dự án.