Yazılım Mühendisliğinde Kanban Modeli

Kanban nedir?

Kanban Çevik yazılım geliştirme metodolojisinde geliştirme için çok popüler bir çerçevedir. Bir ekibin görevlerini ve çalışma kapasitesini görselleştirmenin şeffaf bir yolunu sağlar. Ekip üyelerinin üzerinde çalıştıkları projenin mevcut durumunu görselleştirmelerine olanak sağlamak için esas olarak fiziksel ve dijital panoları kullanır.

Kanban, 1940'larda Toyota'da ortaya çıktı. Kanban'ın Japonca anlamı "panolar"dır. Kanban panosunda sütunlar ve hikaye kartları bulunur. Sütunlar hiçbir şey ifade etmez, ancak iş akışı durumları ve kartlar bir ekip üyesinin gerçekleştirdiği gerçek görevin bir gösteriminden başka bir şey değildir.

Kanban ne zaman kullanılır?

Kanban geliştirme yöntemini kullanmanın nedenleri şunlardır:

  • Kanban her alanda kullanılabileceği gibi yazılım geliştirmede de oldukça etkili bir şekilde kullanılabilir. Kanban proje yönetimi ekibin verimliliğini artırmaya yardımcı olur.
  • Çekmeye dayalı bir sistemdir. Bir kişi özgür olur olmaz görevler çekiliyor.
  • Çalışmanızı istediğiniz zaman yayınlamak istediğinizde Kanban kullanılmalıdır. Git dallanmasını gerektirir, ancak yapılabilir.
  • Öncelikleri anında değiştirmek istediğinizde Kanban kullanılmalıdır. Bunun için tek yapmanız gereken bu hikayeyi yapılacaklar listesinin en üstüne koymak.
  • Çalışmanızı görselleştirmek istediğinizde ve görevlerinizin ilerleyişini görsel olarak görmek istediğinizde kullanılmalıdır.

Kanban Kartları

Kanban sistemi işin görselleştirilmesini önerir. Fiziksel ve dijital tahtanın kullanımını önerir.

Kanban Kartları
Kanban Kartları

Kanban kartları, ekibin üzerinde çalıştığı işi temsil ettiğinden Kanban tahtasının önemli parçalarıdır. Bu kartlar olacak

  1. öncelik
  2. Mal sahibi
  3. Tip
  4. Bitiş tarihi

Kanban panosundaki bir sütun, çalışma aşamasını temsil eder ve sütuna bir Devam Eden Çalışma (Work in Progress) sınırı koyabilirsiniz. Devam Eden Çalışma sınırı, o sütunda kalabilecek maksimum kart sayısı anlamına gelir.

Kanban proje yönetimi çekme tabanlı bir sistem kullandığından, geliştirici serbest kaldığında, yapılacaklar sütunundan geliştirici sütununa bir kart çekebilir.

Kanban Kurulu

Kanban Kurulu kişisel ve ticari amaçlarla projeleri yönetmek için Kanban'ın uygulanmasına yardımcı olan çevik bir proje yönetimi aracıdır. Ekiplerin çalışmalarını farklı aşama ve süreçlerde görselleştirmelerine yardımcı olmak için tasarlanmış fiziksel veya dijital (JIRA) bir panodur. Ayrıca kartların kullanıldığı sütunlarla çalışma aşamalarının temsil edilmesine de yardımcı olur.

Gibi işin durumunu temsil eden sütunlara sahiptir.

  1. Yapmak,
  2. dev
  3. Test yapmak
  4. Bağış yapın.

Bu sütunların her biri, <=Çalışılan Çalışma sınırına sahip kartlara sahip olabilir. Kartlar asıl çalışmayı temsil ediyor.

Devam eden çalışmayı sınırlamak için pozitif sayılar kullanabilirsiniz ve bu sınır numarası hem fiziksel hem de dijital Kanban panolarındaki sütunların üst kısmına yerleştirilebilir. Ekipteki herhangi bir kişi kartının durumunu yönetebilir ve ekibin tamamı iş akışını görselleştirebilir. Bu Kanban eğitiminde bir sonraki adımda Kanban İş Akışı hakkında bilgi edineceğiz.

Kanban İş Akışı

Kanban İş Akışı ekiplerin Kanban'da açık politika ve ilkeler tanımlamasına yardımcı olan bir dizi adımdır. Geliştirme ve teslimat döngülerinin çeşitli aşamalarında iş devam ederken kuralları ve prosedürleri temsil eder. Kanban iş akışı, belirli bir görevin başlatılması ile teslimi arasındaki adım adım süreçlerden oluşur.

Kanban'ın takip ettiği temel prensip şudur: “Başlamayı bırak, bitirmeye başla”. Devam Eden Çalışma limitleri sayesinde daha fazla iş yapılmasını sağlar. JIRA gibi herhangi bir modern araçta özelleştirilebilir Kanban iş akışları ve durumları mevcuttur.

Aşağıda birçok yazılım ekibinin iş akışı yönetimi için takip ettiği temel durumlar yer almaktadır.

Devletler Görevlerin anlaşılması
Yapmak Görevler bu durumda ilk kez buraya geliyor.
Analize hazır Görevi analiz edin ve gereksinimleri tamamen ekleyin.
Geliştirmeye hazır Analiz tamamlandı ve geliştirme başlayabilir.
Gelişimde Görevler geliştiriliyor.
Test için hazır Geliştirme tamamlandı ve artık test başlayabilir.
Testte Görevler test ediliyor.
Yayına hazır Test tamamlandı; serbest kalma gerçekleşebilir.
Yayınlandı/Bitti Yayınlandı.

Kanban'ın Dört İlkesi

Aşağıda Kanban'ın dört temel ilkesi yer almaktadır:

  1. Şu anda sahip olduklarınızla başlayın: Kanban sistemi, aşamalı olarak çalışmayı ve şu anda sahip olduklarınızla başlamayı önerir. Uygulamalarından biri de sürekli iyileştirme olduğundan, sistemi yavaş yavaş iyileştirmeniz gerekir.
  1. Artımlı, Evrimsel Değişimi Takip Etmeyi Kabul Edin: Kanban, süreçte kademeli bir değişiklik yapılmasını önerir ve süreçte tek seferde büyük bir değişiklik yapmamalısınız.
  1. Mevcut Sürece, Rollere ve Sorumluluklara Saygı Gösterin: Bir kez daha, şu anda sahip olduğunuz şeyle başlayın ve süreci, rolü ve sorumlulukları aşamalı olarak değiştirin.
  1. Her Düzeyde Liderlik Eylemlerini Teşvik Edin: Her birey bir lider olarak hareket edebilir ve genel Kanban sisteminin verimliliğini artırmak için fikirler sunabilir. Bunun yönetim düzeyinde bir faaliyet olduğunu, ekibin en genç üyesinin bile lider olarak hareket edebileceğini düşünmemelisiniz.

Altı Kanban Temel Uygulaması

Kanban'ın Altı temel uygulaması şunlardır:

  1. İş akışını görselleştirin: Bu prensip, iş akışını görselleştirmek için bir Kanban panosuna (fiziksel veya dijital) sahip olmayı önerir. Bir takımın her bireyi kendi kartını ve diğer takım üyelerinin kartlarını görmelidir. Yukarıdaki görsele göre kartlarınızı farklı sütunlara taşıyabilirsiniz. Ekip içinde çok fazla şeffaflık sağlar ve engelleyici unsurların çözümünü de kolaylaştırır
  1. Devam eden çalışmayı sınırlayın: Kanban, çekme tabanlı bir sistemdir ve devam eden işleri sınırlandırmak ve ekip tarafından verilen zaman çerçevesinde tamamlanabilecek görevlere sahip olmak için ekibin verimliliğini artırır. Bu Devam Eden Çalışma sınırı iş akışının başından sonuna kadar geçerlidir. Pozitif bir tam sayı kullanarak sınırı sütunun üstüne uygulayabilirsiniz.
  1. Akışa odaklanın: Bu prensip akışa ve her türlü kesintiye odaklanır. Kesintiler veya engelleyiciler varsa bunların kalıcı olarak düzeltilmesi gerekir.
  1. Açık Politikalar: Ekip halinde tekrar çalışmayı azaltıp dikkat gerektiren veya daha etkili olan alanlara odaklanacak politikalar oluşturulabilir.
  1. Geribildirim döngüsü: Kanban'da geri bildirim döngüleri çok önemlidir. Bu sadece takım içinde değil birden fazla takım, koç vb. arasındadır. Bu, Kanban sisteminin genel sağlığının iyileştirilmesine yardımcı olur.
  1. Sürekli İyileştirme: Kanban sisteminin temel prensibi budur. Süreci her zaman iyileştirebileceğinizi ve bunun daha iyi verimlilikle sonuçlanacağını belirtir.

Çekme Tabanlı Sistem

Kanban, görevlerin itilmek yerine çekildiği, çekme tabanlı bir yöntemdir. Mevcut kartınızı tamamladığınızda Kanban panosunun önceki sütunundan yeni bir kart çekebilirsiniz.

WIP sınırıyla Kanban, Lead Time ve Cycle Time'ın iyileştirilmesine yardımcı olur. Bu iki zamanlama arasında mümkün olan en az boşluk olmalıdır. Örneğin, 5 geliştiricimiz ve sadece 1 testçimiz var; bu durumda ne olacak? Her zaman test gerektiren birçok kart olacak ve bunlar boşta oturup bekleyeceklerdir.

Yukarıda belirtilen sorunların üstesinden gelmek ve verimliliği artırmak için Kanban, çekilecek sınırlı sayıda kartın olacağı Devam Eden Çalışma limitleriyle, çekme temelli yaklaşımı izliyor.

Yani bir test uzmanı, mevcut görevini tamamladığında "teste hazır" aşamasından bir görevi çekecektir. Kanban sütunlarındaki (geliştirme aşamaları) Devam Eden Çalışma sınırı ile Kanban iş akışında çok fazla gözetimsiz kartınız olmayacak.

Çekmeye dayalı sistem aynı zamanda takım için doğru hızın bulunmasına da yardımcı olur. Doğru hız uygulandığında takım daha iyi performans gösterecektir.

Teslim Süresi ve Çevrim Süresi

Kanban yönteminde teslim süresi ve çevrim süresi yaygın olarak kullanılmaktadır, ikisi arasında fark vardır ve karışıklığı önlemek için bunun anlaşılması önemlidir.

Kurşun zamanı Çevrim Süresi
Teslim süresi, görevin iş akışınıza ulaşması ile iş akışından ayrılması, yani serbest bırakılması arasındaki süre olarak ölçülür. Döngü süresi, görevin “devam ediyor” durumuna ulaşması ile görevin “yayınlanmaya hazır” duruma ulaşması arasındaki süre olarak ölçülür.

Burada, yayına hazır hale gelme ile fiili yayınlanma arasında geçen süreyi dahil etmemenin anlaşılması da önemlidir.

Cycle Time = Work in Progress/Throughput

İdeal senaryoda, teslim süresi ile döngü süresi arasındaki fark minimum düzeyde olmalıdır ve Kanban, teslim süresi ve döngü süresi geçmiş verilerini ölçmek için kümülatif bir akış diyagramı (CFD) kullanır.

Kümülatif Akış Diyagramı (CFD)

CFD tüm önde gelen borsalarda mevcut olan bir grafiktir. iş akışı yönetimi araçları JIRA gibi. Bu grafik, iş akışına giren ve zaman içinde tamamlanan kartların/görevlerin toplam miktarını ölçer.

Önceden belirlenmiş bir süre için ortalama teslimat süresi ve döngü süresine ilişkin bir tahminde bulunmanıza yardımcı olur.

CFD diyagramı size düzeltmeniz gereken göstergeler veya sorunlu alanlar verecektir. Size net bir resim sunacak ve bu diyagramı temel alacaktır. Ekibinizin teslim süresini ve döngü süresini düzeltebilirsiniz.

Kanban Kümülatif Akış Diyagramı
Kanban Kümülatif Akış Diyagramı
  1. Kurşun zamanı: Yeni bir kartın iş akışınıza gelmesi ile iş akışından son çıkışı arasında geçen süredir.
  2. Çevrim Süresi: Kartın çalışır duruma gelmesi ile kartın kullanıma hazır hale gelmesi arasında geçen süredir.
  3. WIP: Devam eden iş (WIP), iş akışının farklı aşamalarındaki maksimum iş öğesi miktarını sınırlar.
  4. çıktı: Gerçek performanstır ve belirli bir zaman diliminde teslim edilen gerçek kart sayısını belirtir.
  5. Üretim = Devam Eden Çalışma/Döngü Süresi

Devam Eden Çalışmanın Sınırlandırılması(Devam Eden Çalışma)

Kanban geliştirme metodolojisinde Devam Eden Çalışma, bir ekip üyesinin veya tamamının aynı anda üzerinde çalışabileceği görevlerin/kartların sayısını sınırlar.

Devam Eden Çalışma sınırları, ekibin çalışmalarını istikrarlı hale getirmesini sağlar ve çekme tabanlı sistemde önemli olan tahmin niteliğini artırır. Devam Eden Çalışma limiti kararı genellikle ekibin kendisi tarafından alınır.

Devam Eden Çalışma Limitlerini belirleme nedeni

Devam Eden Çalışma Limitlerini ayarlamanın nedenleri şunlardır:

  • Birey aynı anda tek bir göreve odaklandıkça, işleri halletmeye odaklanmayı değiştirir.
  • Ekiplerin kapasitelerini anlamalarına yardımcı olur.
  • Üretkenliği ve döngü süresini artırır.
  • Biriktirilen görevlerden kaçınmaya yardımcı olur (bekleme modunda).
  • İş akışının hareket etmesine yardımcı olur ve görevler ilerlemeye devam eder.
  • Ayrıca, bireyin farklı görevler arasında geçiş yapmaması nedeniyle engelleyicilerin çözülmesine de yardımcı olur.

Scrum Vs. Kanban

İşte arasındaki önemli farklar Scrum Vs. Kanban

Saldırı Kanban
Saldırı planlamaya vurgu yapar. Sprint planlamasıyla başlar ve sprint retrospektifiyle son bulur. Ekibin bir sonraki adımlar, öncelikler ve önceki sprintlerden öğrenilenler konusunda uyumlu olmasını sağlamaya yardımcı olan birçok toplantı düzenlenir. Kanban hareket halindeyken değişiklik yapmaya açıktır. Bu, daha az sertlik olduğu anlamına gelir ve işler sık ​​sık değişebilir.
toplanmasını tavsiye eder zaman ölçümleri sprintler sırasında yapıldı Kanban grafikleri önerir Takımın zaman içindeki ilerlemesine ilişkin genel bir bakış elde etmek için.
Saldırı artık takımlardan bir taahhüt ister. Bunun yerine, sprint hedefleri ve tahminleri ile ilgilidir. Kanban'ın güvendiği zamanlama ve tahminler.
Planlamaya vurgu yapar ve bu nedenle Tahminin çok önemli bir rolü var Scrum'da Kanban'ın var zorunlu gereklilik yok Tahmin için.
Her bireyin kendi rolü vardır ve sorumluluklar. Yok hayır rolleri esneklik sağlayacak şekilde ayarlayın Bireysel sorumluluklar açısından.
Yinelemeler/Sprintsüre olarak sabittir. Bu süre 2 hafta ile 1 ay arasında değişmektedir. Kanban süreye bağlı değil. Bu şey Döngü sürelerine göre ölçülür.
Takımlar taahhüt etmek gerekli belirli miktarda iş. Taahhüt gerekli değil takımlar için isteğe bağlıdır.
Bu yöntemde, çapraz fonksiyonlu ekipler yazılım geliştirmede darboğaza neden olabilecek her türlü aksaklıkla baş edebilecekleri için önemlidir. Sahip olan uzman ekip önemli.
Öyle öğe eklemek mümkün değil devam eden yinelemelere. yeni öğeler kolayca eklenebilir ek kapasite mevcutsa.
Bir sprint birikimi yalnızca bir kişiye aittir tek takım. Çoklu takımKanban panosunu paylaşabilirler.
Teslimatlar: sprintlerle belirlenirbir dizi çalışmanın tamamlanması ve incelemeye hazır olması gerekir. Ürünler ve süreçler sürekli olarak teslim edilir ihtiyaç duyulduğu takdirde. Yani test etme ve inceleme süreci aynı anda devam eder.
Scrum yazılım geliştirme yöntemi birikmiş işlere odaklanır. Tamamen Kanban yöntemi süreç kontrol paneline odaklanır.
Her ekip üyesinin belirli bir rolü vardır Scrum master'da zaman çizelgelerine karar verir, ürün sahibi amaç ve hedefleri belirler ve ekip üyeleri geliştirme çalışmasını yürütür. Bir ekip için önceden tanımlanmış roller yoktur. Ancak yine de bir Proje Yöneticisi olabilir; Ekip işbirliği yapmaya ve birlikte çalışmaya teşvik edilir.
ile projeler için en iyisi önceliklerin değişmesi. olan takımlar için idealdir. istikrarlı öncelikler zamanla değişmesi pek mümkün olmayan bir durum.
Üretimi ölçer hız kullanarak sprintler yoluyla. Üretimi şunu kullanarak ölçer: devir süresi veya bir projenin tam bir parçasını tamamlamak için gereken süre.
Scrum gerektirir geleneksel modelden tam geçiş Projenin uygulanacağı Agile Scrum modeline. Kanban köklü değişikliklere izin vermiyor Projede.
projeler için ideal bir yöntemdir. çok çeşitli öncelikler. Şunlar için en uygun: istikrarlı önceliklere sahip ekipler.
Scrum'da tüm süreçeam işbirliği yapmaya ve görevi tamamlamaya odaklanır kalite geliştirme çalışmaları sağlamak. Ekipler hedeflere ulaşmak için çalışır ve tüm süreci tamamlama süresini kısaltın. Dolayısıyla zaman döngüsünün azaltılması buradaki başarının en büyük göstergesidir.
Saldırı programlarına vurgu; Devam eden yinelemelere yeni öğeler eklenemez. Kanban doğası gereği daha yinelemelidir, çünkü belirli bir zaman dilimi yoktur. Böylece, ek kapasite mevcut olduğunda sürekli olarak yeni öğeler eklenebilmektedir.
Toplam iş şu tarihte yapılır: partiler/Sprints. Projenin tamamı hareket halinde gerçekleştirilir. tek iş parçacıklı iş öğesi akar.
Scrum ustası problem çözücü olarak görev yapar. Kanban teşvik ediyor Her ekip üyesi bir liderdir ve sorumluluğu hepsi arasında paylaşmak.
Scrum'ın öngördüğü zaman kutulu yinelemeler. Kanban'ın odaklandığı nokta farklı bir süre planlamak bireysel yineleme için.
Scrum firmaların şunları yapmasına yardımcı olur: zaman ve paradan tasarruf edin. Kanban yöntemi sürekli iyileştirmeye odaklanmak, üretkenlik ve verimlilik.
Başarmak istikrarlı ve tutarlı iletişim her seviyede performans. Ekip üyelerinin olasılığı daha yüksektir. hedeflerine çok daha kolay ulaşıyorlar Kanban panolarının görsel doğası nedeniyle.
Proje sprint sırasında kodlandı ve test edildi yorum Ekip üyelerinin olasılığı daha yüksektir. hedeflerine çok daha kolay ulaşıyorlar Kanban panolarının görsel doğası nedeniyle.
Öyle sürekli değişikliklere uyum sağlamak daha kolay Kısa sprintler ve düzenli geri bildirimler nedeniyle. Öyle düzenli ve sabit bir çıktı için tasarlanmıştırMüşteri talebindeki büyük değişiklikler Kanban'ın başarısız olmasına neden olabilir.
Projenin toplam maliyeti minimum düzeydedir ve bu da aşağıdakilere yol açabilir: daha hızlı ve daha ucuz sonuç. Bir görev doğru şekilde tahmin edilmezse, toplam proje maliyeti hiçbir zaman doğru olmayacakBu gibi durumlarda görev birkaç sprinte yayılabilir.
Bu metodoloji deneyimli ekip üyeleri gerektirir sadece. Yani ekip uzman olmayan kişilerden oluşuyorsa proje zamanında tamamlanamaz. Yok hayır belirli zaman dilimleri her aşamaya tahsis edilir, böylece ekip üyeleri her aşamada ne kadar zaman ayırabilecekleri konusunda hiçbir zaman fikir sahibi olmazlar.
Bu Çevik Scrum yönteminde, kaliteli bir ürün sunmak daha kolay planlanmış bir zamanda. Bir amaç için tasarlanmıştır düzenli, istikrarlı çıktı, Müşteri talebindeki büyük değişiklikler Kanban'ın düşmesine neden olabilir.
The proje planı asla rahatsız etmeyecek bir ekip üyesi ekipten ayrılsa bile. Ekip üyelerinden herhangi biri geliştirme sırasında çıkarsa, proje gelişimine zarar vermek.
Bazen günlük toplantılar hayal kırıklığına uğratmak takım üyeleri. Eski Kanban panosu geliştirme sürecinde sorunlara yol açabilir.
Büyük projeler kolayca bölünebilir kolayca yönetilebilir sprintlere dönüştürmek.

ÖZET

  • Kanban tanımı: Kanban, yazılım, otomobil, mal, ilaç, ayakkabı veya diğer üretim işlerini geliştirmek için çevik bir geliştirme metodolojisi olarak tanımlanır.
  • Kanban, işi görselleştirmek için Kanban panosunu kullanır. Sütunları aşamalar (yapılacaklar, geliştirme, test vb.) olarak ve kartları bir iş öğesi olarak kullanır.
  • Kanban metodolojisi görselleştirme için fiziksel ve dijital panoyu destekler.
  • Kanban, çekmeye dayalı bir sistemdir ve kartlar, ekip üyeleri tarafından bir önceki aşamadan mevcut aşamalara çekilir.
  • Kanban yöntemi, ekibin teslim süresini ve döngü süresini anlamak için CFD diyagramını kullanır. Bu grafik, ekiplerin bu iki zamanlama arasındaki boşluğu düzeltmesine ve verimliliği artırmasına yardımcı olur.
  • Kanban geliştirme metodolojisi, Devam Eden Çalışma, bir ekip üyesinin veya tamamının aynı anda üzerinde çalışabileceği görevlerin/kartların sayısını sınırlar.
  • Devam Eden Çalışma sınırları, bireyin aynı anda tek bir göreve odaklanması nedeniyle işleri halletmeye odaklanmayı değiştirir.