Scrum; gözlemci, geliştirmeci ve tekrara dayalı proje yönetim metodolojilerinden biridir. Proje yönetiminde bütün aşamaların planlanması süreç ilerledikçe zorlaşıp daha da karmaşık bir hal aldığından Scrum, bu karmaşıklığı engellemeyi ve projenin esnekliğini arttırmayı amaçlar. Bütünleri parçalayarak projeyi daha anlaşılır bir duruma getirir.
Scrum, 3 temel prensip üzerine kurulmuştur:
1.Şeffaflık: Projeler zaman içerisinde sorunlarla karşılaşabilir, beklenmedik gelişmeler olabilir ya da projenin ilerleyişinde aksaklıklar meydana gelebilir. Bu gibi durumlarda projeye dahil olan herkesin bütün gelişmelerden haberdar olması gerekir. İlerlemeler ve sorunlar günlük olarak tutulur ve kodlarla oluşturulan kütüphanelerde saklanarak herkes tarafından takip edilmesi sağlanır. Bu sayede çözümler daha kolay saptanabilir ve zamandan tasarruf edilerek verimlilik arttırılır.
2.Denetleme: Projenin içerisindeki bütün parçalar sürekli olarak kontrol edilmelidir. Bu sayede ilerlemeler, fonksiyonların çalışma verimliliği ya da problemler göz ardı edilemez.
3.Uyarlama: Süreç sürekli olarak denetlendiği için gereksinimlere göre tekrar tekrar değerlendirilerek mevcut isteklere ya da durumlara göre uyarlanır. Proje başlangıç aşamasında belirlendiği gibi devam etmek zorunda değildir.
Scrum uygulamasında projeler başlangıç aşamasında bütün detayları ile planlanmaz. Müşteri ve kullanıcı 2 ya da 4 haftalık “Sprint” adı verilen dönemlerin sonunda belirlenen taleplere göre şekillendirir. Proje zaman içerisinde değişerek şekillenir ve son halini alır. Scrum Yaklaşımını uyarlamak için yazılım geliştirmek zorunlu değildir. Herhangi bir proje için, ürün için ya da düşünce için bile Scrum Yaklaşımını kullanabiliriz. Çünkü asıl amacımız istenen ürün ya da projeyi daha az maliyetle, daha az insanla, daha az zamanda ve daha kaliteli üretmek ya da sonuçlandırmaktır.
Scrum sürecinin doğru yönetilebilmesi için belirlenen roller vardır. Bunlar:
- Ürün sahibi (Product Owner)
- Geliştirme takımı
- Scrum yöneticisi (Scrum Master)
- Kullanıcı (User)
Ürün Sahibi ( Product Owner)
Ürün sahibi yapılacak olan iş ile ilgili bilgi sahibi olan en yetkili kişidir. Ürünü geliştirmekten, kullanıcı ile takım arasındaki iletişimden, sprintin işlevselliğinden, projenin kabul edilir olup olmadığından sorumludur. Ürün sahibi Scrum ekibini kurarken projenin verimini arttıracak şekilde kurmalıdır ve yapılacak olan işleri her adımda takip edip önem sırasına göre işleme koymalıdır. Proje planlanırken bazı işlemler ilerleyen adımlarda önemini yitirebilir. Bu gibi durumlarda ürün sahibi karar vericidir ve aldığı kararlar bağlayıcı olduğundan iptal edilemez.
Geliştirme Takımı
Geliştirme takımı 5-9 kişiden oluşan ve ürünün talebe uygun olması için çalışan ekiptir. Takım, süreci yakından takip ederek iş verilmesini beklemeden geliştirilmesi gereken işlemleri tespit eder ve çalışmalara başlar. Ekipte herkesin belirli görevi yoktur. Takım kendi kendini organize eder ve bu duruma dışarıdan hiç kimse müdahale edemez. Herkes her işi yapabilecek donanıma sahip olmalıdır. Süreç güncellendikçe ve geriye dönük raporlar oluşturuldukça yapılacak olan işlemler değişeceği için ekipteki görev dağılımı da değişir.
Scrum Yöneticisi (Scrum Master)
Scrum Yöneticisi, Scrum’ın başarılı olmasından ve takım içerisindeki problemlerin çözülmesinden sorumludur. Takıma dahil olmaz ancak sürekli takım ile birlikte çalışır ve takımın doğru yönlendirilmesine, kurallara uymasına yardımcı olur. Süreç ilerlerken takımda oluşan iletişim problemlerini, dış etkenlerin getirdiği problemleri ve kullanıcılar ile aralarında oluşabilecek problemlerin çözülmesini sağlar. Geliştirme takımının daha uyumlu ve sorunsuz bir şekilde yalnızca projeye odaklanmasını sağlayarak verimliliği arttırır.
Kullanıcı (User)
Kullanıcı, projenin sonunda ürünü kullanacak olan kişidir. Asıl hedef kullanıcıdır. Çünkü süreç içerisindeki bütün noktalar kullanıcının isteklerine göre şekillenir ve onun taleplerine uygun bir proje hazırlanmaya çalışılır. Projenin bitiminde sonucu test eder ve uygunluğuna göre onaylar ya da reddeder.
Toplantılar
- Scrum Planlama Toplantısı
Yapılan ilk toplantıda ürün sahibinin istekleri belirlenir ve bunlar öncelik sırasına göre yazılarak takım tarafından netleştirilir. Kullanıcı ürün sahibinin hakim olmadığı, talep ile ilgili konularda detaylı bilgiler vererek ürünün daha kullanılabilir olmasını sağlayarak işlevselliğini arttırır. Ürünün ya da projenin yapı taşları, önemli kriterleri belirlenerek kullanıcı hikayeleri değerlendirilir. Belirlenen işlemler küçük parçalara ayrılır ve alt gruplar oluşturulur. Oluşturulan gruplar projenin aşamaları için görevlendirilir.
- Günlük Scrum
Her gün aynı yerde ve aynı saatte yapılan, ortalama 15 dakika süren günlük toplantılardır. Toplantıya katılması gereken kişiler günlük olarak bilgilendirilmez, herkes o saatte toplantı alanında olmalıdır. Geç gelinmesi ya da eksik kişi olması toplantıyı etkilemez. Bu toplantılarda kişiler dün ne yaptıklarını, yarın ne yapacaklarını ve onları engelleyen durumların olup olmadığını paylaşır. Eğer mevcut bir problem varsa Scrum Yöneticisi durumu analiz ederek problemleri ortadan kaldırır.
- Sprint Değerlendirmesi
Sprint, projenin küçük bölümlere ayrıldığı her bölüme verilen isimdir. Scrum’ın tüm aktivitelerinin gerçekleştiği süreçlerdir. Her sprint sonunda yapılan toplantılarda yapılan işler gözden geçirilir ve sonuçlar değerlendirilir. Sonuçların ürün sahibinin gereksinimlerine uygun olup olmadığı belirlenir ve hata varsa düzeltilir. Her sprint sonunda bir de yapılan işlerin kalitesi, doğrusu ve yanlışı belirlenir. Bu sayede takımlar kendilerini hangi alanlarda geliştirmeleri gerektiğini öğrenmiş olur.
Scrum Yapısı
Ürün İçeriği (Product Backlog): Projede ne yapılacağı, kimin kullanacağı ve neden yapılacağına doğru cevapları verebilmek için ürün sahibinin isteklerine ve önceliklerine göre düzenlenen kısımdır. Ürün sahibi kullanıcı hikayelerine göre işlemlerinin önceliklerini belirler ve güncellenen duruma göre ekleme ya da çıkarma yapabilir. İşlemler doğru ve anlaşılır bir şekilde tanımlanmalıdır. Öncelikler belirlenirken mevcut durumun risk analizi, maliyeti ve yapılan işlemlerin sağlayacağı faydalar göz önüne alınmalıdır.
Sprint İçeriği: Sprint yapılması gereken görevlerin parçalara ayrılan her bölümüne verilen isimdir. Sprint içeriğinde; kullanıcı hikayeleri, yapılması gerekenler, yapılmakta olanlar ve öncelikleri, yapılan ve son olarak da tamamlanıp onaylanan işler yer almaktadır. Bu tablo sayesinde işin bütünü tek bir fotoğrafta birleştiği için kontrol edilmesi ve problemlerin belirlenmesi daha kolay olmaktadır.
İş Bitim Grafikleri (Burndown-Charts) : Projede hangi işlerin bittiğini, hangi işlerin kaldığını ve hangi hikayenin sona erdiğini gösteren grafiklerdir. Sprint grafiklerinde x-ekseninde günlük zaman, y-ekseninde ise henüz bitirilmemiş görevler yer almaktadır. Aynı grafik hikâyeler içinde kullanılabilir. Hikayeler için kullanılan grafiklerde ise x-ekseninde sprint süresi, y-ekseninde ise kalan hikayelerin toplamları gösterilmektedir.
Bitti Tanımı (Definition Of Done): Bitti tanımı kullanıcının hikayelerinin uygulanmasında hazırlanan kontrol listesidir. Katılımcılar projenin başında bu belgeleri inceler ve geliştirme sürecinde uygulamaya geçirebilir. Bütün hikayeler uygulanmak zorunda değildir. Yalnıca Sprin’te taleplerin belirtilmesinde yardımcı olduğu için uygulanan işlerin kabul edilip edilmeyeceğine karar verilmesinde rol oynar.



