Agile 101: Kanban ve Scrum

Niluferaslan
Kod Gemisi
Published in
4 min readOct 4, 2021

Merhaba, bu yazımda size Agile metodolojisinin popstarları diyebileceğimiz Kanban ve Scrum boardlardan, bize sunduklarından ve aralarındaki farklılıklardan bahsedeceğim.

Öncelikle yazılım geliştirme projelerinde esas alınan Agile yönteminden kısaca bahsetmek isterim.

Agile, proje yönetimi ve ürün geliştirmeye göre yapılandırılmış bir dizi ilke ve yöntem bütünüdür. Yinelemeli bir yaklaşımdır. Agile metodolojisinin bir manifestosu vardır ve 12 ilkeye sahiptir. Bu ilkelerden bahsetmek bizim Scrum ve Kanban boardların fonksiyonlarını anlamamız açısından daha yararlı olur.

Agile Manifesto

1.İlk önceliğimiz yazılımların sürekli ve erken teslimi sayesinde müşteriyi memnun etmektir.

2. Müşterinin rekabet avantajı için değişen gereksinimler benimsenmelidir.

3. Daha kısa zaman dilimlerini tercih ederek, çalışan yazılımı birkaç haftadan birkaç aya uzanan süre içinde sık ​​sık teslim edin.

4. Geliştiriciler ve iş insanları tüm proje boyunca işbirliği içinde olmalıdır.

5. Projeler motive olmuş insanlarla devam etmelidir. Onlara ihtiyaç duydukları çalışma ortamını sunun ve istenilen desteği verin. İşi tamamlamaları için onlara güvenin.

6. Agile (çevik) süreçler sürdürülebilir kalkınmayı teşvik eder. Sponsorlar, geliştiriciler ve kullanıcılar süresiz olarak ve sürekli aynı tempoyu sürdürebilmelidir.

7. Çalışan bir yazılım, ilerlemenin birincil göstergesidir.

8. Bir geliştirme ekibine bilgiyi aktarmanın en etkili yolu yüz yüze görüşmedir.

9. Teknik mükemmellik ve iyi tasarıma sürekli dikkat etmek çevikliği artıracaktır.

10. Sadelik — yapılmayan iş miktarını en üst düzeye çıkarma sanatı — esastır.

11. En iyi mimariler, gereksinimler ve tasarımlar kendi kendini organize eden ekiplerden ortaya çıkar.

12. Düzenli aralıklarla, takımın nasıl daha etkili olacağına dair düşünülmeli ve davranışlar buna göre düzenlenmelidir.

Peki bu ilkeleri çalışma rutinimizde nasıl uygulamaya geçirebiliriz?

KANBAN

Kanban, işinizi görselleştirme, devam eden işi sınırlandırma ve işinizin statüsünü hızlıca değiştirme üzerine tasarlanmıştır. Önceliği farklı istekler olan takımlar için daha uygundur.

Kanban board, devam eden işlerin sayısını korurken süreci de izlememize yarayan bir panodur.

Bir Kanban panosunda;

· İş akışını oluşturan ve işin durumunu temsil eden sütunlar bulunur.

· Panoda bulunan bu kartlar bir sütundan diğerine taşınabilir. İş takip yazılımlarından örnek verecek olursak, mesela Jira’daki Kanban board üzerinde kartlar soldan sağa hareket ettirilebilir. Bu, işin durumunun değiştiği anlamına gelir. Kartlar ekip üyelerinin üzerinde çalıştığı işleri temsil eder.

· Bir teslim tarihi bulunur. Ürünün/özelliğin müşteriye ulaştırılacağı son tarih işaretlenir.

· WIP sınırları (Work in progress limits) bulunur. Bir sütunun devam eden çalışmalarla ilgili genişleyebileceği sınırları belirler.

· Taahhüt noktası bulunur. Bir işin müşterinin eline ulaştığı son noktayı işaretlemek için kullanılır.

İşi yapan ekip tüm Kanban panosuna hakimdir. Scrumdaki gibi bir ‘’Kanban master’’ bulunmaz. Panodaki görevler ekibin ortak sorumluluğundadır.

SCRUM

Scrum, ürünlerin/özelliklerin birbiri ardına yineleyen periyodlarda geliştirildiği agile (çevik) bir yöntemdir. Ekipler, sprint adı verilen -yaygın olarak- iki haftalık ve tekrarlayan zaman dilimlerinde tamamlanan işi teslim etmeyi taahhüt eder. Buradaki amaç müşteriden geri bildirimi hızlı almaktır. Gereken geliştirmelerin ya da değişikliklerin işe hızlıca entegre etmek önemlidir.

Bir Scrum panosunda;

· Ürünün bir backlogu bulunur. Backlog, yol haritalarından ve gereksinimlerden yola çıkarak üretilen bir yapılacak işler listesidir.

· Sprint backlog bulunur. Geliştirme ekibinin sprint esnasında tamamlaması gereken işlerin listesidir. Buradaki işler backlogdan o Sprint’te yapılmak üzere seçilen işlerdir, nadiren yeni bir gereksinim de buraya yeni bir iş olarak eklenebilir.

· In progress ve Done statüleri bulunur. Sprint esnasında bir görev In progress sütununda ise hala geliştiriliyor ve üzerinde çalışılıyor demektir. Done statüsü ise işin tamamlandığı anlamına gelir.

Kanban panosuna benzer olarak kartlar soldan sağa hareket eder ancak Scrum panoda bu işlerin bitirilmesi için belirlenmiş/kısıtlı bir zaman dilimi vardır.

Scrum’da ürünün özellkilerine karar veren bir ürün sahibi, bir geliştirme ekibi ve takımın Scrum prensiplerine bağlı kalmasını kontrol eden Scrum Master gibi roller mevcuttur.

Genel olarak özelliklerine ayrı ayrı baktıktan sonra biraz da Scrum ve Kanban arasındaki önemli farklardan bahsedelim.

· Güncellemeler

Scrum ekipleri sprint sırasında panoya yeni bir görev eklememelidir. Çünkü sprint öncesinde görevler ve tamamlanacakları süre planlanmıştır; eklenecek işler planlanan süreyi etkiler ve sprint sonunda ne kadar verimli çalıştığınız konusunda alacağınız rapor güvenilirliğini yitirecektir.(Elbette bu teorik bir bilgidir ve idealde olması gerekendir, iş hayatında böyle kuralların hep istisnalarla göz ardı edildiğini görürüz.)

Kanban panosununda ise güncellemek için bir sınır bulunmaz. Eğer görevler geliştiriliyor statüsünden bitti statüsüne sürüklenmişse görev kapasitesindeki boşluk yenileriyle doldurulabilir.

· Önceliklendirme

Kanban panolarında -genelde- bir önceliklendirme kullanmaz. Olasılıklı tahmin esas alınarak proje planlaması yapılır.

Scrum’da önceliklendirme önemli bir konudur. Mevcut sprint içindeki rutinde backlog listelerinin düzenlemesi ve günlük Scrum toplantılarında önceliklerin belirlenmesi gerekebilir.

· Sıfırlama periyotları

Scrum’da sprint içindeki tüm görevlerin bitti (Done)statüsünde olması beklenir. Eğer bu gerçekleşmezse sprint başarısız sayılır.

Kanban’da ise sıfırlamak ve baştan başlamak gerekli değildir. Sürekli devam eden bir iş akışı vardır.

Hem Scrum hem de Kanban panoları, fikir aşamasından tamamlanmaya kadar proje durumunu izlemek için Agile(Çevik) metodolojinin hedefler belirleme ve iş akışını planlama ilkesinden faydalanır. Bütün bunların haricinde Scrum panoları Agile ilkelerini daha sistematik uygulamayı mümkün kıldığından daha metodiktir diyebiliriz; ancak daha fazla hazırlık süresi ve organizasyon gerektirir, Kanban panoları ise ekip üyelerine daha fazla hareket alanı sağlar ancak aynı düzeyde bir organizasyon yapısı sağlamaz.

Bu açıklamalar ve incelediğimiz farklardan sonra projeler için hangisi daha iyi diye bir soruyla karşı karşıya kalmamız doğaldır. Bazı ekipler sadece Scrum ya da Kanban ile ilerken bazıları ise ikisinden hibrit bir model yaratıp öyle ilerlemeyi seçebiliyor. Bu tamamen projenin yapısı ve ekibin en verimli çalışabildiğiyle alakalıdır.

Agile metodoloji sadece yazılım projelerinde değil şu an pekçok sektörde kullanılıyor, sonraki yazılarımızda farklı sektörlerdeki kullanımları ve farklılıklarından bahsedeceğiz.

Agile kavramları ve yöntemleriyle ilgili varsa fikir, öneri ve deneyimlerinizi paylaşmanız dileğiyle.

--

--