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

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

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:

  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://d1iv5z3ivlqga1.cloudfront.net/wp-content/uploads/2021/04/29235048/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
Hướng dẫn cách sử dụng Visual Studio Code căn bản

Hướng dẫn cách sử dụng Visual Studio Code căn bản

Nhanh, gọn nhẹ, đa năng và hoạt động mạnh mẽ trên đa nền tảng là những ưu điểm nổi trội của trình soạn thảo VS Code. Cách sử dụng Visual Studio Code cơ bản sẽ được hướng dẫn cụ thể trong bài viết dưới đây. Mục lụcVisual Studio Code là gì và dành cho ai?Phiên […]
Visual Studio Code là gì? Lợi thế từ việc sử dụng Visual Studio Code

Visual Studio Code là gì? Lợi thế từ việc sử dụng Visual Studio Code

Visual Studio Code là gì mà khiến cộng đồng IT Việt yêu thích đến vậy? Trình soạn thảo code này sẽ giúp bạn xây dựng ứng dụng web và cloud như thế nào? Hãy cùng Got It tìm hiểu Visual Studio Code ngay hôm nay nhé! Mục lục1. Visual Studio Code là gì?2. Phân biệt […]
Hướng dẫn cách format code Visual Studio Code với Prettier

Hướng dẫn cách format code Visual Studio Code với Prettier

Việc định dạng mã sao cho thống nhất là một thử thách khó khăn đối với đa phần lập trình viên. Prettier chính là công cụ format code của Visual Studio Code giúp bạn duy trì sự nhất quán trong toàn bộ cơ sở mã của nhóm. Cùng tìm hiểu cách dùng Prettier để format […]
Cách sử dụng phím tắt sắp xếp code trong Visual Studio Code

Cách sử dụng phím tắt sắp xếp code trong Visual Studio Code

Chỉ với một vài thao tác đơn giản với phím tắt sắp xếp code trong Visual Studio Code, bạn đã có thể tạo ra một đoạn mã đẹp mắt, ngay ngắn và dễ đọc. Cùng tìm hiểu về cách sử dụng phím tắt này và khám phá thêm một vài phím tắt hữu ích khách […]
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 […]