Scrum vs Kanban

Scrum vs Kanban

Agile metodolojiler ve framework’ler arasında Scrum ve Kanban konusunda çok fazla kafa karışıklığı mevcut. Agile ne? Scrum ne? Kanban ne? sorularını geçtikten sonra Scrum ile Kanban arasında nasıl farklar var? sorusu geliyor. Scrum vs Kanban dendiği zaman, kendi şirketinde uygulanan metodolojinin en doğrusu olduğunu düşünen ve bunu empoze etmeye çalışan, her iki taraf için de geçerli çok ciddi taraftar kitleleri mevcut. Bu yazıda kısaca her ikisinin de birbirlerine kıyasla farkları, artıları ve eksilerine değiniyor olacağız. O zaman başlayalım.

Metodoloji vs Framework

Konuya başlamadan önce metodoloji ve framework arasındaki farktan bahsetmek istiyorum. Birinin scrum veya kanban hakkında konuşurken Scrum Metodolojisi veya Scrum Framework’ü şeklinde bahsettiğine rastlamışsınızdır diye düşünüyorum. Belki çok dikkat etmeden okuyup geçiyoruz ama hangisinin doğru olduğunu bilmek gerekir diye düşünüyorum.

PMBOK metodoloji kelimesini şu şekilde açıklıyor: “A system of practices, techniques, procedures, and rules used by those who work in a discipline.”

Framework kelimesinin açıklamasını da whatis.com üzerinden şu şekilde buldum: “In general, a framework is a real or conceptual structure intended to serve as a support or guide for the building of something that expands the structure into something useful.

Bu açıklamalara bakarak şu şekilde düşünebiliriz, framework’lerde işleyiş değişmediği sürece farklı yöntemler ve araçlar ile desteklenip bir ürün çıkartılabilirken, metodolojilerde işin hangi teknikler, hangi araçlar ve hangi kurallar ile yapılacağı kesin belirtilmiştir. Scrum Guide bize işi nasıl yapmamız gerektiğini anlatırken, hangi araçları kullanacağımızı tamamen bize bırakmıştır. Örnek olarak “Sprint performansını ölçmek için Burndown chart kullanılması gerekir.” dememesi ve bunu tamamen Development Team‘in tercihi olarak bırakması düşünülebilir. Bu yüzden Scrum’ı framework olarak adlandırıyoruz. Konuya metadoloji tarafından baktığımızda da eXtreme Programming’in metodoloji olarak adlandırılabileceğini düşünüyorum. Her adım için kesin kullanılması gereken araçlar şunlardır demese de sistem dizaynı için CRC Card kullanılması gerektiğini kurallarında belirtmesi bunun için örnek gösterilebilir.

Scrum

Scrum, işleyiş olarak çok iyi tanımlanmış kurallar bütününe sahip bir Agile framework’dür. Öncelikle ekibin öğrenmesi ve uygulaması gereken çeşitli süreçler mevcut. Bu süreçler de daha önce Agile prensipler ile çalışmamış bir ekip için çok hızlı ve kolayca implemente edilebilecek bir süreç değil. Scrum’a geçmek isteyen bir ekibin, Sprint’ler halinde çalışmayı öğrenmesi, self organized ve cross-functional bir geliştirici ekip kurabilmesi, Scrum seremonileri adı verilen çeşitli toplantıları organize etmesi ve katılması ilk sayılabilecek örnekler arasındadır. İlk adımların atılmasının ardından da ekibin kendini sürekli geliştirip, kod kalitesini arttırması ve daha çok sorumluluk alması beklenecektir. Son cümleyi aslında hem bir zorunluluk hem de Scrum uygulanmasının ardından gelecek doğal bir sonuç olarak da düşünebiliriz.

Kanban

Kanban, Scrum kadar yapılandırılmış bir framework değildir. Zaten süreç anlamında kurallara sahip de değil. Kanban, waterfall dahil tüm yazılım geliştirme metodolojileri ile birlikte kullanılabilir. Kanban’ın asıl mantığı, bir board üzerinde, ilgili ürünün geliştirilme aşamasında, başından sonuna kadar tüm adımları görebiliyor olmak. Board üzerinde, her bir işin anlık olarak alabileceği durumu işaret eden kolonlar yer alır. Bu kolonlar soldan sağa doğru yeni işlerin yer aldığı en soldaki kolondan, tamamlanan işlerin yer aldığı en sağdaki kolona doğru devam eder. Bu kolonlar şirket ihtiyacına göre şekillendirilebileceği gibi varsayılan olarak New, In Progress, Testing, Ready For Release, Released kolonlarını düşünebiliriz.

Kanban’ın şart koştuğu tek kuralı WIP limitleme olarak düşünebiliriz. Board’umuzda bulunan tüm kolonlar için bir maksimum iş limiti koymalıyız. Örneğin In Progress kolonunda maksimum 5 iş olabilir kuralı konulması halinde, geliştirici ekibin aynı anda 6 ve üstü işle uğraşmaması gerektiği belirlenmiş oluyor. Bu sayede yeni işe başlamak isteyen bir geliştiricinin, önce üstten gelen işleri tamamlaması gerekiyor. Aynı şekilde Testing kolonunda maksimum 10 iş olabilir kuralı ile test ekibinin daha fazla sorumluluk alması gerektiği belirlenebiliyor.

Scrum vs Kanban

İkisi hakkında da biraz fikir sahibi olduğumuza göre, benim şirketim için hangisi daha uygun?

Oturmuş bir yapımız var ve işler yürüyor. Fakat kimseyi ürkütmeden biraz gelişme kaydetmek ve hızlanmak istiyorsak doğru tercih Kanban olacaktır diye düşünüyorum. Ama işlerin yürümediği ve değişimin kaçınılmaz olduğu bir setup mevcutsa veya daha büyük değişimlere açıksak Scrum doğru tercih olacaktır.

Konuyla ilgili sorular beni çok memnun eder. Detayını merak ettiğiniz bir konuyu sormaktan çekinmeyin lütfen.

Share

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir