Những năm gần đây, thuật ngữ Agile nhanh chóng trở nên quen thuộc với các nhà sản xuất phần mềm. Nhưng chính xác Agile là gì? Bài viết này sẽ giúp bạn tìm hiểu một số lý thuyết cơ bản về Agile, đặc biệt trong lĩnh vực phát triển phần mềm.
Mục lục
Agile là gì ?
Agile không phải là tên riêng của một cá nhân hay tập thể nào đó. Nó là tên gọi của một phương pháp phát triển phần mềm linh hoạt. Mục đích của phương pháp này là đưa sản phẩm đến tay người dùng càng sớm càng tốt. Nói cách khác, Agile là một phương pháp mới dùng để quản lý toàn bộ quá trình phát triển phần mềm.
Phương pháp Agile có nhiều điểm hoàn toàn khác so với phương pháp phát triển phần mềm truyền thống là Waterfall (Thác nước). Nó cho phép các nhà phát triển, thiết kế phần mềm, chuyên gia kinh tế và các bên liên quan cùng làm việc với nhau.
Lịch sử của phương pháp Agile
Phương pháp Agile đã sớm có mặt trong lịch sử ngành công nghệ thông tin, từ năm 1957. Đó là khi các nhà khoa học máy tính là John von Neumann, Gerald Weinberg, Bernie Dimsdale và Herb Jacobs sử dụng một kỹ thuật mới để phát triển phần mềm mà họ đang xây dựng cho hai hãng Motorola và IBM. Tại thời điểm đó, chính bản thân họ cũng không hề biết phương pháp mình đang dùng là Agile. Tuy nhiên, cả hai nhận ra điều mình đang làm khác với các phương pháp quen thuộc ở nhiều mặt.
Thuật ngữ Agile trong thời hiện đại chỉ thực sự được phổ biến vào năm 2001. Nó bắt nguồn từ một nhóm gồm 17 kỹ sư phần mềm. Trong đó có nhiều gương mặt nổi tiếng như Kent Beck (người phát triển JUnit), Dave Thomas (tác giả cuốn The Pragmatic Programmer), Ward Cunningham,… Họ hẹn gặp nhau tại Utah (Mỹ) để cùng thảo luận về một phương pháp quản lý phần mềm mới.
Tất cả 17 kỹ sư đều có tầm nhìn rõ ràng về mục đích của mình. Họ muốn tạo ra một phương pháp nhẹ nhàng, linh hoạt hơn và định hướng nhóm nhiều hơn. Kết quả là, họ đã cho ra đời Manifesto for Agile Software Development (Bản tuyên ngôn về phá triển phần mềm linh hoạt, gọi tắt là Tuyên ngôn Agile).
Nội dung Tuyên ngôn Agile
Bản tuyên ngôn này bao gồm 4 nội dung cơ bản là:
- Cá nhân và tương tác thay vì công cụ và quy trình. Nghĩa là các lập trình viên nên có sự trao đổi, học tập cùng phát triển. Tuyên ngôn Agile không chú trọng đến các công cụ và quy trình bằng con người.
- Làm ra phần mềm thay vì các tài liệu hướng dẫn. Một phần mềm thành công là khi nó hoạt động hiệu quả, đạt được mục đích sử dụng. Phần mềm làm ra nhưng không chạy được cũng sẽ trở nên vô nghĩa. Chúng ta không nên tập trung quá nhiều vào các tài liệu hướng dẫn, khi mà phần mềm chưa tốt.
- Cộng tác với khách hàng thay vì chỉ đàm phán hợp đồng. Theo Agile, chúng ta nên đưa khách hàng vào quy trình phát triển chung của dự án. Nhà phát triển không nên chú trọng vào đàm phán hợp đồng, mà phải biết hợp tác với khách hàng. Kết quả của điều đó sẽ là một sản phẩm hoàn hảo, phù hợp với nhu cầu khách hàng.
- Đáp ứng với những thay đổi thay vì chỉ tuân theo một kế hoạch. Tuyên ngôn Agile chú trọng vào sự linh hoạt. Dự án không nên bám vào một kế hoạch từ đầu, mà phải linh hoạt thích ứng từng thay đổi. Nếu khách hàng muốn thay đổi bất kỳ điểm gì của phần mềm, đội ngũ phát triển đều phải đáp ứng được.
Những nguyên tắc của Tuyên ngôn Agile
Tuyên ngôn Agile được viết dựa trên 12 nguyên tắc như sau:
- Đề cao sự hài lòng của khách hàng bằng cách liên tục và sớm chuyển giao cho họ những phần mềm có giá trị.
- Hoan nghênh các yêu cầu thay đổi, ngay cả trong giai đoạn muộn của dự án.
- Thường xuyên cung cấp phần mềm chạy được (hàng tuần thay vì hàng tháng).
- Nhà kinh doanh và kỹ sư phần mềm nên hợp tác chặt chẽ, hàng ngày.
- Dự án phần mềm được xây dựng bởi những cá nhân có động lực và đáng tin cậy.
- Trao đổi mặt đối mặt là cách liên lạc tốt nhất (cùng địa điểm).
- Phần mềm chạy được là thước đo chính của tiến độ.
- Phát triển bền vững, có thể duy trì một tốc độ không đổi.
- Liên tục chú ý đến các kỹ thuật mới và thiết kế tốt.
- Đơn giản là cần thiết – nghệ thuật của việc tối đa số việc không cần làm.
- Những kiến trúc, yêu cầu và thiết kế tốt nhất được tạo nên từ những nhóm tự tổ chức tốt.
- Thường xuyên suy nghĩ về việc làm sao để nhóm làm việc hiệu quả hơn, và điều chỉnh cho phù hợp.
Tóm lại, Agile là một trong số những phương pháp quản lý dự án được ưa chuộng hiện nay. Hy vọng bài viết này sẽ giúp các bạn hiểu được Agile là gì, và có cái nhìn rõ ràng hơn về phương pháp này.
Tham khảo: Wikipedia.