admin01
74
19-04-2024
Lean hay Agile đều là những methods linh hoạt, nhanh chóng và tập trung vào người dùng cuối, giúp các team develop và sản xuất các sản phẩm, dịch vụ chất lượng cao một cách nhanh chóng và bền vững. Cả hai phương pháp đều có mục tiêu cung cấp cho khách hàng một sản phẩm chất lượng cao một cách nhanh chóng. Hãy tìm điểm giống và khác nhau của Agile và Lean cùng Cole trong bài viết dưới đây.
Lean là một phương pháp để cắt giảm những dư thừa trong quá trình development của bạn. Đây là phương pháp quản lý nhằm loại bỏ lãng phí thời gian và nguồn lực thông qua phân tích có hệ thống các quy trình và dòng chảy giá trị.
Lean có thể đã bắt nguồn từ Toyota Production System, được hình thành từ những năm 1940 đến 1970. Hệ thống Toyota tập trung vào các khái niệm về jidoka (“tự động hóa với sự tiếp xúc của con người” nhằm ngăn chặn các sản phẩm bị lỗi) và các quy trình “just-in-time” (chỉ sản xuất những gì cần thiết cho bước tiếp theo trong một quy trình liên tục). Các khái niệm cốt lõi khác bao gồm giảm thiểu chất thải, kaizen (cải tiến liên tục), tôn trọng và trao quyền cho mọi người (đặc biệt là công nhân dây chuyền).
Cách tiếp cận của Toyota được xây dựng dựa trên các mô hình khác về sản xuất và quản lý. Và nó đã truyền cảm hứng cho nhiều dây truyền khác. Khi công nghệ phát triển nhanh chóng vào cuối những năm 1980, nhiều developers bắt đầu xem xét hệ thống này để lấy cảm hứng về cách cải thiện các phương thức cung cấp phần mềm lỗi thời.
Năm 1996 James P. Womack xuất bản cuốn sách “Lean Thinking” – Tư duy tinh gọn, trong đó bao gồm các nghiên cứu điển hình từ nhiều ngành công nghiệp. Chỉ sáu năm sau, Mary và Tom Poppendieck đã tận dụng sản xuất tinh gọn trong cuốn sách “Lean Software Development: An Agile Toolkit”, trong đó nêu ra cách các development team có thể áp dụng các phương pháp này để xây dựng phần mềm.
Vấn đề nằm ở chỗ: hãy khắc phục những nút thắt cổ chai. Trong mô hình sản xuất tinh gọn ban đầu, nút thắt cổ chai có thể được giải quyết bằng cách thiết lập hoạt động bảo trì phòng ngừa định kỳ cho một thiết bị. Trong quá trình phát triển phần mềm tinh gọn, nút thắt cổ chai có nhiều khả năng xảy ra hơn với việc quản lý nhiệm vụ và chuyển giao giữa các nhóm – development team của bạn hoàn thành 10 tính năng, nhưng team đảm bảo chất lượng (QA) của bạn chỉ có khả năng xem xét hai tính năng. Thực hành tinh gọn giúp bạn phát hiện nút thắt này để bạn có thể điều chỉnh khối lượng công việc và năng lực của nhóm.
Agile hình thành vào cuối những năm 1990. Đây là một phản hồi trực tiếp đối với các phương pháp phát triển phần mềm single-pass trong đó các yêu cầu được xác định khi bắt đầu quá trình phát triển và các dự án được hoàn thành theo từng giai đoạn tuần tự. Khi các công nghệ mới tăng tốc độ phát triển phần mềm, các quy trình làm việc cứng nhắc như thế này đã trở thành rào cản cho sự đổi mới.
Năm 2001, một nhóm những người thực hành phương pháp Agile đã cùng nhau tham dự một hội nghị thượng đỉnh ở Utah. Mỗi người đã phát triển các phương pháp riêng của mình như Extreme Programming (XP), Crystal và scrum. Nhưng họ quan tâm đến việc hướng đến nhóm phát triển phần mềm có tư duy tiến bộ, những người muốn có cách tốt hơn để phát triển sản phẩm – đây là khởi nguồn của Agile Manifesto.
Agile Manifesto đã châm ngòi cho một cuộc cách mạng đã được ấp ủ trong nhiều năm. Cách tiếp cận linh hoạt hứa hẹn chu kỳ phát hành nhanh hơn, teamwork mượt mà và tăng sự hài lòng của khách hàng. Nhưng khi các khái niệm Agile trở nên phổ biến, bản chất dễ hiểu của thuật ngữ này đã dẫn đến một số nhầm lẫn. “Going Agile” có yêu cầu phải tuân theo một phương pháp quy trình công việc nhất định không?
Manifesto outlines phác thảo một đặc tính phát triển phần mềm hơn là các bước quy định, nên có xu hướng tự nhiên là tìm kiếm các frameworks và quy trình đã xác định. Điều này đặc biệt đúng trong các tổ chức doanh nghiệp phức tạp muốn hưởng lợi từ triển vọng của Agile nhưng phải đối mặt với những tác động thực tế về cách triển khai các nguyên tắc trên quy mô lớn. Việc tách biệt niềm tin khỏi chiến thuật có thể là một thách thức.
Agile và Lean có chung mục tiêu cơ bản – giúp các nhóm phát triển cung cấp những gì khách hàng mong muốn. Có những điểm tương đồng trong xây dựng nền tảng và những khác biệt trong việc thực hiện. Lean management tổ chức lại các nhóm trước đây làm việc riêng biệt (có nguy cơ chậm tiến độ) để hướng tới hiệu quả cao hơn với tư cách là một tập thể. Agile khuyến khích các nhóm đa chức năng hướng tới cùng một mục đích.
Cả Agile và Lean đều ưu tiên cung cấp phần mềm hoạt động nhanh chóng. Liên tục cải tiến và các quy trình lấy con người làm điểm xuất phát luôn là điểm nổi bật của mỗi phương pháp tiếp cận.
Các điểm giao nhau của Lean và Agile | |
Fast delivery |
|
Continuous improvement |
|
Teamwork |
|
Điểm giao nhau giữa Agile và Lean khiến nhiều team tìm kiếm một cách tiếp cận kết hợp. Ví dụ: Scaled Agile Framework (SAFe®) mang lại các giá trị của cả agile & lean và áp dụng chúng cho các tổ chức lớn. Các team SAFe® có thể sử dụng kanban (một hệ thống tổ chức quy trình làm việc tinh gọn) để tạo ra các hệ thống ở các cấp độ khác nhau của tổ chức, đồng thời hỗ trợ các phương pháp tiếp cận linh hoạt thông qua tăng trưởng chương trình và scrum ở cấp độ nhóm.
Sự khác biệt chính giữa Agile và Lean là một bên là triết lý và một bên là phương pháp luận. Nhưng hãy kiểm tra kỹ hơn và bạn sẽ tìm thấy nhiều sự khác biệt về sắc thái hơn trong sự ưu tiên của mỗi loại. Agile tập trung vào người dùng, quản lý sự không chắc chắn và cung cấp phần mềm hoạt động được. Lean tập trung vào việc loại bỏ lãng phí, quản lý quy trình và mang lại giá trị. Những khác biệt này cũng tiết lộ những quan niệm sai lầm phổ biến về những tiêu cực tiềm ẩn của việc áp dụng các phương pháp Agile hoặc Lean.
Đặc tính tự do của Agile thường được bị đánh đồng với sự hỗn loạn. Trong khi, tư duy loại bỏ lãng phí của Lean đôi khi được đánh đồng với các biện pháp cắt giảm chi phí. Cả hai đều có thể đúng. Nhưng giống như hầu hết mọi thứ trong cuộc sống, các kết quả đều tương ứng với các tình huống nhất định. Một tổ chức phức tạp với nhiều team xây dựng nhiều sản phẩm cần nhiều quy trình hơn để đảm bảo tính nhất quán và chất lượng so với một công ty khởi nghiệp non trẻ. Các công ty hoạt động với lực lượng thị trường năng động sẽ chấp nhận sự thay đổi nếu điều đó có nghĩa là delivery nhanh hơn.
Dù chọn lựa Lean hay Agile, bạn cũng đều cần dựa vào quy mô và chất lượng thực của team development. Theo dõi các bài viết của Cole và tham gia khóa học về business analyst để cập nhật thêm các kiến thức về lập trình và khoa học dữ liệu.
>> Xem thêm: Tổng quan về open source và phần mềm có mã nguồn mở