Scrum Nedir?

Scrum nedir şema
Yazılım

Scrum Nedir?

Yaygın bir düşünce vardır hani; yaz, test et ve yayınla! Aslına bakarsanız tüm kuramların amacı bu üç kavram üzerinde yoğunlaşır. En büyük amaç ortaya bir ürün çıkarmaktır. İnsanoğlunun doğası gereği yaratılışında mevcuttur bu kavram. Sadece aşamaların izlendiği yol farklıdır. İşte biz de yazılımcılar olarak ‘Scrum’ ile kendimize bir metot getirmiş oluyoruz. Kısacası; “Yazılım fikrinin ile ampulün yanmasından, projenin bitirilmesine kadar tüm geliştirme ve uygulama aşamalarını, Scrum mimarisini kullanarak standart bir hale getiriyoruz”.

Peki, Scrum Nedir?

Scrum, empirizm üzerine kurulmuştur. Bilindiği gibi empirizm bilginin tecrübe ve deneyime dayandığını iddia eder. Bu anlamda Scrum, bir öngörülebilirlik ve riski kontrol etmek için geliştirilmiş aşamalı bir yaklaşımdır diyebiliriz. Scrum’ın ortaya koyan üç önemli özellik vardır: Şeffaflık, denetim ve uyum.

Scrum 1990’ların başından beri karmaşık ürün geliştirme yönetmek için kullanılan bir süreç çerçevesidir. Scrum bir süreç ya da yapı ürünleri için bir teknik değil; bunun yerine, çeşitli süreçler ve teknikler istihdam edebilir bir çerçeve olduğunu ortaya koyar. Scrum Takımlarında önemli olanda roller, olaylar eserler ve kurallardır. Scrum kurallarını takımlar arasındaki ilişkiler ve etkileşimi yöneten, olaylar ve rollerden alır.

Scrum’da klasik proje geliştirme yöntemlerinden farklı olarak küçük küçük tüme varım yöntemini en iyi şekilde kullanmaya çalışır. En çok kullanılan yöntemi ise ‘Waterfall’ modelidir. Waterfall, İngilizce’de “Çağlayan, Şelale” anlamına gelmektedir. Waterfall modelinin bu adı almasının sebebi ise ardışık aşamalardan oluşması, aynı yukarıdan aşağıya doğru akan bir şelale gibi. Waterfall’daki yazılım sürecimiz, akan şelaledeki su gibi düşünülebilir; suyun aşağı doğru aktığı gibi sürecimizde belli aşamaları takip ederek sonuca (aşağı) doğru akar gider.

Şeffaflık

Sürecin tümleriyle geliştiriciye görünür olmasıdır. Böylece ortak bir görüş ortaya konur. Örneğin, “bitti” takımdakilerin artık işin sonuna gelindiğinde hep bir ağızdan söyledikleri bir ortak bir cümledir. Çalışılan sürecin bittiği anlamına gelir.

Problemi tanımladığımız kısımdır. Yazacağınız kod ancak istenileni doğru bir şekilde yerine getiriyorsa başarılı bir yazılımdır. Bundan dolayıdır ki öncelikle yazılımdan ne istendiğinin doğru bir şekilde ortaya konması gerekir. Kısaca analiz aşaması personel, donanım ve sistem gereksinimlerinin belirlenerek sistemin analiz çalışmasının yapılması, kullanıcı gereksinimlerinin de göz önünde bulundurularak belirlenmesi ve proje planının oluşturulması aşamalarından meydana gelir.

Denetim

Scrum, kullanıcılarına yönelik istenmeyen sapmaları tespit etmek için sürecin ve programın sürekli denetim altında tutulması gerekir. Scrum karmaşık ürün gelişimini basite indirgemek için yapılandırılmış bir çerçeve olarak düşünebiliriz.

Uyum

Yazılan programların talebe uygun olup olmaması durumudur. Herhangi bir saptama söz konusu ise bu açıklar giderilir ve talebe uyumlu hale getirilir. Saptamaları aza indirmek kısa bir sürede yapılmalıdır. Scrum’ın denetim ve uyum için kullandığı 4 yöntemi vardır:
– Sprint Planlama Toplantısı
– Günlük Scrum
– Sprint Değerlendirme Toplantısı
– Sprint Retrospektif

Scrum Takımı

Scrum Takımı: Ürün Sahibi, Geliştirme Ekibi ve Scrum Master’dan oluşur. Takım kendi kendini örgütler. Böylece kendi içerisinde uyum içinde olan takımlar daha başarılı sonuçlar alırlar. Scrum’ın takım modeli esneklik, yaratıcılık ve verimliliği optimize etmek için tasarlanmıştır. Sprint gerikaydındaki işler için aylık toplantılar yapılması gerekir. Bu işlerin bir sprintte yapılması beklenir. Takvime uygun gittiğinden emin olmak için günlük ayakta Scrum toplantıları yapılır. Bu toplantılar genelde 15 dakika sürer.

Ürün Sahibi (Product Owner)

Ürünün değerinden ve gerikaydından (Backlog) sorumlu olan kişidir . Ürün Backlog öğeleri açık olmalıdır. Bunuda sağlayacak olan kişi Product Owner’dir. Sorumluluğun büyük bir kısmı Product Owner’dadır. Takımda Product Owner tektir. Product Owner’in başarılı olması için, tüm organizasyonun kendi kararlarına saygı göstermesi gerekir. Geliştirme Ekibi, Product Owner’in kararlarına göre hareket eder.

Geliştirme Ekibi (The Development Team)

Artırımı oluşturan kısım geliştirme ekibidir. Geliştirme Ekibi, genel verimliliği ve etkinliği optimize eder. Geliştirme ekibi kendi kendine organize olmalıdır. Takım, artım olabilmesi için tüm özelliklerini ortaya koymalıdır. Ekipte bireysel özel beceriler olabilir. Ancak her şey bir bütün olarak ekibe aittir. Ekibin önemli işleri tamamlayabilmesi için gerekli kadro sayısına sahip olması gerekmektedir. Küçük ekiplerde verimlilik artışı azalır. Buda beraberinde beceri kısıtlamarına neden olur. Ekip sayısının dokuzdan fazla olması yüksek derecede koordinasyon gerektirir. Unutulmamalı ki, Product Owner bu sayıya dahil değildir.

Scrum Ustası(The Scrum Master)

Scrum’dan sorumlu olan kişidir. Scrum Master, Scrum Takım teorisi ve uygulamaları kurallara uyarak sağlar. Scrum Master takım için liderdir. Scrum Master, ekip tarafından yaratılan değeri maksimize etmek için çalışır. Scrum Master, çeşitli yollarla Ürün Sahibine yardım eder. Bunlar:

– Ürün Backlog yönetimi bulma teknikleri
– Geliştirme ekibinin vizyon ve hedeflerini belirlemek
– Açık ve özlü Ürün Backlog öğeleri oluşturmak için geliştirme ekibine temel yolların öğretilmesi
– Anlaşılabilir bir ortamda uzun vadeli ürün planlamaları yapmak
– Çevikliği anlama ve uygulama

Scrum Master, geliştirme ekibinede hizmet eder:
– Örgütlenmeye koçluk eder
– Geliştirme ekibi için değeri yüksek ürünler oluşturmak
– Geliştirme ekibinin ilerlemesine engel olacak şeyleri ortadan kaldırmak
– Talebe göre Scrum olaylarının kolaylaştırılması

Scrum Master organizasyon içinde çalışır:
– Scrum’ın belirlenmesinde koçluk eder
– Örgüt içinde planlama yapar
– Takımın verimliliğini arttırır

Sprint

Scrum çerçevesinde her bir iterasyon Sprint olarak isimlendirilmektedir. Sprintleri paketlenmiş zaman aralıkları olarak düşünebilirsiniz. Yeni Sprint önceki Sprint sonucundan hemen sonra başlar. Sprintlerimiz başlangıç ve bitiş tarihleri bulunmaktadır ve ekibin hızını ayarlamak için her bir sprintin aynı sürede tutulması önerilmektedir. Scrum yöntemi ile yönetilen projeler ‘sprint’ denilen fazlara ayrılır. Her bir sprintin süresi genellikle (en fazla) 30 gündür. İdeal olan proje boyunca tüm “sprint”ler aynı süreli olur. Proje takımı (Scrum Team), proje yöneticisi (Scrum Master) ile her sprint başlangıcında masaya oturarak yeni ‘sprint’ dahilinde geliştirilecek özellik ve fonksiyonları belirler. Bu süreçte seçilen fonksiyon ve özellikler daha önceden oluşturulmuş ve sürekli güncellenen Product Backlog listesindeki sıra ile en öncelikli olanlardır. Hiçbir zaman önceliği düşük bir özellik veya fonksiyon önceliği yüksek bir özellik veya fonksiyondan önce geliştirilemez. Bu bağlamda bazı sprintlerde proje takımı, Product Backlog’dan 4 eleman, bazı sprintlerde 25 eleman seçebilir. Seçilen özellik ve fonksiyonlar Sprint Backlog denilen ikinci bir listeye aktarılır. Proje takımı bir sonraki sprint başlangıcına kadar bir daha Product Backlog’a bakmaz, o sprint dahilinde sadece ilgili Sprint Backlog listesine odaklanır. Sprintin zamanı dolmadan sprint iptal edilebilir. Sadece Product Owner sprinti iptal etme yetkisine sahiptir. Sprint iptal edildiğinde tamamlanmış ögeler gözden geçirilir.

Sprint Planlama Toplantısı

Sprint ile yapılacak çalışma Sprint Planlama Toplantısı ile planlanmıştır. Bu plan tüm Scrum Ekibinin ortak çalışmasıyla oluşturulur. Örneğin, iki haftalık Sprint’te dört saatlik Sprint Planlama Toplantıları vardır. Bu toplantılarda artımın nasıl sağlanacağı konuşulur.

Günlük Scrum (Daily Scrum)

15 dakikalık toplantılardan oluşur. Bu günlük scrumlarda planlama yapıldığı gibi bir sonraki gün için tahminler yapılır. Bu toplantılar her gün düzenlenir ve amaç karmaşıklığı azaltmaktır. Bu toplantılarda her bir üye aşağıdaki sorulara cevap verir:

– ​Son toplantıdan bu yana neler tamamlandı?
– Sonraki toplantıda neler yapılacak?
– Engeller ne şekildedir?
Kısaca hedefe doğru ilerlemeler değerlendirilir.

​Sprint İnceleme

Burada katılımcılar, gelecek hakkında iş birliği yapabilir. Gayri resmi bir toplantı olup iş birliğini daha iyi gerçekleştirmek için toplanılır. Bu, bir aylık sprint için dört saatlik zamanı kapsar. Sprint İnceleme sonucu bir sonraki Sprint için muhtemel Ürün Backlog öğelerini tanımlar.

Sprint Retrospective

Sprintte bir sonraki aşama için iyileştirme fırsatı yakalanır. Bu bir aylık sprint için toplamda 3 saatlik toplantıdır. Burada takım işini kolaylaştırmak için planlar oluşturulur. Böylece gelişim süreci ve sonraki Sprinti daha etkili ve zevkli hale getirmek için uygulamalar geliştirme ortamı yaratılır. Bu toplantılar sonucunda ürün kalitesini arttırma yolları planlanmış olur.

Product Backlog

İlk önce müşteriye yani ürün sahibine (Product Owner), istediği ürün gereksinimlerinin neler olduğu sorulur ve bu ihtiyaçlar çıkartılır (Product BackLog). Product Backlog içerisinde maddeler en önemlisinden en aza doğru sıralanır. Belirli bir periyot içerisinde belirtilen gereksinimleri karşılayan tam olarak bir prototip müşteriye teslim edilir.

Sprint Backlog

Takım belirlenir ve “Sprint Planning” dediğimiz en fazla 4 hafta sürecek olan küçük döngülerle “Sprint” ile işe başlanır. Her döngü için ürün gerikaydından önemli gereksinimler seçilerek, sprint gerikaydı (Sprint Backlog) oluşturulur ve sprint boyunca bu gereksinimler geliştirilir.

Kısaca Scrum’da Roller

1- ScrumMaster
– Takımın performansını gerçekleştirmesine engel olan durumları ortadan kaldırır.
– Takımın lideri değildir. Ancak takımı rahatsız edici etkileri ortadan kaldırır.
– Scrum sürecinin amaçlandığı gibi devam etmesini sağlar.
– Takımın görevlerini yerine getirmelerinde odaklanmalarını sağlar.

2- Team
– Sprint Backlog’ları oluşturur.
– Proje kısıtları dahilinde kaldığı sürece, içinde bulunduğu durumun başarı ile sonuçlanması için gereken her şeyi yapar. Ürün çıkarmakla sorumlu olan gruptur.
– 7 + 2 gruplardan oluşur.

3- Product Owner
– Ürünün özelliklerini tanımlar, çıkış tarihi ve içerikleri hakkında karar verir.
– Ürünün karlılığından sorumludur.
– Özelliklerinin önceliklerini piyasaya göre düzenler.
– Çalışma sonuçlarını kabul veya reddeder.
– Müşteri odaklı dokümanları hazırlar, önceliklerini belirler ve bunları Product backlog içerisine ekler.

Örnek Scrum​

Firma bir proje alıyor ve proje tarihi sabit değil. Proje sahibinin beklentileri yüksek ancak istekleri yeterince net değil. Ayrıca süreçler içinde yeterli zaman bulunmamakta. Proje ekipleri arasında iletişim problemleri de var. Proje ise Kredi Kartı Taahhüt Programı… Sonunda iş birliği ile 8 ay olarak yer alan proje, 3’er haftalık 6 Sprint ile 18 haftada tamamlanıyor.

KAYNAKÇA

1- en.wikipedia.ord/Scrum
​2- Takeuchi, Hirotaka- Nonaka, Ikujiro: “The New Product Development Game” (PDF), Harvard Business Review, 1986
3- www.redhouse.com
4- www.sulc3/model.html
5- www.scrumalliance.org/pages/scrum_roles
6- www.scrum.org
7- www.mountaingoatsoftware.com/scrum/product-owner
8- www.codeproject.com/Articles/4798/What-is-SCRUM
9- www.scrummethodology.com/the-scrummaster-role
​10- www.scrumforteamsystem.co.uk/ProcessGuidance/scrum/process/daily-scrum-meetings/daily-scrum-meeting-rules​​​

 

Arşivler

X