Agile là gì? Những lý thuyết cơ bản về Agile trong phát triển phần mềm

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.

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.

Phương pháp Agile cho phép nhà phát triển hợp tác với khách hàng trong việc sản xuất phần mềm (Nguồn: Unsplash)
Phương pháp Agile cho phép nhà phát triển hợp tác với khách hàng trong việc sản xuất phần mềm (Nguồn: Unsplash)

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).

Phương pháp Agile ngày càng phổ biến hơn so với các phương pháp truyền thống (Nguồn: Unsplash).
Phương pháp Agile ngày càng phổ biến hơn so với các phương pháp truyền thống (Nguồn: Unsplash).

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.
Phương pháp Agile đề cao phần mềm chạy được hơn là tài liệu hướng dẫn (Nguồn: Unsplash).
Phương pháp Agile đề cao phần mềm chạy được hơn là tài liệu hướng dẫn (Nguồn: Unsplash).

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:

  1. Đề 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ị.
  2. Hoan nghênh các yêu cầu thay đổi, ngay cả trong giai đoạn muộn của dự án.
  3. Thường xuyên cung cấp phần mềm chạy được (hàng tuần thay vì hàng tháng).
  4. Nhà kinh doanh và kỹ sư phần mềm nên hợp tác chặt chẽ, hàng ngày.
  5. 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.
  6. Trao đổi mặt đối mặt là cách liên lạc tốt nhất (cùng địa điểm).
  7. Phần mềm chạy được là thước đo chính 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 là cần thiết – nghệ thuật của việc tối đa số việc không cần làm.
  11.  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.
  12.  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.

Nếu bạn quan tâm, hãy xem các vị trí đang tuyển dụng của Got It tại: bit.ly/gotit-hanoi và đọc thêm về quy trình tuyển dụng tại đây.

Son Phuoc
Son Phuoc
January 18, 2021
0
Share this post to:
Tags:
0 Comments
Inline Feedbacks
View all comments
Các bài viết liên quan
Agile là gì? Những lý thuyết cơ bản về Agile trong phát triển phần mềm

Agile là gì? Những lý thuyết cơ bản về Agile trong phát triển phần mềm

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ụcAgile là gì […]
Tester cần những kỹ năng gì? 10 kỹ năng của một Tester chuyên nghiệp

Tester cần những kỹ năng gì? 10 kỹ năng của một Tester chuyên nghiệp

Để kiểm thử phần mềm thành công, tester cần phải có một số kỹ năng nhất định. Hãy tham khảo bài viết này để biết tester cần những kỹ năng gì? Những kỹ năng cần thiết của một tester chuyên nghiệp nhé! Mục lụcTester là ai?Tester cần những kỹ năng gì?Kỹ năng về công nghệCác […]
Test Automation là gì? Các phương pháp Test Automation tốt nhất

Test Automation là gì? Các phương pháp Test Automation tốt nhất

Test Automation có vai trò quan trọng trong việc đảm bảo chất lượng của phần mềm. Vậy Test Automation là gì? Có bao nhiêu phương pháp Test Automation? Hãy cùng Got It khám phá trong bài viết này nhé! Mục lụcTest Automation là gì?Đặc điểm của Test Automation?Ưu điểm của Test AutomationHạn chế của Test […]
Cách cải thiện khả năng giao tiếp dành cho người làm IT

Cách cải thiện khả năng giao tiếp dành cho người làm IT

Kỹ năng giao tiếp cơ bản luôn là một trong những kỹ năng quan trọng nhất trong bất cứ ngành nghề nào. Tuy nhiên, làm sao để có thể cải thiện kỹ năng giao tiếp của bản thân là một câu hỏi khó đối với nhiều người, bởi nhiều yếu tố khác nhau như: môi […]
Những cuốn sách về lập trình tiếng Việt hay nhất

Những cuốn sách về lập trình tiếng Việt hay nhất

Trong nhiều năm đi làm, chúng tôi nhận được không ít lời than phiền của các kỹ sư về vấn đề thiếu hụt sách về lập trình tiếng Việt hay. Một sự thật hiển nhiên đó là tài liệu lập trình tiếng Anh đa dạng và hiện đại hơn rất nhiều so với tiếng Việt. […]
Test Report là gì? Cách thực hiện một Test Report hợp lý

Test Report là gì? Cách thực hiện một Test Report hợp lý

Test Report (Báo cáo Kiểm thử) là một phần cần thiết trong quá trình phát triển sản phẩm để đảm bảo sản phẩm của bạn đang được hoàn thiện một cách tốt nhất. Tuy nhiên, Test Report là gì? Làm thế nào để để thực hiện được một Test Report hoàn chỉnh? Hãy cùng đọc […]