SCRUM

Esma SUNULU
Yetkin Yayın

--

Herkese merhaba. Sizlere geçen agile metodu üzerine yazdığım yazımda bahsettiğim scrum’ı anlatacağım.

PEKİ AMA NEDİR BU SCRUM?

Scrum; Agile proje yönetim metodolojilerinden biridir. Kompleks yazılım süreçlerinin yönetilmesi için kullanılır. Bunu yaparken bütünü parçalayan; tekrara dayalı bir yöntem izler. İhtiyaca yönelik ve esnek bir yapısı olduğu için müşteri ihtiyacına göre şekillenir ve müşterinin geri bildirimine göre yapılanmayı sağlar. İletişim ve takım çalışması çok önemlidir. Birçok modern yazılım projesinin oldukça karmaşık olduğu ve en baştan tümünü planlamanın zor olacağı şeklindeki bir varsayımdan hareket eder. Bu karmaşıklığı 3 temel prensip ile çözmeye çalışır:

1. Şeffaflık: Projedeki ilerlemeler ve sorunlar günlük olarak tutulur ve herkes tarafından izlenebilir olması sağlanır.

2. Gözlem: Ürünün parçaları ya da fonksiyonları düzenli aralıklarla teslim edilir ve değerlendirilir.

3. Uyumlanma: Ürün için gereksinimler en baştan bir defalığına belirlenmez, bilakis her teslimat tekrar değerlendirilir ve duruma göre uyarlamalar yapılır.

SCRUM’IN YAPI TAŞLARI:

1) Product Backlog:

Product Backlog taleplerin oluşturulması ve proje için gerekli olan gereksinimler listesidir. Toparlanan kullanıcı hikâyeleri product owner tarafından önceliklerine göre düzenlenir ve gerçekleştirilme zamanı takım’ın yardımı ile tahmin edilir.

Product backlog; geliştirilmekte olan ürünün önceliklere göre sıralanmış işlevleri kapsar. Değişim taleplerinin alındığı tek yerdir ve ekleme, çıkarma, öncelikler gibi işlemler product owner tarafından yapılır. Böylece değişim, projenin her aşamasında projeye kolayca entegre edilebilir olur.

2) Product Backlog Item:

Product backlog içerisindeki her bir gereksinime verilen isimdir.

3) Sprint:

Proje sprint denilen küçük kısımlara ayrılır. Scrum içerisindeki tüm aktiviteler sprint içerisinde 1–2 haftalık süreçte gerçekleşir.

4) Sprint Backlog:

Geliştirme takımları tarafından product backlog itemlar öncelik sırasına göre sprint içerisine alınırlar. Bir sprint boyunca yapılacak itemların listesi oluşturulur ve işlerin detaylı olarak zaman çizelgesi çıkartılır.

5) Scrum Board:

Sprint içeriği halledilmesi gereken görevleri gösterir. Bu amaç için dört sütunlu bir görev tahtası kullanılır:

1. sütun’da Sprint’de bulunan İş Parçacıkları (“Stories”)

2. sütun’da görevler (“ToDo”)

3. sütun’da çalışma (“In Progress”) ve

4.sütun’da teslime hazır (“Done”) olan iş parçacıkları bulunur.

Yazılım takımı elemanları günlük Scrum’da önceki gün hangi görev üzerinde çalıştığını ve bitip bitmediği hakkında bilgi verir. Bir günde bitmeyen görevler ise kırmızı bir nokta ile işaretlenir. Böylelikle engeller kolayca tespit edilir. Scrum Toplantılarında bu maddeler duruma göre değişmektedir.

6) Burndown Chart:

Yatay ekseninde sprintin günlerini, dikey ekseninde sprintte kalan işi gösteren grafiktir. Scrum’ın temel ilkelerinden olan şeffaflığı sağlar.

ROLLER

1)Product Owner:

Product owner; stratejik ürün geliştirmeden sorumludur. Geliştirme takımı ve müşteri arasında köprü oluşturur. Projenin özelliklerini tanımlar ve projenin önceliklerine göre product backlog’u oluşturur. Örneğin; 4 haftalık çalışma için 50 maddelik sprint için yapılıp yapılmayacağına karar verir. İşin değeri bölü işin emeğini hesaplar. Çıkan sonuçta en az emek ile en yüksek değeri elde edilen sprint kapasiteyi aşmayacak şekilde başa alınır. Sorumluluk product owner’a aittir. Product owner’ın sprinti iptal etme yetkisi vardır.

Sprint neden iptal edilir?

Hızla değişen ortamlarda her sprinte alınan işlerin iş birimi için önemi kalmamış olabilir ya da sprinte alınan işlerden daha önemli işler ortaya çıkmış olabilir.

2) Scrum Master:

Süreçten sorumlu, takımın arkadaşı ve yardımcısı, sürecin doğruluğunun denetleyicisi, takım ile birebir bağlantılı ve Takımın yanında çalışır.

· Scrum kurallarını, teorilerini ve pratiklerini iyi bilir ve takım kurallarını uygulanmasında sorumlu kişidir.

· Scrumu uygulamak ve product owner ile yazılım takımına destek olmak.

· Engelleri kaldırmak (örnek; rol sahipleri arasındaki çelişkiler) ve süreçteki sapmaları düzenlemek.

· Takıma hizmet etmek ve meslektaş bir yönetim tarzı ile yönetmek. (Yönetici değildir.)

3)Geliştirme Takımı:

Sprint’ alınan bütün işleri tamamlayacak özelliklere sahip kişilerden oluşur. Sprint backlogu oluştururlar. Kendi Kendilerini yönetirler. İşin verilmesini beklemezler, işi kendileri alır ve geliştirirler. Tek görevleri yoktur. Çapraz görev dağılımı yaparlar. 5–7 kişiden oluşur. Projenin geliştirilmesinden sorumludurlar.

TOPLANTILAR

1)Sprint Planning:

Bu toplantıda product owner kendi yazılım takımına ürün içeriğinde (Product Backlog) kararlaştırılan kullanıcı hikayelerini (User Stories) öncelik sırasına göre belirtir ve gereksinimler takım tarafından netleştirilip yazılı olarak kaydedilir. Kullanıcı da işlevsellik konusunda önemli bilgiler verebilir. Bunun dışında ürün sahibi ve takım sprint içinde olması gereken işlevler ve kriterler üzerinde anlaşırlar. “NE?”,”NASIL?” sorusu ön plana çıkar. Yazılım takımı hangi kullanıcı hikâyelerinin sprint’e dahil olduğunu bilir ve uygulamanın(teorik) teknik boyutu açıklanır. Toplantı Takım’ın kendi sorumluluğunda organize edilir. Takımdaki her bir kişi hızına göre bu görevleri kendilerine alır.

2) Daily Scrum:

Her gün aynı yerde ayak üstü yapılan 15 dakikalık toplantılardır. Gelecek 24 saati planlamak üzere yapılır.

3) Sprint Review:

Her sprint sonunda yapılır. Yapılan sprint gözden geçirilir ve ortaya çıkan ürün değerlendirilir. Amaç yazılımın ürün sahibinin gereksinimlerine uygun olarak geliştirildiğinden emin olmaktır. Hata fark edilirse düzeltilir.

4) Sprint Retrospective:

Geçmişe bakış toplantıları, sprint değerlendirme toplantılarından sonra ve sprint planlama toplantılarından önce yapılırlar ve geçmiş sprint’teki tecrübeler masaya yatırılarak iyileştirmeler belirlenir.

Sprint boyunca yapılan işlerin kalitesini, doğrularını ve yanlışlarını değerlendirildiği toplantılardır. “Neleri daha iyi yapabiliriz?”, “Nasıl da iyi yapabiliriz?” sorularına cevap aranır.

--

--

Esma SUNULU
Yetkin Yayın

Hello. I’m Esma SUNULU. I graduated from Necmettin Erbakan University as an Industrial Engineer.I write about what I learned on Medium.