29 Kasım 2019

Agile Metodolojilerden Kanban ve Scrum Arasındaki Farklar

Agile Metodolojilerden Kanban ve Scrum Arasındaki Farklar

Yazılım Geliştirme süreçleri ve SDLC (Software Development Lifecycle) yaşam döngüsünü daha verimli hale getirmek için Agile metodolojiler son zamanlar da fazlasıyla tercih edilmeye başlandı. Özellikle Türkiye’deki birçok Kurumsal ve Start-Up kurumlar Waterfall model yerine Agile modelleri olan Scrum ve Kanban’a geçiş yapıyor.

Türkiye’de en çok Scrum üzerine çalışmalar ve araştırmalar yapılmaktadır. Kanban metodu biraz daha az kullanılır. Kanban, işlerin görünürlüğünü biraz daha ön planda tutmaktadır. Work in Progress (WIP) sürelerini hızlandırmak ve verimliliği maksimum seviyeye çıkarmayı hedefler.

Scrum ise müşteriye belli bir süre taahhüt edip o sürede ürünü teslim etmeyi amaçlar. İki metotda kendine has Board yapısı kullanır, işlerini bunun üzerinden takip eder ve ilerletir.

Her iki Agile Framework’ü olan Scrum ve Kanban’ın farklılıklarını inceleyecek olursak;

Agile Metodolojilerden Kanban ve Scrum Arasındaki Farklar

1) Cadence (Ritim-Süre)
Scrum'da 2-4 Hafta uzunluğunda, başlangıç ve bitiş süreleri belli olan Sprint'ler ile işler yapılır. Bu süre zarfında işler PBI olarak Sprint içinde yapılabilecek küçük Story'lere bölünür. Burada önemli olan ekip Sprint süresince vaad ettiği PBI'ları deliver edebilecek mi? Bunun için kaliteden ödün vererek mi yapacak yoksa Story Point düşük gözükmesin diye tüm işler hızlıca yapılmaya çalışılıp hızlı development, az code review ve minimal test ile mi işler bitecek. İşte bunlar Scrum’daki handikaplardan biridir.

Kanban'da ise işlerin önceliğine göre sürekli Board'da duran Stroy'ler olup Work in Progress basamaklarında ilerleyen bir iş akışına sahiptirler. İş tüm progress'ler bitince bitmektedir. İşin bitmesi için 2-4 hafta taahüd edilmez. Analiz, Yazılım ve Test bitip Relaase kısma geldiğinde iş Done olarak kabul edilir. Buda zaman baskısını bir nebze olsun minimize eder.
Scrum’da olduğu gibi Kanban’da her iki haftada bir yapılan Sprint Planning ve Sprint Review yoktur.

2) Release Methodology (Sürüm ve Production)
Scrum'da her Sprint sonu Done olan PBI, Prod'a Release olabilecek bir Increment'dır. Sprint sonu Product Owner tarafından Done verilmiş ürün canlıya çıkabilir demektir.
Kanban’da ise Kesinleşmiş bir Release tarihi ve sürüm takvimi yoktur. Continuous Delivery (CD) mantığına dayanır. Özellikle DevOps kültürü oturmuş bir kurumda çalışıyorsanız. Continuous Integration (CI) ve Continuous Deployment (CD) süreçleri işliyorsa. Yazılan kod, kod review sonrası ilgili paket ortamlara merge edilip Pipeline’da Unit Test(By Developer) ve Otomasyon Testleri otomatik bir şekilde çalışıp kontrol sağlıyor ve Preprod ortama kadar sorunsuz gelebiliyorsa, o kurumda Kanban metodunu işletmek daha kolay olacaktır.

3) Roles(Roller)
Scrum’da Product Owner, Scrum Master ve Development Team Member olarak 3 rol vardır. PO ve Scrum Master genelde takım lideri veya yönetici rollerine bürünebilir veya kurum için bu Title’lar da olan kişilere Scrum takımı içinde buradaki roller verilebilir. Bu roller için geçmiş yazılarımda detaylı bahsettim. Scrum’da her rolün bir görevi vardır fakat Türkiye’deki kurumlarda bu çok doğru kullanılamamaktadır.

Kanban’da ise rol yoktur. Sadece Kanban Koçu vardır ve kurum dışından biridir. Amacı takıma Kanban Framework temellerini öğretmek ve Takım, Kanban çalışma biçimine ayak uydurana kadar onları yönlendirmektir. Yakım kendi kendini yönetebilecek duruma geldiğinde koç ayrılır veya takım üzerindenki takibini azaltır. Takım tüm işleri kendi içinde organize olarak ve ortak karar vererek yapar, doğal olarak roller yoktur. Herkes eşit member seviyesindedir, Kanban Master yoktur.

Agile Metodolojilerden Kanban ve Scrum Arasındaki Farklar

4) Key Metrics (Ölçümler)
Scrum'da Velocity en önemli metriktir. Sprint içinde alınan ve yapılan PBI sayısına göre ölçülür.
Kanban’da ise Lead Time (Teslim Süresi) ve Cycle Time (Döngü Süresi) takım için önemli metriklerdir. Story ne kadar sürede bitiyor ve takım ne kadar sürelerde Story eritebiliyor genelde buna bakılır. Bu metrikler ile takımın iş yapabilme seviyesi ölçülür.

5) Change Philosophy (Kapsam Değişikliği)
Scrum'da planlama dışında Sprint içinde pek değişikliğe gidilmez ve gidilmesi de çok istenmeyen bir durumdur. Bu kadar planlı bir süreç Türkyie’deki kurumları düşünecek olursak biraz meşakkatli olabilir.

Kanban'da ise iş akışı veya bir işin Priority'si her zaman değişebilir. Esneklik ve işi park etme biraz daha rahattır. WIP sınırı duruma göre ayarlanabilir.

Hangisini Seçmeli?
Sonuç olarak Scrum veya Kanban, İkiside Agile metodu olup kurumunuza en uygun kriterler hangi Framework’de ise onu seçmeniz daha doğru olacaktır. Önemli olan hangisinni daha iyi olduğu değil hangisni daha iyi uygulayabildiğiniz önemlidir.

Scrum veya Kanban’dan birini iyi uyguladığınız halde aynı sonuca varacaksınızdır.

Burak AVCI

Hiç yorum yok:

Yorum Gönder

Makaleye Yorum ve Sorularınızı Bırakabilirsiniz.