Tìm hiểu về Agile (Phương pháp phát triển phần mềm linh hoạt)

Agile là gì?

Agile software development hay Agile programming được gọi là Phát triển phần mềm linh hoạt hoặc Lập trình linh hoạt là một phương thức thực hiện các dự án công nghệ phần mềm, phương thức này khuyến khích sự thay đổi khi phát triển dự án và đưa sản phẩm đến tay người dùng sao cho nhanh nhất.

Lịch sử

Các phương pháp phát triển phần mềm khác nhau gia tăng từ năm 1957. Phương pháp Phát triển phần mềm linh hoạt được nhiều người chấp nhận, nó có một số nội dung sau:

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, song 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.

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

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

Tổng quan

Có rất nhiều phương pháp cụ thể để phát triển nhanh. Nhất là đẩy mạnh tinh thần đồng đội, cộng tác, và khả năng thích ứng trong suốt quá trình phát triển các sản phẩm, chu kỳ. Có nhiều phương pháp phát triển phần mềm linh hoạt. Đa số các phương pháp này cố gắng cực tiểu hóa rủi ro bằng cách phát triển phần mềm trong các khung thời gian ngắn, gọi là các bước lặp, mỗi bước lặp thường được thực hiện trong khoảng từ 1 đến 4 tuần. Mỗi bước lặp tự nó giống như một dự án phần mềm thu nhỏ, bao gồm tất cả các tác vụ cần thiết để cho ra bản nâng cấp mi-ni của chức năng mới: lập kế hoạch, phân tích yêu cầuthiết kế, viết mã, kiểm thử, và viết tài liệu. Tuy một bước lặp có thể không bổ sung đủ chức năng để đảm bảo sự ra đời của sản phẩm cuối cùng, nhưng một dự án phần mềm linh hoạt nhằm hướng đến việc cho ra phần mềm mới khi kết thúc mỗi bước lặp. Trong nhiều trường hợp, người ta đạt được mục tiêu này. Điều này đặc biệt đúng đối với phần mềm ứng dụng web. Cuối mỗi bước lặp, bất kể kết quả như thế nào, nhóm phát triển phần mềm cũng nên đánh giá lại các ưu tiên của dự án.

Các phương pháp phát triển phần mềm linh hoạt nhấn mạnh tầm quan trọng của giao tiếp thời gian thực, giao tiếp trực tiếp mặt-đối-mặt được đánh giá cao hơn giao tiếp qua các tài liệu viết. Hầu hết các đội phát triển linh hoạt được tập trung trong một môi trường có điều kiện thuận lợi cho việc giao tiếp, và các đội này bao gồm cả các lập trình viên và các "khách hàng" của họ (khách hàng là người định nghĩa sản phẩm; họ có thể là các nhà quản lý sản phẩm, các nhà phân tích doanh nghiệp (business analyst), hoặc các khách hàng thực sự). Đội còn có thể bao gồm cả các chuyên gia test, thiết kế tương tác, những người viết tài liệu kỹ thuật, và các nhóm trưởng.

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 sự 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.

Vòng lặp phản hồi ngắn 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.

Triết lý

  • Thích nghi so với tiên đoán
  • Lặp đi lặp lại so với phương pháp Thác nước
  • Mã nguồn so với tài Liệu

Các phương pháp của Agile

Một số phương pháp phổ biến:

  • Adaptive software development (ASD)
  • Agile modeling
  • Agile Unified Process (AUP)
  • Crystal Clear methods
  • Disciplined agile delivery
  • Dynamic systems development method (DSDM)
  • Extreme programming (XP)
  • Feature-driven development (FDD)
  • Lean software development
  • Kanban
  • Scrum
  • Scrumban
  • RAD (Rapid Application Development)

Hiện tại, Tavico đang triển khai hệ thống TVC ERP dựa trên phương pháp triển khai phần mềm linh hoạt Agile. 

Nguồn bài viết: https://en.wikipedia.org/wiki/Agile_software_development


Tin tức khác

Ngày đăng 02-09-2022 Lượt xem: 137

Ngày nay có rất nhiều tùy chọn khung giao diện người dùng hiện có sẵn. Điều này giúp quá trình xây dựng website trở nên dễ dàng hơn. Một số khuôn khổ phổ biến hơn những khuôn khổ khác. React là một trong những framework như...

Ngày đăng 03-06-2022 Lượt xem: 182

Bất chấp những gián đoạn do đại dịch, năm 2021 ghi nhận sự phát triển của ngành công nghệ tài chính (Fintech). Theo báo cáo State of Fintech của CB Insights, quý 3 năm 2021 ghi nhận mức tăng 147%, mức tăng kỷ lục của ngành Fintech...

Ngày đăng 12-04-2022 Lượt xem: 295

AI là một thuật ngữ được sử dụng trong lĩnh vực công nghệ và nó đã trở nên quá quen thuộc với con người. Vậy AI được xây dựng như thế nào?

Ngày đăng 07-04-2022 Lượt xem: 355

BI là gì? BI đem lại lợi ích gì? Doanh nghiệp nào nên sử dụng BI? Làm thế nào để tìm được một đơn vị cung cấp dịch vụ tư vấn và triển khai BI uy tín. Bài viết này sẽ giúp bạn trả lời những câu hỏi này.

Ngày đăng 04-04-2022 Lượt xem: 271

Mặc dù nền kinh tế đang chịu ảnh hưởng bởi đạị dịch COVID -19, song theo các chuyên gia, sức nóng từ nhu cầu ứng dụng ERP vẫn rất lớn, đặc biệt từ các doanh nghiệp bất động sản.

hotline hotline Hotline
02873000093