Scrum bir yazılım geliştirme metodolojisidir. İhtiyaca yönelik ,esnek bir geliştirme sürecidir. Düzenli geribildirim ve kısa dönemli planlamalarla hedefe ulaşmayı sağlar. Yazılım geliştirme sürecinde ihtiyaç ve önem sıralamasına göre çalıştığından dolayı "büyük taşlar"ı önceden yerleştirmeyi mümkün kılar. Günümüzde büyük taşlar zaman içerisinde müşteri ihtiyaçlarına göre şekillendiğinden müşterinin düzenli geribildirimlerine göre yapılanmayı mümkün kılar. En önemli özelliği ise müşteri ve geliştirici doğrudan temas içinde olmadıkları için yazılım geliştirici baskı altında olmaz, yapması gereken işe yoğunlaşır. Başarısı kanıtlanmış bir yazılım geliştirme yöntemi olup, microsoft, google, facebook gibi şirketlerde kullanılmaktadır.

Nasıl Çalışır?

  1. Ürün gerikaydı (Product backlog) projenin bütün gereksinimlerini içeren bir dokümandır. Herkese açıktır ve herkes tarfından değiştirilebilir.
  2. Sprint gerikaydı(Sprint backlog) bir sonraki sprint işlerinin nasıl geliştirileceği hakkında bilgi içeren bir dokümandır. Genelde bu işler “iş tahtasına” (task board) yapılması gerekenler, yapılması devam edenler ve bitirilenler şeklinde yazılır.

Sprint gerikaydındaki işler için aylık toplantılar yapılması gerekir. Bu işlerin 1 sprintte (genelde 1 aylık süre olarak seçilmekle birlikte işinizin gerekliliğine göre bu müddet değiştirilebilir) yapılması beklenir. Takvime uygun (on schedule) gittiğinden emin olmak için de günlük ayakta scrum toplantıları (scrum meeting) yapılır. Bu toplantılar 15 dakikadan uzun süremez. Toplantıda 3 karakter vardır zaman kaybedilmemesi için toplantıyı yöneten scrum ustası (scrum master) , müşteri açısını sunan ürün sahibi (product owner), ve geliştiriciler (tasarımcılar, testçiler , geliştiriciler) olarak toplantı gerçekleştirilir. Bu toplantılarda herkes 3 soruyu hızlıca cevaplandırarak , takım arkadaşlarının güncel kalmasını ve sorunlardan haberdar olmasını sağlar , bu sayede sorunlar hızlıca çözüme kavuşturulur.

Toplantıda herkesin cevaplandırdığı 3 soru:

  1. Son toplantıdan (günlük) beri ne yaptım?
  2. Bugün ne yapmayı planlıyorum?
  3. Hedefimi gerçekleştirmeme engel olacak bir sorun var mı? (Bu soruyu cevaplarken verilen cevaplar, scrum ustası tarafından mümkün olduğunca kısa zamanda çözülmelidir.)

Scrum bir yazılım geliştirme metodolojisi olmasına rağmen, diğer alanlarda da kullanılmaktadır. Günümüzde, Scrum herhangi bir ürünü geliştirmek için kullanılan süreçtir.

Kaynaklar: