Share via


Kanban nedir?

Kanban , tabela veya reklam panosu anlamına gelen bir Japon terimidir. Taiichi Ohno adlı bir endüstri mühendisi, üretim verimliliğini artırmak için Kanban'ı Toyota Motor Corporation'da geliştirdi.

Kanban üretim için oluşturulmuş olsa da yazılım geliştirme, akışı ve aktarım hızını artırma gibi aynı hedeflerin birçoğunu paylaşır. Yazılım geliştirme ekipleri, Kanban'a yol gösteren ilke ve yöntemleri kullanarak verimliliklerini artırabilir ve kullanıcılara daha hızlı değer sunabilir.

Image that shows people using Kanban boards.

Kanban ilkeleri

Kanban'ı benimsemek, ekiplerin önceki yöntemlerinden farklı olabilecek bazı temel uygulamalara bağlı kalmayı gerektirir.

Çalışmayı görselleştirme

Geliştirme ekibinin durumunu ve çalışma ilerleme durumunu anlamak zor olabilir. İş öğelerinin veya belgenin listesi olarak değil, görsel olarak sunulduğunda iş ilerleme durumunu ve geçerli durumu anlamak daha kolaydır.

Çalışmanın görselleştirmesi, Kanban'ın öncelikli olarak Kanban panoları aracılığıyla ele yaptığı temel bir ilkedir. Bu panolarda, genel durumu iletmek için ilerleme durumuna göre düzenlenmiş kartlar kullanılır. Çalışmayı panoda farklı durumlarda kart olarak görselleştirmek, bir projenin şu anda nerede durduğunun büyük resmini kolayca görmenin yanı sıra üretkenliği etkileyebilecek olası performans sorunlarını belirlemenize yardımcı olur.

Diagram showing a Kanban board.

Çekme modeli kullanma

Geçmişe dönük olarak proje katılımcıları, genellikle son tarihlerin kısıtlı olduğu geliştirme ekiplerine iş göndererek işlevsellik istedi. Ekiplerin zaman çerçevesi içinde işlevselliği sağlamak için kısayollar kullanmaları durumunda kalite zarar gördü.

Kanban, yapılan işleri dikkate almadan önce karşılanması gereken, üzerinde anlaşmaya varılmış bir kalite düzeyini korumaya odaklanır. Proje katılımcıları bu modeli desteklemek için zaten kapasitede çalışan ekiplere iş göndermez. Bunun yerine paydaşlar, kapasite kullanılabilir hale geldikçe bir ekibin iş akışına çektiği bir kapsamına istekler ekler.

WIP sınırı uygulama

Aynı anda çok fazla şey üzerinde çalışmaya çalışan ekipler, sık ve maliyetli bağlam değiştirme nedeniyle üretkenliğin azalmasına neden olabilir. Ekip meşgul, ancak iş tamamlanmadığından kabul edilemez düzeyde yüksek sağlama süreleri elde edilir. Bir ekibin aynı anda üzerinde çalışabileceği kapsam öğelerinin sayısını sınırlamak, bağlam geçişini azaltırken odağın artırılmasına yardımcı olur. Ekibin üzerinde çalışmakta olduğu öğeler, devam eden çalışma (WIP) olarak adlandırılır.

Ekipler bir WIP sınırına veya bir kerede üzerinde çalışabilecekleri en fazla öğe sayısına karar verir. İyi disiplinli bir ekip, WIP sınırını aşmamaya dikkat eder. Ekipler WIP sınırlarını aşarsa nedeni araştırır ve kök nedeni ele almak için çalışır.

Sürekli iyileştirmeyi ölçme

Sürekli iyileştirmeyi uygulamak için geliştirme ekiplerinin verimliliği ve aktarım hızını ölçmenin bir yolunun olması gerekir. Kanban panoları, bir iş akışındaki çalışma durumlarının dinamik bir görünümünü sağlar, böylece ekipler süreçlerle deneme yapabilir ve iş akışları üzerindeki etkiyi daha kolay değerlendirebilir. Sürekli iyileştirme için Kanban'ı benimsemiş takımlar, sağlama süresi ve döngü süresi gibi ölçümleri kullanır.

Kanban panoları

Kanban panosu, ekiplerin Kanban uygulamalarını uygulamak için kullandığı araçlardan biridir. Kanban panosu, fiziksel bir tahta veya sütunlar halinde yerleştirilmiş kartları gösteren bir yazılım uygulaması olabilir. Tipik sütun adları Yapılacaklar, Yapılıyor ve Bitti'dir, ancak ekipler adları iş akışı durumlarıyla eşleşecek şekilde özelleştirebilir. Örneğin, bir ekip Yeni, Geliştirme, Test, UAT ve Bitti'yi kullanmayı tercih edebilir.

Yazılım geliştirme tabanlı Kanban panoları, ürün kapsamı öğelerine karşılık gelen kartları görüntüler. Kartlar görevler ve test çalışmaları gibi diğer öğelere bağlantılar içerir. Ekipler, kartları süreçleriyle ilgili bilgileri içerecek şekilde özelleştirebilir.

Screenshot of a software development Kanban board.

Kanban panosunda WIP sınırı devam eden tüm sütunlar için geçerlidir. WIP sınırları ilk ve son sütunlara uygulanmaz, çünkü bu sütunlar başlatılmamış veya tamamlanmamış işleri temsil ettiğinden. Kanban panoları, sınırları aşan sütunlara dikkat çekerek ekiplerin WIP sınırları içinde kalmasına yardımcı olur. Ekipler daha sonra performans sorununu ortadan kaldırmak için bir eylem seyri belirleyebilir.

Kümülatif akış diyagramları

Yazılım geliştirme tabanlı Kanban panolarına yaygın olarak eklenen bir grafik, kümülatif akış diyagramı (CFD) olarak adlandırılır. CFD, genellikle birkaç hafta boyunca zaman içindeki her durumdaki öğe sayısını gösterir. Yatay eksen zaman çizelgesini, dikey eksen ise ürün kapsamı öğelerinin sayısını gösterir. Renkli alanlar, kartların şu anda içinde bulunduğu durumları veya sütunları gösterir.

CFD, performans sorunları ve ilerleme hızına yönelik diğer kesintiler de dahil olmak üzere zaman içindeki eğilimleri tanımlamak için özellikle yararlıdır. İyi bir CFD, bir ekip bir proje üzerinde çalışırken tutarlı bir yukarı doğru eğilim gösterir. Ekip WIP sınırları içinde çalışıyorsa grafikteki renkli alanlar kabaca paralel olmalıdır.

Image showing a cumulative flow diagram.

Renkli alanlardan bir veya daha fazlasında bulunan bir kabarıklık genellikle ekibin akışında bir performans sorunu veya engel olduğunu gösterir. Aşağıdaki CFD'de, tamamlanan yeşil çalışma düzdür, mavideki test durumu artarken, büyük olasılıkla bir performans sorunu nedeniyle.

Image showing a bottleneck in a cumulative flow diagram.

Çevik geliştirmede Kanban ve Scrum

Çevik geliştirme çatısı altında geniş bir uyum olsa da, Scrum ve Kanban oldukça farklıdır.

  • Scrum sabit uzunlukta sprint'lere odaklanırken, Kanban sürekli bir akış modelidir.
  • Scrum tanımlı rollere sahipken, Kanban hiçbir ekip rolü tanımlamaz.
  • Scrum ana ölçüm olarak hızı, Kanban ise döngü süresini kullanır.

Ekipler, en etkili şekilde çalışmalarına yardımcı olmak için genellikle hem Scrum hem de Kanban'ın yönlerini benimser. Hangi özellikleri seçtiklerinden bağımsız olarak, ekipler en uygun olanı bulana kadar her zaman gözden geçirebilir ve uyarlanabilir. Ekipler basit bir başlangıç yapmalı ve kullanıcılara düzenli olarak değer sunmanın önemini gözden kaçırmamalıdır.

GitHub ile Kanban

GitHub, proje panoları (klasik) aracılığıyla bir Kanban deneyimi sunar. Bu panolar belirli özellik geliştirme, kapsamlı yol haritaları veya yayın denetim listeleri için çalışmayı düzenlemenize ve önceliklendirmenize yardımcı olur. Kart durumunu ilişkili sorunlar ve çekme istekleriyle eşitlemek için proje panolarını (klasik) otomatikleştirebilirsiniz.

Azure Boards ile Kanban

Azure Boards , DevOps planlaması için kapsamlı bir Kanban çözümü sağlar. Azure Boards, Azure DevOps genelinde derin tümleştirmeye sahiptir ve Azure Boards-GitHub tümleştirmesinin bir parçası da olabilir.