Scrum-Kanban-XP

İLAYDA KAYIM
HardwareAndro
Published in
4 min readApr 4, 2021

Selamlar, bir önceki yazımda Agile Metodolojisi’nden bahsetmiştim.

Bu yazımda sizlere Agile Metodolojisi’nin devamı niteliğinde Scrum, Kanban ve XP kavramlarından bahsedeceğim.

SCRUM ;

Karmaşık ürünlerin etkili bir şekilde oluşturulmasına uygulanabilecek çevik bir metodoloji ve süreç çerçevesidir. Scrum’un popüler olmasındaki en büyük sebep; ekip üyelerinin kendi kendini yönetmeye teşvik etmesidir. Ekibe her bir görevi yerine getirmesi talimatı verilmesinden ziyade, ekibe öncelikler verilir ve bu işin nasıl yapılacağına dair birçok kararı ekip üyeleri kendisi verir.

Bu şekilde daha yüksek üretkenlik ve daha mutlu ekip üyeleri ortaya çıkar :)

Scrum’un beş ana olayı vardır.

1-) Sprint

Genellikle 2–3 hafta süren zaman dilimidir. Ekip bu sürede geliştirip, test edip, release’e hazır hale getirmeye çalışır. Sprint uzunluğu ayarlandıktan sonra değiştirilmez.

Bir sonraki sprint öncekinden hemen sonra başlar.

Ürün iş listesinden ekibin tamamlayacağı işler seçilir ve sprint birikimi hazırlanır.

2-) Sprint Planlama

Sprint sırasında hangi ögelerin çalışılacağını seçme süreci, sprint planlama toplantısında yapılır. Max 8 saat ile sınırlıdır.

Planlamada yeni sprintte neler olacağı, nasıl ve ne zaman teslim edileceği tartışılır.

Hiçbir yönetici veya ürün sahibi, ekibe neyi başarması gerektiğini söyleyemez. Ekip neyi başarabileceğine kendisi karar verir.

Kapsamda önemli değişiklikler varsa, bir sprinti iptal etmek mümkündür.

Backlog denilen (ürün biriktirme listesi) öncelikli bir gereksinim listesi oluşturulur. Hep sprintten önce ürün iş listesinden döngünün bir parçası olacak bir dizi özellik seçilir.

3-) Günlük Toplantılar

Ekip, ilerlemeyi konuşmak için her gün günlük toplantılar yapar. Bu toplantılar 15–30 dk gibi kısa sürelerle gerçekleştirilir. Bu toplantılarda ekip üyelerinin dün neler yaptığı, bugün neler yapacağı ve yaptığı işte engellendiği bir kısım olup olmadığı gibi konular konuşulur. Hem ekip üyelerinin birbirinden haberdar olması hem de engellendikleri yerde birbirlerine çözüm sunması için bu toplantılar faydalıdır.

4-) Sprint Demo

Bir sprint’in sonunda Scrum uzmanı, geliştirmenin henüz biten ögelerini ürün sahibine ve paydaşlara gösterebileceği bir sprint demosu düzenler.

Bu şekilde müşterinin fikirleri geri dönüş alınarak değerlendirilir.

5-) Sprint Retrospektif

Sprint sonunda, tamamlanan iş release için hazırdır. Ekip daha sonra sprinti gözden geçirir. Bu sprintte öğrendiklerini ve bir sonraki sprint için neleri geliştirebileceklerini değerlendirirler.

Scrum, ekip üyeleri için üç ana rol tanımlar.

  • Ürün Sahibi
  • Scrum Uzmanı
  • Scrum Takımı

Ürün Sahibi ;

Ekibin en yüksek öncelikli ögeler üzerinde çalıştığından emin olmaktan sorumlu kişidir. Ürün sahibi bunu, gelecekteki iş ögelerinin bir birikimini koruyarak ve en yüksek öncelikli öğelerin en üstte olması için iş listesini sıralayarak yapar.

Ürün sahibi, üzerinde çalışılacak sonraki ögelerin tüm kuruluş tarafından açıkça görülebilmesini sağlamalıdır. Ayrıca bu ögelerin üzerinde çalışılmaya hazır olduğundan da emin olmalıdır. Yapılacak işin geliştirme takımının bütün ihtiyaçlarının karşılanmasında ve sorulan sorulara cevap verilebilmesinde hazırlıklı olmalıdır.

Scrum Uzmanı ;

Takımın ve organizasyonun Scrum’ın kurallarını ve davranışlarını anlamasına ve bunlara saygı duymasına yardımcı olmaya en çok katkıda bulunan ekipteki kişidir.

Katkılarını üç şekilde düşünebiliriz;

1-) Scrum Ekibine Servis :

Uzman, sorunlar çıktığında ana iletişim noktası olarak Scrum ekibine destek sağlar. Ekip üyelerinin birinin işini yapması engellenmişse, uzmanı derhal bilgilendirmeleri gerekir. Uzman, engeli kaldırmak için elinden geleni yapar.

Peki Scrum ekibi kimdir?

Projedeki tüm geliştiriciler, testçiler, tasarımcılar, veritabanı mühendisleri, geliştirme operasyon ekibi, kalite kontrol mühendisleri Scrum ekibine dahildir.

2-) Kuruluşa Hizmet :

Uzman, kuruluşun bir bütün olarak Scrum ilkelerini anlamasına yardımcı olmada öncü bir rol sağlar. Ekibin çerçeveye bağlı kalarak davranmasının sebebi uzmandır.

3-) Ürün Sahibine Hizmet :

Ürün sahibinin hazırladığı listede, yapılacak işlerin planlanmasında destek sağlar. Planlamanın Scrum kılavuzuna göre hazırlanmasında yardımcı olur.

KANBAN ;

Akışı teşvik eden ve iş ögelerinin takılıp kalmasını, engellenmesini veya gecikmesini engellemeye çalışan çevik bir metodolojidir.

Buradaki fikir ekibin tek seferde daha az öge üzerinde çalışması ve geliştirmenin her aşamasında harcanan zamanı azaltmaya odaklanmasıdır. Bu şekilde, görevlerin başlaması ve bitmesi arasında çok fazla zaman yoktur.

Geliştirme için belirlenen bir süre yoktur. Geliştirme sürekli devam eder. Yaşanılan geliştirmelere göre aksiyon alınır, önceden planlan toplantı yoktur. Geliştirilen iş sayısı direkt olarak sınırlandırılır. Bu kısıt iş akış durumuna göre karar verilir. Kapasite uygun olduğu sürece yeni işler eklenebilir. Kişilere herhangi bir rol verilmemiştir.

Kanban’ı uygulamak için kurallar vardır.

  • Limit ; Kanban’ın anahtarı, geliştirmedeki ögelerin sayısını sınırlamaktadır. Böylece daha çok öge başlatıp tamamlayabilirsiniz.
  • İş Akışı Görselleştirme ; Kanban tahtaları çok meşhurdur. Burada iş listesi, işlerin durumu için sütunlar kullanılır. Bu tahtalar ile ekibin ve tüm ofisin ilerlemeyi görmesini sağlayabilirsiniz.
  • Akışı Yönetme ; Ögelerin takıldığı, engellendiği ve yavaşladığı noktayı tahtadan takip ve analiz ederek belirleyebilir ve engeli ortadan kaldırabilirsiniz.

XP (Uç Programlama) ;

Yazılım geliştirme süresi boyunca son derece kaliteli olmak şartıyla çalıştırılabilir kod üretmeye odaklanmış bir yazılım geliştirme metodolojisidir. En başından itibaren çalıştırılabilir kodu sürecin merkezinde tutmaktır.

Kısa adımlardan oluşan tekrarlı bir süreçtir. Bir haftadan uzun olmayacak geliştirme süreleri vardır. İlk hafta bittikten sonra diğer hafta önceki haftanın üstüne eklenerek devam eder. İlk adımın sonunda minimum seviyede çalıştırılabilir bir örneğin oluşturulması gerekmektedir. Bundan sonra üzerine yeni özellikler ve iyileştirmeler eklenmelidir. Bu şekilde sık tekrarlar ile bir bütün oluşturulması hedeflenmektedir.

Uç programlama, her adımda genişletilebilir ve sürdürülebilir özellikleri bakımından kod kalitesine çok önem vermektedir. Hedef hem geliştirme hem refactor etmektir.

Refactor etmek, çalışan kodun işleyişine zarar vermeden onun kalitesini arttırmak, daha iyi hale getirilmesi için yapılan çalışmadır.

Uç programlamanın vazgeçilmez ve en üstte tuttuğu parçasıdır.

Temelinde diğer yöntemler gibi, planlama, sık ve küçük sürümler ortaya çıkarmak, müşteri ile yakın iletişim kurmak vardır.

Kod yazılmadan önce testinin yazılması, kod tekrarlarından kaçınılması, sade ve temiz kod yazılması, kodun hep çiftler halinde yazılması, yazılan kodun tamamlanmasından sonra hemen sistemle bütünleştirilmesi gibi konular temel prensipleri arasındadır.

Aynı zamanda bu yöntemde çalışanların haftada 40 saat çalışmasına ve bu sürenin üstüne çıkmamalarına dikkat edilmesi istenir.

Umarım faydalı olmuştur. Herkese iyi çalışmalar dilerim :)

--

--