Scrum
Scrum, karmaşık yazılım projelerinin başarı oranını yükseltmek için oluşturulmuş proje yönetim metotlarından biridir. Karmaşık ve zor yazılım süreçlerinde ekip üyelerinin hangi aşamada oldukları, sonraki adımların neler olduğu ve gelecekte karşılaşabilecekleri zorluklar hakkında konuşmak için bir araya geldikleri kısa toplantılardır.
Tüm aşamaların planlı bir şekilde yürütülmesinin zor olacağı düşüncesi ile bu karmaşık düzeni azaltmak için kısa aralıklarla, küçük parçalara ayrılarak, tekrara dayalı bir yöntem izlenir. Bu sayede her parça tek tek incelenip gerekli değişiklikler anında yapılabilir, hatalar kolaylıkla tespit edilebilir.
Esnek bir yapısı bulunur ve Scrum’da takım çalışması son derece önemlidir. Scrum, Agile proje yönetim metotlarından biridir. Şeffaflık, denetleme ve uyarlama gibi 3 temel prensip üzerine kurulmuştur. Scrum, bağlılık, cesaret, odak, açıklık ve saygı duyma gibi değerlere bağlıdır.
Yazılım geliştirme, mühendislik, insan kaynakları, pazarlama ve tasarım gibi her türden ekip, Scrum'ı kullanır. Ancak Scrum, yazılım geliştirme ve mühendislik ekipleri arasında daha yaygındır.
Scrum Yapıtları
Scrum ekipleri, sorunları çözmek ve projeleri yönetmek için Scrum yapıtları adı verilen araçlar ile ekiplere planlama bilgilerini sunarlar.
- Ürün İş Listesi - Ürünü geliştirmek için gerekli olan ve üründe olabilecek olası değişiklerin olduğu sıralı bir listedir.
- Sprint İş Listesi - Sprint iş listesi, mevcut Sprint döngüsünde olan, geliştirme ekibi tarafından tamamlanması gereken görevlerin listesidir.
- Ürün Parçası - Sprint’in son ürünüdür. Bir Sprint boyunca tamamlanan Ürün İş Listesi kalemlerinin ve tüm geçmiş Sprint’lerin değerlerinin toplamıdır.
Scrum Ekibinde Yer Alan Roller Nelerdir?
Scrum takımı, Scrum'ın temel birimidir. Scrum ekibinde Product Owner, Scrum Master ve geliştiriciler olmak üzere üç temel rol vardır. Scrum takımları kendi kendilerini yönetirler.
Product Owner: Product Owner, Scrum takımının ortaya çıkardığı ürünün değerini maksimize eden, bunun nasıl yapılacağını düşünen, çalışma sonunda ortaya nasıl bir ürün çıkacağına ve bu ürünün hangi özelliklere sahip olacağına karar veren kişidir. Yani kısaca ürünün değerini belirler, ürünün ihtiyacı olan ve ileride olacak tüm ihtiyaçların yer aldığı ürün backlogunu (product backlog) yönetir.
Product Owner’ın rol ve sorumlulukları şunlardır:
- Ürün hedefini açıkça belirlemek,
- Ürünün özelliklerini açıkça belirlemek,
- İş listesini oluşturmak ve ögeleri belirlemek,
- İş listesini takip etmek,
- İşin değerinin sürekli artmasını sağlamak
Scrum Master: Scrum Master, Scrum kılavuzunda tanımlandığı şekilde Scrum'ı kurmaktan sorumlu olan ve işleri zamanında teslim etmek üzere takip eden kişidir. Ayrıca Scrum Master şunlardan sorumludur:
- Scrum takımının etkinliklerini düzenleme,
- Etkinliklerin zamanında bitirilmesini sağlama,
- Scrum takımının ilerlemesinin önündeki engellerin kaldırılmasını sağlama,
- Scrum'ın benimsenmesinde organizasyona liderlik etme, eğitme ve ekibe koçluk yapma,
- Scrum uygulamalarını planlama,
- Cesaret, odaklanma, bağlılık, saygı ve açıklık gibi Scrum değerlerinin korunmasını sağlama
Geliştirici Ekibi: Geliştiriciler, Sprint’ler boyunca bir ürün ya da ürün özelliği için Product Owner tarafından belirlenmiş işleri üstlenir ve bunu Sprint sonuna kadar gerçekleştirir. Geliştiricilerin sorumlulukları şunlardır:
- Sprint listesi için bir plan oluşturma,
- Sprint’i zamanında tamamlama,
- Planlarını Sprint hedefine göre uyarlama
Scrum Etkinlikleri
Sprint
Sprint’ler diğer tüm etkinlikler için kapsayıcıdır. Sprint, bir ay veya daha kısa süreli, bir işin tamamlandığını gösteren zaman dönemleridir. Bir Sprint tamamlandıktan sonra yeni bir Sprint başlar.
Sprint planlama, günlük Scrum’lar, Sprint inceleme ve Sprint retrospektifi gibi diğer tüm çalışmaları kapsar. Sprint süreleri genellikle 2 veya 4 hafta üzerinde değişmektedir. Bu süre uzadığında karmaşıklık olabilir ve riskler artabilir. Bu nedenle de maliyeti azaltmak ve riskleri ortadan kaldırmak için daha kısa süreli Sprint’ler kullanılır.
Sprint Planlama
Sprint planlama, Sprint için yapılacak işi belirleyen, işin nasıl başarılacağını anlatan, Sprint’i başlatan olaylardır. Sprint ile neler yapılabileceği Product Owner, geliştirme takımı ve Scrum Master tarafından konuşulur. Görevler geliştirme takımı tarafından küçük parçalara ayrılırlar.
Günlük Scrum
Günlük Scrum, her bir ekip üyesinin hangi aşamada olduğunu söylediği en fazla 15 dakika süren iletişim toplantısıdır. Günlük Scrum’ın amacı, Sprint hedefine doğru ilerlemeyi ve iş listesinde ne durumda olunduğunu incelemektir.
Genellikle her gün, aynı saatte ve yerde yapılır. Her gün yapıldığı için iletişimi güçlendirir, riskleri azaltır ve uzun toplantıları ortadan kaldırır.
Sprint İncelemesi
Sprint incelemesi, her Sprint sonunda yapılan, Sprit’lerin gözden geçirilmesini sağlayan değerlendirmelerdir. Sprint incelemesinin amacı da Sprint’in sonucunu incelemek ve hata var ise düzeltilmesini sağlamaktır.
Sprint Retrospective
Sprint Retrospektif, son Sprint’in nasıl geçtiğini değerlendiren, Sprint sırasında neyin iyi gittiği, hangi problemlerle karşılaşıldığı ve bu problemlerin nasıl çözüldüğü üzerine yapılan toplantılardır. Yani amacı, kaliteyi artırmanın yollarını planlamaktır. Bu toplantılara geliştirme ekibi ve Scrum Master katılır.
Scrum Uygulamanın Faydaları Nelerdir?
Scrum yaklaşımı genellikle birçok fayda sağlar. Scrum'ın faydalarını gerçekleştirmek için Scrum takım üyeleri görevini düzgün bir şekilde yerine getirmelidir. Peki Scrum kullanmanın faydaları tam olarak nelerdir?
- Yüksek kalite: Scrum metodunda test etme ve sürüm kontrolü olduğu için hatalar erkenden tespit edilir ve oluşan hatalar ortadan kaldırılır. Bu test ne kadar erken başlarsa, sorunları bulmak ve düzeltmek o kadar kolay olur. Böylece yüksek kaliteli ve istikrarlı bir ürün üretilmiş olur.
- Düşük maliyetler: Scrum metodunun uygulanması ile beraber verimlilik artar, istenmeyen sorunlar büyümeyeceği için projenin maliyeti de aynı ölçüde azalmış olur.
- Daha az risk: Scrum'ın sağladığı yararlardan biri de riskin azaltılmasıdır. Scrum, koordineli ekipler, değişimlere karşı esneklik ve sürekli geri bildirim gibi özellikleriyle riskleri azaltma fırsatı sunar.
- Değişime hızlı uyum: Scrum'ın önemli bir faydası değişikliğe hızlıca yanıt verebilmesidir.
- Takım bütünlüğü: Scrum’da ekipler koordineli bir şekilde çalışırlar.
- Üretken Scrum ekipleri: Scrum’da kendi kendini yöneten ve organize eden ekipler bulunur. Destek ve güven ortamı oluşturarak ekiplerin genel motivasyonunu yükseltir.
- Zamanında teslimat: İyi tanımlanmış Sprint’ler, adımları doğru bir şekilde takip etmeyi sağlar. Bu da ürünün gecikme olmadan, zamanında teslim edilmesine yardımcı olur.
Scrum Eğitimi
Scrum ve Agile kullanıcılarının katıldığı eğitimlere Scrum eğitimi denir. Scrum eğitimleri seviyelerine göre ayrılmaktadır. Scrum hakkında çok çeşitli kitap, online Scrum dersleri ve videolar mevcuttur. Scrum sertifikası veren kurumlar da bulunmaktadır. Eğitimde Scrum takımı, Product Backlog, Sprint ve Sprint planlama, Scrum rolleri, Scrum toplantıları gibi konulardan bahsedilir.