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.

https://vn.got-it.ai/blog/wp-content/uploads/2021/04/1_QAG9RXQyyMAY7i9OYo84FA.png
Got It Vietnam
January 18, 2021
Share this post to:
Tags:
0 Comments
Inline Feedbacks
View all comments
Các bài viết liên quan
5 phương pháp Agile phổ biến trong phát triển phần mềm

5 phương pháp Agile phổ biến trong phát triển phần mềm

Phương pháp Agile đã dần trở thành một xu hướng mới trong việc phát triển phần mềm trên thế giới. Bài viết này sẽ giới thiệu cho các bạn 5 phương pháp Agile hiện phổ biến nhất hiện nay.   Mục lục1. Scrum2. Kaban3. Extreme Programming4. Lean Development5. Crystal 1. Scrum Trong số các framework […]
Thiết kế kiến trúc phần mềm và những vấn đề cơ bản

Thiết kế kiến trúc phần mềm và những vấn đề cơ bản

Thiết kế kiến trúc phần mềm là một trong những yêu cầu quan trọng đối với mỗi lập trình viên. Nếu bạn đang muốn tìm hiểu về lĩnh vực trên, thì hãy bắt đầu từ những vấn đề cơ bản sau đây. Mục lục1. Thiết kế kiến trúc phần mềm là gì?2. Một số quy […]
Tìm hiểu mô hình kiến trúc Microservice là gì

Tìm hiểu mô hình kiến trúc Microservice là gì

Cùng với sự phát triển của lĩnh vực lập trình phần mềm, Microservice là gì đang dần trở thành vấn đề được nhiều người quan tâm. Nếu bạn là một người đam mê công nghệ, thì đừng bỏ qua những thông tin liên quan đến kiểu mô hình kiến trúc này trong bài viết dưới […]
Mô hình thác nước là gì? Mô hình thác nước có vai trò gì?

Mô hình thác nước là gì? Mô hình thác nước có vai trò gì?

Trong quá trình tìm hiểu về phát triển phần mềm, chắc hẳn nhiều bạn kỹ sư công nghệ đã nghe tới nhiều thuật ngữ về mô hình thác nước (waterfall model). Tuy nhiên, nhiều bạn còn chưa hiểu rõ về mô hình này. Hãy cùng Got It Vietnam khám phá Mô hình thác nước là […]
Giới thiệu về quy trình phát triển phần mềm

Giới thiệu về quy trình phát triển phần mềm

Mỗi loại hệ thống khác nhau sẽ có một quy trình phát triển phần mềm khác nhau. Một quy trình tốt sẽ giúp tạo ra những sản phẩm chất lượng, đúng với yêu cầu mà khách hàng đặt ra. Vậy, có những loại quy trình nào? Chúng gồm những bước nào? Cùng Got It tìm […]
So sánh các mô hình phát triển phần mềm Thác nước và Scrum

So sánh các mô hình phát triển phần mềm Thác nước và Scrum

Hai trong số các mô hình phát triển phần mềm được dùng rộng rãi nhất là mô hình Thác nước và Scrum. Cùng so sánh các mô hình phát triển phần mềm này để xem chúng có những đặc điểm gì, ưu nhược điểm và ứng dụng thế nào vào từng loại dự án. Mục […]