Makale Özeti

Serinin ilk makalesinde scrum'ın ne olduğunu ve önemini kavramaya çalışacağız.

Makale

Team Foundation Server ile Scrum Öğreniyorum Serisi 1
Scrum Nedir? Niçin Gereklidir?
 
Yeni bir  “Öğreniyorum” serisi ile karşınızdayız. Bu seride “Scrum” Modelini tanıyacağız.
Serinin ilk makalesinde “scrum’ın” ne olduğunu ve önemini kavramaya çalışacağız.
 
Scrum Nedir?
Scrum, günümüz yazılım geliştirme ortamlarına uygun olarak tasarlanmış bir “yazılım geliştirme süreçleri yönetimi” metodolojisidir. Aslına bakılırsa Scrum kendine has bir metodoloji olmayıp ilhamını Agile(Çevik) süreçlerden almıştır. Zaten direkt olarak “Agile süreçleri kullanıyoruz” diyen bir yazılım geliştirme ortamı duymadım. Kimi MSF for Agile Kullanır, kimi XP kullanır, kimi...
 
“Scrum ile Yazılım Geliştirme Süreçleri Yönetimi” Derken Ne Kastediyoruz?
 
Genel bir söylem vardır hani, Geliştir-Test Et-Yayınla!  Aslına bakarsanız bütün metodolojilerin amacı bu üç kavram üzerinde yoğunlaşır. En büyük amaç ortaya bir ürün çıkarmaktır. Sadece aşamaların izlendiği yol farklıdır. İşte biz “Scrum” ile kendimize bir standart getirmiş oluyoruz. Kısacası “Yazılım fikrinin doğmasından, projenin bitirilmesine kadar bütün geliştirme aşamalarını, Scrum mimarisini kullanarak standartlaştırıyoruz.”
 
Neden Scrum?
 
Scrum’da klasik proje geliştirme aşamalarının aksine küçük küçük parçaların bütünselliği söz konusudur. Ne demek istediğimi biraz daha açayım.
Aşağıdaki şemada klasik yöntemlerin başında gelen ve hatta en çok kullanılan yöntem olan“Waterfall” modelini inceleyelim.
 
Bu model en bilindik ve en çok kullanılan yöntemdir. Fakat klasiktir ve yazılım süreçlerinin doğası bu modeli bir çok noktada başarısızlığa sürükler. Neden mi? Bugüne kadar onlarca kurumun projelerinde bizzat bulunup, çok daha fazlasına da eğitim ve danışmanlık verdim. En çok karşılaştığım yakınmalardan birini canlandırmak istiyorum.
 
Kurum Personeli: Engin Hocam, bizim kurumda proje geliştiremezsin.
 
Engin Demiroğ: Neden?
 
Kurum Personeli: Bizim müdürün istekleri bitmez. Gereksinimleri alıyoruz. Tasarımları yapıyoruz. Yazılımı yazıyoruz. Aylarca emek harcıyoruz ve sonunda birşeyler çıkarıyoruz fakat bir anda gelip bir değişiklik istiyor. Bizim proje allak bullak oluyor.
 
Aslına bakılırsa personel çok haklıdır. Çünkü bugüne kadar hep öğretilen klasik yöntemleri iyi kötü kullanmıştır. Yapılan değişiklik tüm projeyi etkileyebileceğinden projeye karşı bir isteksizlik oluşmuştur.
 
Bu olayın nedeni yapılan değişikliğin bitmiş ya da bitmeye yakın ürün üzerinde olmasıdır. Halbuki Scrum’da değerlendirmeler ana proje üzerinden olmaz. Parçalar üzerinden olur.
 
Scrum’da projenin ana gereksinimleri önem sırasına göre bir liste(Product Backlog)  olarak toplanır. Bu listedeki her bir eleman küçük yapılara dağıtılarak(sprint), daha küçük projeler oluşturulur.  Artık küçük birimler olduğundan değişimin üstesinden gelmek çok daha kolay olur.
 
Yani amaç küçük küçük parçalarla sonuca gitmek? Güzel! Buraya kadar anladım da, başka ne avantajlar sağlar ki?
 
Scrum ile;
 
Verimli bir kaynak yönetimi avantajı sağlarsınız. Örneğin yazılım geliştirmenin en önemli kaynağı olan, “yazılımcıyı” ele alalım. Projeye tümden bakıldığında kaç  kişi gerektiğini kestirmek çok zordur. Çoğunlukla sonradan eleman takviyeleri yapılır. Halbuki her “sprint” için eleman sayısını kestirmek çok daha kolay olur.
 
Proje parçalarının başlangıç ve bitiş sürelerini zamanla çok daha hızlı saptarsınız.
 
Takım ruhu oluşur. Proje(Sprint) başarısız olursa tüm takım “başarısız”, başarılı olursa tüm takım “başarılı” sayılır.
 
Planlama sadece başta değil her aşamada olur. Böylece bütünün planını değil parçaların planını yapma avantajı sağlarsınız.
 
Projeye adapte olmak kolaylaşır. Sonradan dahil edilen elemanlar büyük bir okyanusta boğulmazlar. Halbuki normalde hiç birimiz bir projeye sonradan dahil olmayı sevmeyiz.
 
Müşteri memnuniyeti ön plandadır. Çünkü "Değişim", korkulan değil desteklenen durumdur. Bu da müşteriyi fazlasıyla memnun eder.
 
Bu yazımda genel olarak “scrum”  terimini kavramsal olarak tanıtmaya çalıştım. Bundan sonraki yazılarım daha teknik ve uygulamalı olacak şekilde ilerleyecektir.
 
Faydalı olması dileğiyle.
 
Engin Demiroğ,MCT,engin@yazilimDevi.com

www.YazilimDevi.Com