Trang chủ » AGILE LÀ GÌ? GIỚI THIỆU TỔNG QUAN VỀ AGILE

AGILE LÀ GÌ? GIỚI THIỆU TỔNG QUAN VỀ AGILE

Đinh Thao 26 Th8, 2021

AGILE LÀ GÌ

AGILE LÀ GÌ

AGILE LÀ GÌ

Agile (viết tắt của Agile Software Development) có nghĩa là phương thức phát triển phần mềm linh hoạt, được ứng dụng trong quy trình phát triển phần mềm với mục tiêu là đưa sản phẩm đến tay người dùng càng nhanh càng tốt.

phương pháp phát triển phần mềm đã có từ năm 1957, nhưng tới năm 2001, bản tuyên ngôn của Agile “Tuyên bố chính thức 4 giá trị quan trọng và 12 nguyên tắc phía sau Tuyên ngôn Agile để giúp các nhà phát triển có được gợi ý trong thực hành và vận dụng các phương pháp Agile trong phát triển phần mềm.

Giờ đây, Agile còn thu hút các CEO sử dụng chung trong quản lý dự án phương pháp này phát triển phần mềm để thay đổi cách thức làm việc, quản lí, sản xuất ở các ngành khác như sản xuất, dịch vụ, sales, marketing, giáo dục… và trở thành một phương thức quản lý dự án phổ biến nhất hiện nay.

Tổng quan về tuyên ngôn Agile:

Tổng quan về tuyên ngôn Agile

Tổng quan về tuyên ngôn Agile

4 nguyên tắc phải tuân thủ khi áp dụng phương pháp Agile:

Cá nhân và sự tương hỗ quan trọng hơn quy trình và công cụ: các thành viên trong nhóm phải tương tác và hỗ trợ nhau sẽ mang đến thành công cho dự án.

Phần mềm chạy tốt hơn là tài liệu đầy đủ: Thu thập toàn bộ nhu cầu của khách hàng để xây dựng, hoàn thiện phần mềm tối ưu hóa nhu cầu của khách hàng.

Cộng tác với khách hàng quan trọng hơn đàm phán hợp đồng: Hiểu được khách hàng cần gì để tư vấn và điều chỉnh sản phẩm trước khi đưa ra các điều khoản trong hợp đồng.

Phản hồi thay đổi hơn là bám sát kế hoạch: Agile khuyến khích thích nghi với sự thay đổi, đó có thể là thay đổi về công nghệ, nhân sự, deadline,…

12 nguyên lý thực hiện trong Agile:

Ưu tiên cao nhất là thỏa mãn khách hàng thông qua việc chuyển giao sớm và liên tục các phần mềm có giá trị.

Tiếp nhận các yêu cầu thay đổi, thậm chí là rất muộn có thể là giai đoạn cuối của quá trình phát triển.

Bàn giao phần mềm chạy được cho khách hàng một cách thường xuyên.

Nhà kinh doanh và các kỹ sư phần mềm cần làm việc cùng nhau trong suốt dự án để tối ưu hóa chức năng cũng như việc sử dụng phần mềm.

Xây dựng dự án xung quanh các cá nhân có động lực. Cung cấp sự hỗ trợ cần thiết, môi trường làm việc và niềm tin để hoàn thành công việc.

Trao đổi trực tiếp là cách truyền đạt thông tin hiệu quả nhất tránh việc thông tin bị tam sao thất bản.

Phần mềm chạy tốt là thước đo chính của tiến độ.

Phát triển liên tục và bền vững.

Cải tiến sự linh hoạt bằng cách quan tâm đến kỹ thuật và thiết kế.

Nghệ thuật tối đa hóa lượng công việc chưa xong – Sự đơn giản là cần thiết.

Các nhóm tự tổ chức để đưa ra kiến trúc tốt nhất, yêu cầu tốt nhất, và thiết kế tốt nhất.

Bộ phận sản xuất, thiết kế phần mềm phải thường xuyên tiếp nhận thông tin, thử nghiệm, đánh giá để phần mềm trở nên hiệu quả hơn. Sau đó họ sẽ điều chỉnh và thay đổi cho phù hợp thích ứng thường xuyên với những thay đổi.

Đặc trưng cơ bản của Agile:

Tính lặp (Iterative): Dự án sẽ được thực hiện trong các phân đoạn lặp đi lặp lại (Iteration hoặc Sprint), thường có khung thời gian ngắn (từ 1-4 tuần). Trong mỗi phân đoạn, nhóm phát triển thực hiện việc lập kế hoạch, phân tích yêu cầu, thiết kế, triển khai, kiểm thử để cho ra các phần nhỏ của sản phẩm.

Tính tăng trưởng và tiến hóa (Incremental & Evolutionary): Cuối các phân đoạn, nhóm cho ra các phần nhỏ của sản phẩm cuối cùng, có khả năng chạy tốt, được kiểm thử cẩn thận xem sản phẩm đó có tốt để sử dụng. Theo thời gian, phân đoạn này tiếp nối phân đoạn kia, các phần chạy được này sẽ được tích lũy, lớn dần lên cho tới khi toàn bộ yêu cầu của khách hàng được thỏa mãn. 

Tính thích nghi (adaptive): Do các phân đoạn chỉ kéo dài trong một khoảng thời gian ngắn nên các yêu cầu thay đổi công nghệ, thay đổi định hướng về mục tiêu v.v.) đều có thể được đáp ứng theo cách thích hợp thích nghi với doanh nghiệp và thị trường.

Nhóm tự tổ chức và liên chức năng: Các cấu trúc nhóm này tự phân công công việc mà không dựa trên các mô tả cứng về chức danh hay làm việc dựa trên một sự phân cấp rõ ràng trong tổ chức. Nhóm tự tổ chức đã đủ các kĩ năng cần thiết để có thể được trao quyền tự ra quyết định, tự quản lí và tổ chức lấy công việc của chính mình để đạt được hiệu quả cao nhất.

Quản lý tiến trình thực nghiệm (Empirical Process Control): Các nhóm Agile ra các quyết định dựa trên các dữ liệu thực tiễn. Agile rút ngắn vòng phản hồi để dễ dàng thích nghi và gia tăng tính linh hoạt nhờ đó có thể kiểm soát được tiến trình, và nâng cao năng suất lao động.

Giao tiếp trực diện (face-to-face communication): Agile không phản đối việc tài liệu hóa, nhưng đánh giá cao hơn việc giao tiếp trực diện. Agile khuyến khích nhóm phát triển trực tiếp trao đổi với khách hàng, các thành viên trong nhóm, để nắm bắt được nhu cầu khách hàng, trao đổi và thống nhất với nhau về thiết kế của hệ thống và cùng nhau triển khai thành các chức năng theo yêu cầu.

Phát triển dựa trên giá trị (value-based development): Dựa trên nguyên tắc “sản phẩm chạy tốt chính là thước đo của tiến độ”. Nhóm Agile thường cộng tác trực tiếp và thường xuyên với khách hàng để biết yêu cầu nào có độ ưu tiên cao hơn, mang lại giá trị cao nhất cho dự án.

các phương pháp thực hành Agile:

Scrum: 

Theo Tài liệu Hướng dẫn Scrum (The Scrum Guide) là một khung làm việc (framework) để phát triển bền vững các sản phẩm phức tạp. 

Có thể nói Scrum là một trong những phương pháp Agile quan trọng nhất sử dụng cơ chế lặp (iterative) và tăng trưởng (Incremental) để tối ưu hóa hiệu quả cũng như kiểm soát rủi ro.

Kanban: 

Là một phương pháp Agile dựa trên Phương thức Sản xuất Toyota với bốn nguyên lý

Trực quan hóa công việc, giới hạn công việc đang làm, tập trung vào luồng làm việc, cải tiến liên tục. Mô hình Kanban phù hợp cho việc hỗ trợ sản xuất trong quá trình làm việc.  

Scrumban: 

Là một phương pháp được Corey Ladas giới thiệu vào năm 2009. Scrumban kết hợp được những ưu điểm của Scrum và Kanban để cho phép nhóm liên tục cải tiến quy trình và khả năng xử lý công việc.

Lean Software Development (LSD):

 Phát triển phần mềm tinh gọn là hình thức áp dụng Tư duy tinh gọn (Lean Thinking) và các nguyên lý đặc trưng của Tinh gọn (xuất phát từ ngành sản xuất ô tô – Lean Manufacturing) cho lĩnh vực phát triển phần mềm.

Bảy nguyên lý diễn giải tư duy Tinh gọn bao gồm: Loại bỏ lãng phí, Khuếch trương việc học, Quyết định càng muộn càng tốt, Chuyển giao càng nhanh càng tốt, Trao quyền cho nhóm, Tạo ra tính toàn vẹn tự thân, Thấy toàn cảnh là linh hồn cho quá trình phát triển phần mềm tinh gọn. 

XP (Extreme Programming) – Hay lập trình cực hạn: 

XP hướng đến việc nâng cao chất lượng phần mềm và khả năng đáp ứng với thay đổi yêu cầu người dùng. 

XP đưa ra các bản phát hành thường xuyên thông qua các chu trình phát triển ngắn. Một số các thực hành của XP như:  Lập trình cặp (Pair programming), Tái cấu trúc mã nguồn (Refactoring), Kiểm thử đơn vị (Unit Testing), Tích hợp liên tục (Continuous Integration), Các bản phát hành nhỏ (Small Release)…. 

Trong số các phương pháp Agile, Scrum thuộc loại phổ biến nhất bởi sự hiệu quả và tối ưu của nó. Theo khảo sát Scrum và các phương pháp lai với Scrum như Scrumban, Scrum và XP chiếm gần ¾ mức độ phổ biến. Đó là lý do rất nhiều nhóm bắt đầu quá trình tiếp nhận Agile với việc sử dụng Scrum.

Agile là một trong 6 những phương pháp về quản lý dự án được sử dụng phổ biến nhất hiện nay. Việc sử dụng phương pháp này làm giảm tải được sự cồng kềnh trong bộ máy nhân sự cũng như đơn giản hơn trong việc quản lý.

Đinh Thao

Đinh Thao

Tôi là Đinh Thị Thao, hiện đang là giáo viên giảng dạy tại trung tâm testerpro và cũng là tác giả chính các bài blog liên quan đến tester, ngành công nghệ thông tin tại trên trang testerpro.vn. Với 5 năm kinh nghiệm làm việc, giảng dậy tại trung tâm thì tôi hy vọng sẽ có thể truyền tải cho các bạn những kiến thức tốt nhất của tester giúp các bạn phục vụ trong công việc của bản thân.

Từ khóa:
Bình luận
Icon Phone Icon Zalo