Mô hình Kanban trong Kỹ thuật phần mềm

Kanban là gì?

Kanban là một khuôn khổ rất phổ biến để phát triển trong phương pháp phát triển phần mềm linh hoạt. Nó cung cấp một cách minh bạch để hình dung các nhiệm vụ và năng lực làm việc của một nhóm. Nó chủ yếu sử dụng bảng vật lý và bảng kỹ thuật số để cho phép các thành viên trong nhóm hình dung được trạng thái hiện tại của dự án mà họ đang thực hiện.

Kanban có nguồn gốc từ Toyota vào những năm 1940. Nghĩa của Kanban trong tiếng Nhật là "bảng quảng cáo". Bảng Kanban có các cột và thẻ câu chuyện. Các cột không là gì cả, nhưng trạng thái và thẻ quy trình công việc không là gì ngoài bản trình bày về nhiệm vụ thực tế mà một thành viên trong nhóm đang thực hiện.

Khi nào nên sử dụng Kanban?

Dưới đây là những lý do nên sử dụng phương pháp phát triển Kanban:

  • Kanban có thể được sử dụng trong bất kỳ lĩnh vực nào và nó có thể được sử dụng rất hiệu quả trong phát triển phần mềm. Quản lý dự án Kanban giúp nâng cao hiệu quả của nhóm.
  • Nó là một hệ thống dựa trên kéo. Nhiệm vụ sẽ được thực hiện ngay khi một cá nhân rảnh rỗi.
  • Kanban nên được sử dụng khi bạn muốn phát hành tác phẩm của mình bất cứ lúc nào. Nó yêu cầu phân nhánh git, nhưng nó có thể thực hiện được.
  • Kanban nên được sử dụng khi bạn muốn thay đổi mức độ ưu tiên một cách nhanh chóng. Để làm được điều đó, tất cả những gì bạn cần làm là đặt câu chuyện này lên đầu danh sách việc cần làm.
  • Nó nên được sử dụng khi bạn muốn hình dung công việc của mình và bạn muốn xem tiến độ nhiệm vụ của mình một cách trực quan.

Thẻ Kanban

Hệ thống Kanban khuyến nghị trực quan hóa công việc. Nó gợi ý việc sử dụng bảng vật lý và bảng kỹ thuật số.

Thẻ Kanban
Thẻ Kanban

Thẻ Kanban là những phần thiết yếu trên bảng Kanban vì nó thể hiện công việc mà nhóm đang thực hiện. Những thẻ này sẽ có

  1. Ưu tiên
  2. Chủ nhân
  3. Kiểu
  4. Ngày đáo hạn

Một cột trong bảng Kanban thể hiện giai đoạn công việc và bạn có thể đặt giới hạn WIP (Đang tiến hành) trên cột. Giới hạn WIP có nghĩa là số lượng thẻ tối đa có thể ở trên cột đó.

Vì quản lý dự án Kanban sử dụng hệ thống dựa trên kéo nên khi nhà phát triển rảnh, họ có thể rút thẻ từ cột việc cần làm sang cột nhà phát triển.

Bảng Kanban

Bảng Kanban là một công cụ quản lý dự án linh hoạt giúp triển khai Kanban để quản lý các dự án cho mục đích cá nhân và kinh doanh. Đây là bảng vật lý hoặc kỹ thuật số (JIRA) được thiết kế để giúp các nhóm trực quan hóa công việc của họ ở các giai đoạn và quy trình khác nhau. Nó cũng giúp thể hiện các giai đoạn làm việc với các cột bằng thẻ.

Nó có các cột thể hiện trạng thái của công việc như

  1. Làm,
  2. Dev
  3. Kiểm tra
  4. Xong.

Mỗi cột này có thể có thẻ <= giới hạn WIP. Các thẻ đại diện cho công việc thực tế.

Bạn có thể sử dụng số dương để giới hạn tiến độ công việc và số giới hạn này có thể được đặt ở đầu cột trong cả bảng Kanban vật lý và kỹ thuật số. Bất kỳ cá nhân nào trong nhóm đều có thể quản lý trạng thái thẻ của mình và toàn bộ nhóm có thể hình dung quy trình làm việc. Tiếp theo trong hướng dẫn Kanban này, chúng ta sẽ tìm hiểu về Kanban Workflow.

Quy trình làm việc của Kanban

Quy trình làm việc của Kanban là một tập hợp các bước giúp các nhóm xác định các chính sách và nguyên tắc rõ ràng trong Kanban. Nó đại diện cho các quy tắc và thủ tục trong khi công việc đang diễn ra qua các giai đoạn khác nhau của chu kỳ phát triển và phân phối. Quy trình làm việc Kanban bao gồm các quy trình từng bước từ khi bắt đầu đến khi thực hiện một nhiệm vụ cụ thể.

Hiệu trưởng cơ bản Kanban sau đây là, “dừng bắt đầu, bắt đầu kết thúc”. Với sự trợ giúp của giới hạn WIP, nó sẽ hoàn thành được nhiều việc hơn. Các quy trình và trạng thái Kanban có thể tùy chỉnh có sẵn trong bất kỳ công cụ hiện đại nào như JIRA.

Dưới đây là các trạng thái cơ bản mà nhiều nhóm phần mềm tuân theo để quản lý quy trình làm việc của họ.

Bang Hiểu biết về nhiệm vụ
Làm Nhiệm vụ đến đây lần đầu tiên ở trạng thái này.
Sẵn sàng để phân tích Phân tích nhiệm vụ và thêm yêu cầu hoàn toàn.
Sẵn sàng cho sự phát triển Phân tích hoàn thành và phát triển có thể bắt đầu.
Trong sự phát triển Nhiệm vụ đang được phát triển.
Sẵn sàng để thử nghiệm Quá trình phát triển đã hoàn tất và bây giờ quá trình thử nghiệm có thể bắt đầu.
Trong thử nghiệm Nhiệm vụ đang được thử nghiệm.
Sẵn sàng để phát hành Kiểm tra hoàn thành; việc phát hành có thể xảy ra.
Đã phát hành/Hoàn thành Thoát ra.

Bốn nguyên tắc của Kanban

Dưới đây là bốn nguyên tắc cốt lõi chính của Kanban:

  1. Hãy bắt đầu với những gì bạn có bây giờ: Hệ thống Kanban đề xuất làm việc tăng dần và bắt đầu với những gì bạn hiện có. Vì một trong những thực tiễn của nó là cải tiến liên tục nên bạn phải cải thiện hệ thống dần dần.
  1. Đồng ý theo đuổi những thay đổi mang tính tiến hóa, gia tăng: Kanban đề xuất thay đổi tăng dần trong quy trình và bạn không được thực hiện thay đổi lớn trong quy trình trong một lần.
  1. Tôn trọng quy trình, vai trò và trách nhiệm hiện tại: Một lần nữa, hãy bắt đầu với những gì bạn có hiện tại và thay đổi quy trình, vai trò và trách nhiệm theo cách tăng dần.
  1. Khuyến khích hành vi lãnh đạo ở mọi cấp độ: Mỗi cá nhân có thể đóng vai trò là người lãnh đạo và đưa ra ý tưởng để nâng cao hiệu quả của hệ thống Kanban tổng thể. Bạn không nên nghĩ rằng đây là một hoạt động ở cấp độ quản lý và ngay cả thành viên trẻ nhất trong nhóm cũng có thể đóng vai trò là người lãnh đạo.

Sáu thực hành cốt lõi của Kanban

Sau đây là sáu hoạt động cốt lõi của Kanban:

  1. Trực quan hóa quy trình làm việc: Nguyên tắc này gợi ý nên có bảng Kanban (vật lý hoặc kỹ thuật số) để trực quan hóa quy trình làm việc. Mỗi cá nhân trong đội phải xem thẻ của mình và thẻ của các thành viên khác trong đội. Bạn có thể di chuyển thẻ của mình theo các cột khác nhau theo hình ảnh trên. Nó mang lại nhiều sự minh bạch trong nhóm và cũng giúp giải quyết các vấn đề tắc nghẽn dễ dàng hơn
  1. Hạn chế công việc đang tiến hành: Kanban là một hệ thống dựa trên kéo và nó cải thiện hiệu quả của nhóm để hạn chế công việc đang tiến hành và có các nhiệm vụ mà nhóm có thể hoàn thành trong khung thời gian nhất định. Giới hạn WIP này áp dụng từ đầu đến cuối quy trình làm việc. Bạn có thể áp dụng giới hạn trên đầu cột bằng số nguyên dương.
  1. Tập trung vào dòng chảy: Nguyên tắc này tập trung vào dòng chảy và bất kỳ sự gián đoạn nào. Nếu có sự gián đoạn hoặc chặn, chúng phải được sửa chữa vĩnh viễn.
  1. Chính sách rõ ràng: Các chính sách có thể được thiết lập trong một nhóm để giảm bớt việc làm lại và tập trung vào các lĩnh vực cần chú ý hoặc nơi nào hiệu quả hơn.
  1. Vòng lặp thông tin phản hồi: Vòng phản hồi rất cần thiết trong Kanban. Nó không chỉ diễn ra trong nội bộ nhóm mà còn giữa nhiều đội, huấn luyện viên, v.v. Điều này giúp cải thiện tình trạng chung của hệ thống Kanban.
  1. Cải tiến liên tục: Đây là nguyên tắc cốt lõi của hệ thống Kanban. Nó nói rằng bạn luôn có thể cải tiến quy trình và điều đó sẽ mang lại hiệu quả tốt hơn.

Hệ thống dựa trên kéo

Kanban là một phương pháp kéo, trong đó các nhiệm vụ được kéo thay vì bị đẩy. Ngay sau khi bạn hoàn thành thẻ hiện tại của mình, bạn có thể rút thẻ mới từ cột trước đó của bảng Kanban.

Với giới hạn WIP, Kanban giúp cải thiện Thời gian chờ và Thời gian chu kỳ. Cần có khoảng cách ít nhất có thể giữa hai thời gian này. Ví dụ, chúng ta có 5 nhà phát triển và chỉ có 1 người kiểm thử; điều gì sẽ xảy ra trong trường hợp này? Sẽ luôn có nhiều thẻ cần kiểm thử và chúng sẽ ở trạng thái chờ và không hoạt động.

Để khắc phục các vấn đề nêu trên và nâng cao hiệu quả, Kanban áp dụng phương pháp kéo dựa trên giới hạn WIP, trong đó sẽ có số lượng thẻ hạn chế được rút.

Vì vậy, người thử nghiệm sẽ kéo một nhiệm vụ từ giai đoạn “sẵn sàng để thử nghiệm” khi anh ta đã hoàn thành nhiệm vụ hiện tại của mình. Với giới hạn WIP trong cột Kanban (các giai đoạn phát triển), bạn sẽ không có nhiều thẻ không được giám sát trong quy trình làm việc của Kanban.

Hệ thống dựa trên lực kéo cũng giúp tìm ra vận tốc chính xác cho đội. Với tốc độ phù hợp, đội sẽ hoạt động tốt hơn.

Thời gian thực hiện và thời gian chu kỳ

Trong phương pháp Kanban, thời gian thực hiện và thời gian chu kỳ được sử dụng rộng rãi. Có sự khác biệt giữa hai điều này và điều quan trọng là phải hiểu điều đó để tránh nhầm lẫn.

Thời gian Chì Thời gian chu kỳ
Thời gian thực hiện được tính bằng thời gian từ khi nhiệm vụ đến trong quy trình làm việc của bạn cho đến khi nhiệm vụ đó rời khỏi quy trình làm việc, nghĩa là nhiệm vụ đó đã được giải phóng. Thời gian chu kỳ được đo bằng thời gian từ khi nhiệm vụ đến trạng thái “đang tiến hành” cho đến khi nhiệm vụ đến trạng thái “sẵn sàng để phát hành”.

Ở đây, điều quan trọng là phải hiểu là không bao gồm khoảng thời gian từ khi sẵn sàng phát hành đến khi phát hành thực tế.

Cycle Time = Work in Progress/Throughput

Trong kịch bản lý tưởng, khoảng cách giữa thời gian thực hiện và thời gian chu kỳ phải ở mức tối thiểu và Kanban sử dụng sơ đồ luồng tích lũy (CFD) để đo lường dữ liệu lịch sử về thời gian thực hiện và chu kỳ.

Sơ đồ dòng tích lũy (CFD)

CFD là một biểu đồ có sẵn ở tất cả các giao dịch hàng đầu. công cụ quản lý quy trình làm việc như JIRA. Biểu đồ này đo lường tổng số lượng thẻ công việc/nhiệm vụ đã đưa vào quy trình làm việc và tích lũy các thẻ/nhiệm vụ đã hoàn thành theo thời gian.

Nó giúp bạn ước tính thời gian thực hiện trung bình và thời gian chu kỳ trong thời gian được xác định trước.

Sơ đồ CFD sẽ cung cấp cho bạn các chỉ báo hoặc khu vực có vấn đề cần khắc phục. Nó sẽ cung cấp cho bạn một bức tranh rõ ràng và dựa trên sơ đồ này. Bạn có thể điều chỉnh thời gian dẫn đầu và thời gian chu kỳ của nhóm mình.

Sơ đồ dòng tích lũy Kanban
Sơ đồ dòng tích lũy Kanban
  1. Thời gian Chì: Đó là khoảng thời gian từ khi thẻ mới xuất hiện trong quy trình làm việc của bạn cho đến khi thẻ cuối cùng rời khỏi quy trình làm việc.
  2. Thời gian chu kỳ: Đó là khoảng thời gian từ khi thẻ đến trạng thái hoạt động cho đến khi thẻ sẵn sàng được phát hành.
  3. WIP: Công việc đang tiến hành (WIP) giới hạn số lượng mục công việc tối đa trong các giai đoạn khác nhau của quy trình làm việc.
  4. Thông lượng: Đây là hiệu suất thực tế và cho biết số lượng thẻ thực tế được phân phối trong một khung thời gian nhất định.
  5. Thông lượng = WIP/Thời gian chu kỳ

Giới hạn WIP(Đang tiến hành)

Trong phương pháp phát triển Kanban, WIP giới hạn số lượng nhiệm vụ/thẻ mà một thành viên trong nhóm hoặc toàn bộ thành viên trong nhóm có thể thực hiện cùng một lúc.

Các giới hạn WIP đảm bảo rằng nhóm ổn định công việc của họ và tăng tính chất dự đoán, điều này rất cần thiết trong hệ thống dựa trên kéo. Thông thường, quyết định giới hạn WIP do chính nhóm đưa ra.

Lý do đặt giới hạn WIP

Dưới đây là lý do để đặt Giới hạn WIP:

  • Nó chuyển sự tập trung vào việc hoàn thành công việc khi một cá nhân tập trung vào một nhiệm vụ duy nhất tại một thời điểm.
  • Nó giúp các đội hiểu được năng lực của họ.
  • Nó cải thiện năng suất và thời gian chu kỳ.
  • Nó giúp tránh các nhiệm vụ chồng chất (ở chế độ chờ).
  • Nó giúp chuyển động của quy trình làm việc và các nhiệm vụ tiếp tục di chuyển.
  • Nó cũng giúp giải quyết các vấn đề cản trở khi một cá nhân không chuyển đổi giữa các nhiệm vụ khác nhau.

Scrum Vs. Kanban

Dưới đây là những khác biệt quan trọng giữa Scrum Vs. Kanban

Cuộc đánh nhau Kanban
Cuộc đánh nhau nhấn mạnh vào việc lập kế hoạch. Bắt đầu bằng việc lập kế hoạch chạy nước rút và kết thúc bằng việc nhìn lại quá trình chạy nước rút. Có nhiều cuộc họp được tổ chức để đảm bảo rằng nhóm thống nhất với các bước tiếp theo, các ưu tiên và bài học kinh nghiệm từ các lần chạy nước rút trước. Kanban sẵn sàng thực hiện các thay đổi khi đang di chuyển. Nó có nghĩa là có ít độ cứng hơn và mọi thứ có thể thay đổi thường xuyên.
Nó đề nghị thu thập đo thời gian được thực hiện trong các cuộc chạy nước rút Kanban đề xuất đồ thị để có được cái nhìn tổng quan về sự tiến bộ của nhóm theo thời gian.
Cuộc đánh nhau không còn nữa yêu cầu sự cam kết từ các nhóm. Thay vào đó, nó liên quan đến mục tiêu và dự báo của sprint. Kanban dựa vào thời gian đóng hộp và dự báo.
Nó nhấn mạnh vào việc lập kế hoạch, và vì thế Đánh giá có vai trò rất quan trọng trong Scrum Kanban có không có yêu cầu bắt buộc để ước tính.
Mỗi cá nhân có vai trò của họ và trách nhiệm. Không thiết lập vai trò sao cho linh hoạt về mặt trách nhiệm cá nhân.
Các bước lặp/Sprints được cố định trong thời gian. Thời gian này thay đổi từ 2 tuần đến 1 tháng. Kanban là không dựa trên thời gian. Điều này được đo lường dựa trên thời gian của Chu kỳ.
Các đội là bắt buộc phải cam kết một khối lượng công việc cụ thể. Cam kết không cần thiết nó là tùy chọn cho các đội.
Trong phương pháp này, các đội chéo chức năng rất quan trọng vì chúng có thể giải quyết mọi gián đoạn có thể gây ra tắc nghẽn trong quá trình phát triển phần mềm. đội chuyên trách là rất quan trọng.
Đó là không thể thêm mục đến các lần lặp lại đang diễn ra. Mới các mục có thể dễ dàng thêm nếu có thêm dung lượng.
Một backlog sprint chỉ được sở hữu bởi một đội đơn. Nhiều độis có thể chia sẻ bảng Kanban.
Sản phẩm bàn giao là được xác định bởi các cuộc chạy nước rút, một tập hợp công việc phải được hoàn thành và sẵn sàng để xem xét. Sản phẩm và quy trình được giao liên tục khi cần thiết. Vì vậy, quá trình thử nghiệm và đánh giá diễn ra đồng thời.
Phương pháp phát triển phần mềm Scrum tập trung vào tồn đọng. Phương pháp Kanban hoàn toàn tập trung vào bảng điều khiển quy trình.
Mỗi thành viên trong nhóm có một vai trò cụ thể trong Scrum master quyết định các mốc thời gian, chủ sở hữu sản phẩm đặt ra các mục tiêu và mục tiêu cũng như các thành viên trong nhóm tiến hành công việc phát triển. Không có vai trò được xác định trước cho một nhóm. Tuy nhiên, vẫn có thể có Người quản lý dự án; nhóm được khuyến khích cộng tác và làm việc cùng nhau.
Tốt nhất cho các dự án có thay đổi ưu tiên. Lý tưởng cho các đội có ưu tiên ổn định điều đó khó có thể thay đổi theo thời gian.
Đo lường sản xuất sử dụng vận tốc thông qua các cuộc chạy nước rút. Đo lường sản xuất bằng cách sử dụng thời gian chu kỳ hoặc thời gian chính xác để hoàn thành một phần đầy đủ của dự án.
Scrum yêu cầu một chuyển đổi hoàn toàn từ mô hình truyền thống với mô hình Agile Scrum sẽ được triển khai dự án. Kanban không cho phép thay đổi mạnh mẽ Trong dự án.
Đây là một phương pháp lý tưởng cho các dự án có những ưu tiên rất khác nhau. Thích hợp nhất cho các nhóm có mức độ ưu tiên ổn định.
Trong Scrum, toàn bộ team tập trung vào việc cộng tác và hoàn thành nhiệm vụ để cung cấp công việc phát triển có chất lượng. Các nhóm làm việc để đạt được mục tiêu và giảm thời gian để hoàn thành toàn bộ quá trình. Vì vậy, việc giảm chu kỳ thời gian là dấu hiệu thành công lớn nhất ở đây.
Cuộc đánh nhau nhấn mạnh vào lịch trình của nó; các mục mới không thể được thêm vào các lần lặp lại đang diễn ra. Bản chất của Kanban là lặp đi lặp lại nhiều hơn vì nó không có khung thời gian cụ thể. Vì vậy, các mặt hàng mới có thể được bổ sung liên tục bất cứ khi nào có thêm dung lượng.
Toàn bộ công việc được thực hiện trong lô/Sprints. Toàn bộ dự án được thực hiện trên sự chuyển động của mục công việc đơn luồng chảy.
Scrum master đóng vai trò là người giải quyết vấn đề. Kanban khuyến khích mỗi thành viên trong nhóm đều là người lãnh đạo và chia sẻ trách nhiệm giữa tất cả họ.
Scrum quy định lặp lại theo thời gian. Kanban tập trung vào lên kế hoạch cho một khoảng thời gian khác cho lần lặp riêng lẻ.
Scrum giúp các công ty tiết kiệm thời gian và tiền bạc. Phương pháp Kanban tập trung vào cải tiến liên tục, năng suất và hiệu quả.
Đạt được giao tiếp ổn định và nhất quán về hiệu suất ở mọi cấp độ. Các thành viên trong nhóm có nhiều khả năng hoàn thành mục tiêu của họ dễ dàng hơn nhiều vì tính chất trực quan của bảng Kanban.
Dự án đang được mã hóa và thử nghiệm trong quá trình chạy nước rút xem xét Các thành viên trong nhóm có nhiều khả năng hoàn thành mục tiêu của họ dễ dàng hơn nhiều vì tính chất trực quan của bảng Kanban.
Đó là dễ dàng thích ứng hơn với những thay đổi liên tục vì những đợt chạy nước rút ngắn và phản hồi thường xuyên. Đó là được thiết kế cho sản lượng đều đặn, ổn định, những thay đổi lớn về nhu cầu của khách hàng có thể khiến Kanban thất bại.
Tổng chi phí của dự án là tối thiểu, điều này có thể dẫn đến kết quả nhanh hơn và rẻ hơn. Nếu một nhiệm vụ không được ước tính chính xác, tổng chi phí dự án sẽ không bao giờ chính xác. Trong những trường hợp như vậy, nhiệm vụ có thể được trải dài qua nhiều đợt chạy nước rút.
Phương pháp này yêu cầu các thành viên trong nhóm có kinh nghiệm chỉ một. Vì vậy, nếu nhóm gồm những người không phải là chuyên gia thì dự án không thể hoàn thành đúng thời hạn. Không khung thời gian cụ thể được phân bổ theo từng giai đoạn, vì vậy các thành viên trong nhóm không bao giờ biết được họ có thể mất bao nhiêu thời gian trong mỗi giai đoạn.
Trong phương pháp Agile Scrum này, nó dễ dàng hơn để cung cấp một sản phẩm chất lượng vào thời gian đã định. Nó được thiết kế cho một sản lượng đều đặn, ổn định, những thay đổi lớn về nhu cầu của khách hàng có thể khiến Kanban sụp đổ.
kế hoạch dự án sẽ không bao giờ bị xáo trộn ngay cả khi một thành viên trong nhóm rời khỏi đội. Nếu bất kỳ thành viên nào trong nhóm thoát ra trong quá trình phát triển, nó có thể làm tổn hại đến việc phát triển dự án.
Đôi khi họp hàng ngày bực bội thành viên của nhóm. Bảng Kanban lỗi thời có thể gây ra các vấn đề trong quá trình phát triển.
Các dự án lớn có thể dễ dàng phân chia thành những bước chạy nước rút dễ quản lý.

Tổng kết

  • Định nghĩa Kanban: Kanban được định nghĩa là một phương pháp phát triển linh hoạt để phát triển phần mềm, ô tô, hàng hóa, thuốc, giày dép hoặc bất kỳ công việc sản xuất nào khác.
  • Kanban sử dụng bảng Kanban để trực quan hóa công việc. Nó sử dụng các cột làm giai đoạn (việc cần làm, nhà phát triển, thử nghiệm, v.v.) và các thẻ làm mục công việc.
  • Phương pháp Kanban hỗ trợ bảng vật lý và kỹ thuật số để trực quan hóa.
  • Kanban là một hệ thống dựa trên kéo và các thẻ được các thành viên trong nhóm kéo từ giai đoạn trước sang giai đoạn hiện tại.
  • Phương pháp Kanban sử dụng sơ đồ CFD để hiểu thời gian thực hiện và thời gian chu kỳ của nhóm. Biểu đồ này giúp các đội khắc phục khoảng cách giữa hai thời gian này và nâng cao hiệu quả.
  • Phương pháp phát triển Kanban, WIP giới hạn số lượng nhiệm vụ/thẻ mà một thành viên trong nhóm hoặc toàn bộ nhóm có thể thực hiện cùng một lúc.
  • Những thay đổi giới hạn của WIP tập trung vào việc hoàn thành công việc khi một cá nhân tập trung vào một nhiệm vụ duy nhất tại một thời điểm.