Nghiêm Nguyễn Công
VelaCorp
Published in
7 min readDec 18, 2018

--

Tại sao Agile đang là phương pháp tốt cho sản xuất và Kanban là gì ?

1, Giới thiệu về Agile

Nếu làm việc trong những công việc về công nghệ thông tin, phát triển phần mềm thì chắc hẳn bạn đã nghe đến phương pháp làm việc Agile. Bạn cũng hỏi tự sao nên dùng Agile áp dụng vào công việc. Vậy chúng ta hãy cung nhau tìm hiểu xem những lợi ích mà Agile mang lại nhé. Từ trước đến nay có rất phương pháp phát triển phần mềm với các ưu, nhược điểm khác nhau. Để dễ dàng tìm hiểu về Agile thì ta có thể có một vài so sánh nhỏ giữa phương pháp Agile và phương pháp truyền thống là Waterfall.

So sánh 2 phương pháp Waterfall vs Agile

Theo bảng so sánh ta có thấy được sự khác biệt rõ ràng giữa 2 phương pháp.

Với phương pháp Waterfall thì chúng ta sẽ nhận được sản phẩm sau một tiến trình dài làm việc, tuy nhiên với Agile thì không, ta nhận được phần tăng trưởng rõ ràng sau mỗi một chu kì nhỏ và việc này diễn ra liên tục đến cuối khi sản phẩm hoàn chỉnh.

Trong tiến trình làm việc luôn sẽ ra rủi ro như công nghệ cần thay đổi, giá dịch vụ tăng,… Những rủi ro đó ảnh hưởng rất nhiều vào sản phẩm cuối ta thu được. Nếu tiến hành công việc theo phương pháp Waterfall thì đến cuối quy trình ta mới thấy được sự rủi ro lớn như thế nào, ngược lại agile thì luôn sẵn sàng tinh thần cho những thay đổi và có sự cải tiến sau mỗi chu kỳ nhỏ nên rủi ro sẽ ít đi, đảm bảo sản phẩm cuối cùng không bị ảnh hưởng nhiều.

Các bạn thấy anh chàng trai bên trái trông khó khăn với khối công việc lớn không ? Đó là vì anh ta đang áp phương pháp truyền thống Waterfall vào tiến trình làm việc đó. Đối với Agile khối lượng công việc càng lớn dần cũng không có vấn đề gì cả vì Agile thì việc chuẩn bị bước đầu cho quá trình làm việc rất đơn giản chỉ là tách nhỏ các hạng mục công việc ra,rồi thực hiện theo mức độ ưu tiên, cuối cùng sản phẩm thu được là khối ghép các phần tăng trưởng có chức năng tốt, ổn định. Không như thế Waterfall phải thu thập đủ dữ liệu, công nghệ rồi mới có thể bắt đầu làm việc, khi khối công việc càng lớn thì sẽ càng khó khăn.

2, Sử dụng Agile vào công việc

Agile có rất nhiều quy trình triển khai : Extreme Programming (XP), Feature-driven development (FDD), Adaptive system development (ASD), SCRUM, Lean Software Development (LSD).

Để hiện thực hóa phương pháp Agile trong quy trình sản xuất phần mềm, chúng ta có thể sử dụng Scrum. Scrum là một thành viên trong gia đình Agile, nó được xây dựng trên quá trình thực nghiệm. Nó là một mô hình vòng lặp để chia phần mềm cần sản xuất ra thành các phần nhỏ có thể chạy độc lập, lấy ý kiến khách hàng và thay đổi cho phù hợp ngay trong quá trình phát triển để đảm bảo sản phẩm release đáp ứng những gì khách hàng mong muốn.

Scrum xây dựng khung làm việc với nhóm có các thành viên liên chức năng hợp tác với nhau, quy trình sản xuất thông qua các Sprint. Với Scrum trong quá trình sản xuất, nhóm Scrum liên tục thăm dò và điều chỉnh hoạt động của mình để giảm rủi ro cùng với tối ưu hóa quá trình làm việc.

Cách thức hoạt động của Scrum được phát triển theo vòng lặp Sprint.

Công việc trong vòng lặp Sprint

Lại có một khái niệm mới xuất hiên : Sprint. Sprint là cái gì vậy ? Vâng xin thưa Sprint là một phân đoạn làm việc. Phân đoạn đó diễn ra trong vòng 1 hoặc tuần nhưng không quá 4 tuần. Sau mỗi Sprint thì sẽ thu được một phần tăng trưởng nhất định. Các Sprint diễn ra liên tục, khi sprint này kết thúc thì sprint khác diễn ra như vòng lặp.

Vào một Sprint chúng ta phải thực hiện như thế nào nhỉ? Câu trả lời đã có trong bức ảnh phía trên đó. Các bạn chú ý trong ảnh là 4 khung cảnh làm việc của nhóm Scrum.

Đầu mỗi Sprint, nhóm phát triển chọn ra những hạng mục công việc trong backlog mà họ tin rằng sẽ có được khi kết thúc sprint, đồng thời ước lượng nỗ lực bỏ ra để thực hiện công việc. Theo đó, nhóm sẽ bắt tay vào làm việc. Khung làm việc này là Planning Meeting.

Hằng ngày sẽ có khung làm việc Daily Meeting. Trong một thời gian ngắn, nhóm gặp nhau để thanh tra và điều chỉnh công việc tốt hơn thông qua việc sử dụng bảng Kanban. Khái niệm mình sẽ giải thích ở phần sau.

Kết thúc Sprint, nhóm phát triển và các bên liên quan tập hợp lại để bàn giao phần tăng trưởng đã đạt được, theo đó tiếp nhận các phản hồi để thực hiên Sprint tiếp theo. Quá trình này được gọi Review Meeting.

Đặc biệt, có một phiên họp được gọi Retrospective Meeting.

Gọi là họp nhưng không phải để thống kê công việc đã làm được hay để khiển trách ai đâu nha. Phiên họp này dùng để các thành viên tự ngẫm lại xem có cần phải cải tiến gì ở sprint sau, đồng thời phát hiện ra công nghệ nào tốt để phát triển sản phẩm. Từ phiên retrospective meeting nhóm phát triển sẽ nắm được giải pháp để làm việc hiệu quả hơn trong sprint tiếp theo.

3, Công cụ hoạt động :KANBAN

Để có cái nhìn trực quan công việc diễn ra thì chúng ta sẽ có một công cụ đó là bảng Kanban, thứ mà nhóm phát triển dùng để làm việc đó trong khung cảnh trên đó.

Kanban, nghe giống tiếng Nhật, đúng là như vậy vì nguồn gốc của nó là từ Nhật. Xuất hiện vào những năm cuối 1940 tại Toyota bởi Taichi Ohno. Từ kanban trong tiếng Nhật có nghĩa là bảng hiệu trực quan, dùng để theo dõi quy trình làm việc, sự phát triển trạng thái của một đối tượng hay một hành động.

Khắp nơi, tất cả mọi người đều có thể sử dụng Kanban. Bạn có thể thực hiện Kanban trong công việc cá nhân hay một nhóm cộng tác. Thứ bạn cần chỉ là một bảng trực quan gồm 3 trường To Do, In Process, Done cùng với chút giấy note.

Bạn có thể để nó ở khu vực dễ nhìn như tường nhà, cánh cửa tủ lạnh, điều này giúp bạn dễ dàng kiểm soát công việc có trong bảng.

Với cá nhân hay di chuyển thì bạn có thể dùng một cuốn sổ nhỏ, hay các công cụ trực tuyến như Trello là một ví dụ.

Sử dụng bảng Kanban là một điều rất đơn giản, bạn cần biết rõ ý nghĩa của các trường trong bảng là có thể thực hiện luồng công việc dễ dàng.

Mình có một ví dụ nhỏ về việc sử dụng công cụ Trello để áp dụng Kanban vào công việc cá nhân:

Todo là trường có tác dụng lưu giữ những hạng mục bạn muốn thực hiện, những công việc được đánh giá trên năng lực bạn có thể làm được và chúng có mức độ ưu tiên khác nhau. Với các công việc khác nhau thì ta có thể gắn các màu sắc khác nhau để dễ phân biệt và quản lí.

Dựa vào mức độ ưu tiên, ta có thể chọn các hạng mục công việc để đưa vào trường In Process, giới hạn số lượng công việc ở trường này nên là 3 công việc, điều đó giúp ta không rơi tình trạng đa nhiệm, từ đó ta sẽ tập trung được nỗ lực để hoàn thành.

Khi bạn cảm thấy công việc Doing đã đạt được những yêu cầu mong muốn lúc đầu ( trong công việc nhóm khái niệm này là DOD, định nghĩa hoàn thành ) thì bạn có thể kéo công việc sang trường Done. Qua trường này bạn có thể thấy được trực quan những công việc mình đã hoàn thành với những nỗ lực bỏ ra cho nó.

Hy vọng với ví dụ nhỏ ở trên các bạn có thể hiểu và áp dụng Kanban vào công việc hàng ngày của mình.

4, Những điều cần để có thể thực hiện phương pháp Agile.

Vậy bạn có chắc mình đã đủ khả năng áp dụng agile vào công việc của mình chưa ? Hãy chuẩn bị đầy đủ năng lực, không được vội vàng làm việc, luôn sẵn sàng tinh thần thích nghi với thay đổi và khó khăn thì bạn sẽ áp dụng được Agile thành công.

Chúc bạn sẽ thành công với việc áp dụng phương pháp Agile và sử dụng Kanban trong quá trình làm việc của mình.

--

--