Giới thiệu

Một phần của tài liệu Nghiên cứu phương pháp Kanban và áp dụng phát triển phần mềm quản lý con dấu (Trang 25)

Thuật ngữ Kanban trong tiếng Nhật có nghĩa là cái thẻ [10]. Một thẻ gắn vào một phần của công việc. Mỗi thẻ hoạt động đƣợc bắt đầu. Một công việc mới bất kỳ phải đợi trong một hàng đợi (queue) tới khi nào một thẻ trở nên sẵn sàng. Khi một vài việc đƣợc hoàn thành, thẻ đƣợc bóc ra và tái chế. Với một thẻ rảnh rỗi, một phần mới của công việc trong hàng đợi có thể đƣợc bắt đầu.

Cơ chế này đƣợc hiểu nhƣ một hệ thống kéo bởi vì công việc mới đƣợc kéo vào trong hệ thống khi có khả năng xử lý nó, chứ không phải bị đẩy vào trong hệ thống dựa trên nhu cầu. Một hệ thông kéo không thể bị quá tải nếu khả năng (dung lƣợng) cũng nhƣ là việc xác định số các thẻ tín hiệu trong sự lƣu thông đã đƣợc thiết lập một cách hợp lý. Có thể hình dung một hệ thống Kanban qua ví dụ sau:

Trong một công viên, công viên chính là hệ thống: khách thăm quan là công việc đang làm (WIP), và dung lƣợng đƣợc giới hạn bởi số thẻ vào cửa đƣợc lƣu thông. Những khách thăm quan mới đến đƣợc vào khi có vé sẵn sàng trên tay. Một ngày bình thƣờng điều này không có vấn đề gì. Tuy nhiên, vào ngày đông đúc, ví dụ ngày nghỉ, khi tất cả các vé đƣợc đƣa ra, khách thăm quan mới phải xếp hàng bên ngoài cổng và chờ đợi thẻ đƣợc tái sử dụng từ các khách đã thăm quan xong khi họ rời đi. Hệ thống Kanan cung cấp một phƣơng pháp đơn giản, rẻ tiền và dễ dàng thực hiện để kiểm soát kích thƣớc của đám đông bằng cách giới hạn số ngƣời bên trong công viên. Điều này cho phép ngƣời giám sát công viên duy trì hoạt động trong điều kiện tốt và tránh thiệt hại gây ra bởi quá nhiều ngƣời tham gia và bị quá tải.

Trong phát triển phần mềm, một hệ thống Kanban ảo dùng để giới hạn công việc đang tiến hành. Các thẻ Kanban này không làm chức năng thực sự nhƣ là tín hiệu để kéo công việc thay vào đó, chúng đại diện cho các hạng mục do đó gọi là “ảo”, vì không có thẻ tín hiệu vật lý. Tín hiệu để kéo công việc mới đƣợc suy ra từ định lƣợng trực quan công việc đang làm từ một số chỉ số của giới hạn (dung lƣơng- công suất). Theo David J. Anderson [10] sử dụng một hệ thống Kanban để giới hạn công việc đang làm của nhóm đến khả năng chấp nhận đƣợc và để cân bằng nhu cầu trong nhóm so với thông lƣợng công việc giao cho họ. Bằng cách này nhóm có thể đạt đƣợc tốc độ ổn định của phát triển để tất cả các cá nhân có thể cân bằng đƣợc công việc và cuộc

suất, và nó thách thức một nhóm tập trung vào giải quyết các vấn đề này để duy trì ổn đinh một dòng chảy công việc. Bằng cách cung cấp khả năng hiển thị chất lƣợng và xử lý các vấn đề, nó làm rõ ràng sự tác động của các lỗi, tắc nghẽn, biến động, và chi phi kinh tế trên dòng chảy và lƣu lƣợng. Các thao tác đơn giản của việc giới hạn công việc đang làm của Kanban khuyến khích chất lƣợng cao hơn và hiệu suất lơn hơn. Sự kết hợp của việc cải thiện dòng chảy và chất lƣợng tốt hơn giúp cho thời gian chờ (khoảng thời gian giữa giai đoạn hoạch định và lúc bắt đầu sản xuất) ngắn hơn và cải thiện khả năng dự báo và đúng hiệu năng hàng ngày. Bằng cách thiết lập một nhịp phát hành thƣờng xuyên và phân phối nó một cách liên tục, Kanban giúp xây dựng lòng tin đối với khách hàng

Thực hiện tất cả điều này, Kanban góp phần vào sự phát triển văn hóa của tổ chức. Bằng cách công khai vấn đề, tập trung một tổ chức vào giải quyết chúng, và loại trừ ảnh hƣởng của chúng trong tƣơng lai, Kanban tạo điều kiện cho sự xuất hiện của một tổ chức cải tiến liên tục, đƣợc trao quyền đánh giá cao, uy tín cao, có tính hợp tác cao. Các bảng thẻ đã trở thành cơ chế kiểm soát trực quan phổ biến trong phát triển phần mềm linh hoạt. Sử dụng một bảng ghi chú với các thẻ đƣợc ghim trên bảng, để theo dõi công việc đang làm đã trở nên phổ biến. Nó quan sát giá trị ở các giai đoạn đầu, các bảng thẻ này vốn không phải là hệ thống Kanban. Chúng đơn thuần là các hệ thống điều khiển trực quan. Chúng cho phép các đội quan sát trực quan công việc đang làm và để tự tổ chức, phân công nhiệm vụ riêng, và việc di chuyển công việc tồn đọng để hoàn thành mà không có sự chỉ đạo từ ngƣời quản lý trực tiếp. Tuy nhiên, nếu không có giới hạn rõ ràng cho công việc đang làm và không có tín hiệu để kéo công việc mới vào hệ thống, thì đó không phải là hệ thống Kanban.

Mỗi thẻ trực quan biểu diễn một phần riêng biệt công việc có giá trị của khách hàng mang một số thông tin. Các thông tin về thẻ phải tạo điều kiện cho hệ thống kéo để các cá nhân đƣa ra quyết định kéo của chính họ. Thông tin trên một thẻ có thể thay đổi bởi hạng mục công việc hoặc bởi các lớp dịch vụ (thảo luận trong mục 3.3.8)

Ví dụ tên của hạng mục đƣợc viết ở giữa. Ngày mà thẻ vào hệ thống đƣợc viết ở dƣới cùng bên trái, cái này cung cấp 2 mục địch: Thúc đẩy đầu vào, đầu ra của hàng đợi cho lớp chuẩn của dịch vụ, và nó cho phép các thành viên trong nhóm xem xét bao nhiêu ngày để hết hạn đối với các thỏa thuận mức dịch vụ (mô tả trong mục 3.3.8). Để cố định lớp ngày phân phối của các hạng mục dịch vụ, thời hạn giao đƣợc yêu cầu đƣợc viết dƣới góc bên phải của thẻ.

Có thể sử dụng một vài dấu hiệu, ví dụ nhƣ một dấu hoa thị để cho biết rằng hạng mục là muộn đối với mục tiêu của thời gian sản xuất (lead time) trong thỏa thuận mức dịch vụ. Tên của ngƣời đƣợc giao cũng đƣợc viết trên thẻ.

Theo nguyên tắc chung, thiết kế một thẻ sử dụng đại diện cho một phần công việc của cá nhân nên có đủ thông tin để tạo thuận lợi cho các quyết định quản lý dự án, nhƣ

hạng mục nào đƣợc kéo tiếp theo, mà không có sự can thiếp hoặc chỉ đạo của ngƣời quản lý. Cách tốt nhất là trao quyền cho các thành viên trong nhóm với sự rõ ràng, minh bạch quy trình, mục đích và mục tiêu của dự án, và thông tin rủi ro. Khi hiểu đƣợc sâu sắc hơn về các lớp dịch vụ và các thỏa thuận mức dịch vụ, chúng ta sẽ khám phá ra rằng Kanban tạo điều kiện mạnh mẽ cho cơ chể tự tổ chức và quản lý rủi ro. Bằng cách trao quyền cho các thành viên trong đội thực hiện kế hoạch của chính họ và các quyết định ƣu tiên, thể hiện sự tôn trọng đối với cá nhân với một niềm tin trong hệ thống ( hoặc thiết kế quy trình).

3.2 Kanban là gì?

Có nhiều cách tiếp cận đến Kanban, nhƣng hầu hết đồng ý rằng Kanban là phƣơng pháp quản lý các thay đổi, tập trung vào các nguyên tắc sau đây [13] :

1. Trực quan công việc (Visualize Work). Trực quan các bƣớc trong quy trình làm việc, từ khái niệm mơ hồ tới lúc phần mềm có thể phát hành.

2. Tạo ra các chính sách rõ ràng (Make Policies Explicit) Tạo ra các chính sách mà chúng ta đang hoạt động một cách minh bạch.

3. Đo và quả lý lƣu lƣợng (Measure and Manage Flow). Đo và quản lý lƣu lƣợng để đƣa ra các quyết định và hình dung ra kết quả.

4. Xác định các cơ hội cải tiến. Tạo ra một nền văn hóa cải tiến liên tục là công việc của tất cả mọi ngƣời.

Có nhiều cách để áp dụng Kanban nhƣng cách tốt nhất để giới thiệu Kanban vào trong một tổ chức là dần dần chứ không phải thông qua việc chuyển kế hoạch và chƣơng trình đào tạo. Từ các nguyên tắc trên, chúng ta có thể có các bƣớc dƣới đây để đƣa hệ thống Kanban vào quy trình làm việc.

3.3 Quy trình Kanban

3.3.1 Trực quan quy trình làm việc

Bƣớc đầu tiên hƣớng tới việc trực quan quy trình làm việc, chính là phải hiểu hệ thống hiện tại của chúng ta hoạt động nhƣ thế nào.

* Hiểu về hệ thống cung cấp phần mềm

Để có thể đƣa ra quyết định đúng về việc làm thế nào tối ƣu quy trình làm việc, bƣớc đầu tiên là phải hiểu những gì chúng ta đang làm. Để hiểu đƣợc quy trình hiện tại của bạn cách tốt nhất là vẽ sơ đồ toàn bộ quy trình làm việc cung cấp phần mềm của chúng ta và không chỉ tập trung vào phần "phát triển".

Chúng ta có thể sử dụng bản đồ dòng giá trị (Value Stream Maps), biểu đồ trạng thái trong UML, sơ đồ quy trình công việc, hoặc một loại khác nào đó để xác định quy trình của mình.

Cách phổ biến nhất hiện nay là sử dụng khái niệm của hệ thống sản xuất Tinh gọn (Lean): bản đồ dòng giá trị (Value Stream Maps). Ở dạng đơn giản, một biểu đồ dòng giá trị mô tả các giai đoạn mà công việc của chúng ta trải qua, từ nguyên liệu thô đến thành phẩm, trong trƣờng hợp sản xuất phần mềm, từ ý tƣởng mơ hồ đến một tính năng làm việc trong sản phẩm. Điều quan trọng khi dùng nó để thấy đƣợc từng giai đoạn là hình dạng đầu tiên của thông tin. Ví dụ, một giai đoạn đƣợc gọi là "Kiểm thử" gồm nhiều việc hơn là chỉ để thử nghiệm (sửa chữa, phân tích, tái cấu trúc, thảo luận, cập nhật, vv), nhƣng kể từ khi hình dạng nguyên thủy của thông tin đến là "Kiểm thử", chúng ta sẽ xác định đƣợc công việc của chúng ta là đang trong giai đoạn "Kiểm thử", trong khi tất cả các hoạt động này đang xảy ra. Khoảng cách giữa các giai đoạn của chúng ta, nơi mà không có thông tin nào đƣợc thêm vào, đƣợc định nghĩa là "thời gian chờ đợi". Hình 3.1 cho thấy một ví dụ từ một dự án thực tế.

Hình 3.1: Ví dụ về bản đổ luồng giá trị mô tả 1 quy trình sản suất phần mềm

* Trực quan hệ thống

Khi đã có nắm đƣợc quy trình làm việc hiện tại, bƣớc tiếp theo là trực quan nó. Đơn giản nhất để làm điều này là sử dụng một tấm bảng, nhƣng nếu ta đang làm việc trong một nhóm phân tán bạn có thể sử dụng một công cụ quản lý công việc trực tuyến. Không có gì làm cho công việc của chúng ta có thể nhìn thấy tốt hơn là có nó ngay trƣớc mặt chúng ta ở tất cả các thời gian và có thể chạm vào nó.

`Thƣờng thì sẽ có ít nhất hai loại giai đoạn: giai đoạn “Hoạt động”, nơi mà hoạt động công việc đang đƣợc thực hiện, và các giai đoạn “Đệm”, nơi công việc đang chờ đợi sẽ đƣợc phát hành / phát triển, nhƣng sau này có thể phát sinh nhiều hơn.

Có một bảng cho nhóm làm việc, viết lên đó những gì ta muốn, đây là công cụ quản lý trực quan nhanh chóng. Ở phiên bản đầu tiên, bảng của chúng ta có thể trông giống một vài thứ nhƣ hình 3.2 (biểu diễn tất cả công việc cần để hoàn thành một chức năng, chứ không chỉ là việc phát triển)

Hình 3.2: Quy trình làm việc đƣợc trực quan trên bảng

Mọi chức năng bắt đầu từ các ý tƣởng lờ mờ trong cột “Hàng đợi đầu vào” (hình 3.2) và kết thúc trong cột "Phát hành", nơi một chức năng đƣợc rời đi khi nó thực sự làm việc. Nguyên tắc chung là "bạn chỉ có thể quản lý công việc bạn có thể thấy".

Trực quan công việc cho một số lợi ích, quan trọng nhất là:

- Tập trung vào "tổng thể" ( Focus on “The Whole”) Có thể thể nhìn thấy chính xác công việc của chúng ta ảnh hƣởng đến những ngƣời khác nhƣ thế nào, và ngƣợc lại.

- Minh bạch (Transparency) Mọi ngƣời đều biết chính xác những gì đang xảy ra và không có thông tin nào bị che dấu.

- Xác định các lãng phí (Identifying waste) Tự nhiên chúng ta bắt đầu đặt câu hỏi về lý do tại sao chúng ta đang làm mọi thứ theo cách ta đang làm.

3.3.2 Giới hạn công việc đang tiến hành

Khi ta đã làm chủ đƣợc việc trực quan công việc, chúng ta đã sẵn sàng để tiếp tục sang bƣớc tiếp theo - hạn chế công việc đang làm (WIP).

* Hiểu về công việc đang tiến hành.

Để hiểu lý do tại sao giới hạn WIP có ý nghĩa, chúng ta xem xét thuật ngữ: Thời gian quay vòng (Cycle time ) = Công việc trong tiến trình (WIP) / lƣu lƣợng (Throughput) trên đơn vị thời gian.

Cycle time mô tả thời gian một hạng mục công việc đi qua hệ thống của chúng ta, hoặc nói cách khác, "bao nhiêu lâu từ lúc một chức năng đƣợc lựa chọn để thực hiện cho đến khi nó đƣợc dùng trong sản xuất". Xác định việc "lựa chọn để thực hiện" nhƣ thế nào phụ thuộc vào hoàn cảnh của chúng ta.

thuộc vào hoàn cảnh. Một số ngƣời cho rằng nó bao gồm tất cả các hạng mục đang chờ xử lý, trong khi những ngƣời khác cho rằng nó chỉ bao gồm các hạng mục đƣợc lựa chọn để thực hiện.

Lƣu lƣợng trên đơn vị thời gian đơn giản là số lƣợng trung bình của công việc đã hoàn thành trong một thời gian nhất định.

Điều này có nghĩa là cho một một hệ thống với 100 câu chuyện ngƣời sử dụng (công việc đang làm) và lƣu lƣợng là 2 câu chuyện ngƣời dùng trên / 1 tuần, cycle time trung bình là 100/2 = 50 tuần hoặc gần nhƣ một năm. Để giảm cycle time xuống 25 tuần có thể đƣợc thực hiện bằng cách hoặc là tăng gấp đôi lƣu lƣợng là 4 câu chuyện ngƣời dùng/ 1 tuần hoặc bằng cách giảm số lƣợng câu chuyện ngƣời dùng đang tiến hành xuống còn 50. Trong hầu hết các trƣờng hợp giảm công việc đang làm hơn là tăng lƣu lƣợng.

Chúng ta có thể ƣớc lƣợng, việc giới hạn công việc đang làm là giảm tất cả cycle time để tăng lƣu lƣợng và giảm thiểu số lƣợng công việc mà chúng ta đã đầu tƣ thời gian và nguồn lực, nhƣng vẫn chƣa tạo ra bất kỳ giá trị kinh doanh nào.

Chúng ta thực hiện việc này nhƣ thế nào? Việc đầu tiên chúng ta phải làm là tao ra sự nỗ lực tốt nhất của bản thân để xác định bao nhiêu hạng mục mà chúng ta sẽ cho phép trong mỗi giai đoạn trên bảng ở mỗi lần. Tốt nhất là để hoạt động này đƣợc dẫn dắt bởi các chính sách mà nhóm của ta có thể áp dụng.

* Trực quan các giới hạn công việc đang làm

Trực quan giới hạn nhƣ thế nào là tùy vào chúng ta. Trong hình 3.3, bảng chia các giai đoạn hoạt động thành hai giai đoạn con “đang làm” và “làm xong”, các giới hạn công việc đang làm đƣợc viết trên mỗi tiêu đề cột. Điều này có thể làm cho ta nhìn sâu sắc vào hệ thống của chúng ta đang làm việc nhƣ thế nào và đây là cách phổ biến để thực hiện nó trong công nghệ thông tin.

Hình 3.3 Trực quan các giới hạn công việc đang làm sử dụng việc đánh số trên tiêu đề cột.

* Tìm ra các giới hạn công việc đang làm đúng

Chúng ta nên thiết lập giới hạn công việc đang làm chặt chẽ ngay từ đầu. Cách thứ nhất là quan sát hệ thống của chúng ta và thiết lập các giới hạn vừa đủ cho quy trình làm việc hiện tại. Sau đó, xác định nơi tắc nghẽn và điều chỉnh giới hạn ở một thời điểm. Một cách tiếp cận triệt để hơn để thiết lập các giới hạn trên các cột ở giai đoạn hoạt động chặt chẽ hơn để hệ thống có thể để xử lý và làm bƣớc đệm cho từng giai đoạn. Sau đó, quan sát nơi mà công việc bị tích tụ lại, và nới lỏng dần cho đến khi công việc trôi qua hệ thống. Cả hai đều đòi hỏi một số kinh nghiệm, vì vậy đừng mong đợi để làm đƣợc nó ngay lần đầu tiên. Không có kết luận cuối cùng là cái nào tốt hơn, nhƣng việc thiết lập các giới hạn với các chính sách trong đầu dƣờng nhƣ sử dụng cả

Một phần của tài liệu Nghiên cứu phương pháp Kanban và áp dụng phát triển phần mềm quản lý con dấu (Trang 25)

Tải bản đầy đủ (PDF)

(68 trang)