Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Image RemovedImage Added


Scrum (engl. "itişip kakışma“), yazılım Mühendisliği'nde bir uygulama geliştirme yöntemidir. Bu geliştirme yönteminin temel özelliği gözlemci, geliştirmeci ve tekrara dayalı olmasıdır. 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.

...

  1. Şeffaflık (transparency): Projedeki ilerlemeler ve sorunlar günlük olarak tutulur ve herkes tarafından izlenebilir olması sağlanır.
  2. Denetleme (inspection) : Ürünün parçaları ya da fonksiyonları düzenli aralıklarla teslim edilir ve müşteri denetimine sunulur.
  3. Uyum (adaptation):  Gereksinimler en baştan bir defalığına belirlenmez, bilakis her teslimat tekrar değerlendirilir ve yeni duruma uyum sağlanır yapılır.

 


Amaç başlangıçta hayal edilen ve tasarlanana uyan bir ürünün, hızlı, ucuz ve kaliteli şekilde üretilmesidir. Tasarlanan ürünün gerçekleştirilmesi, müşteri/kullanıcı tarafından mümkün olduğunca detaylı şekilde hazırlanmış bir talepler listesinin aşama aşama gerçekleştirilmesi biçiminde yapılmaz. Bunun yerine müşteri/kullanıcı tarafından istenilen ve tanımlanan işlevler, iki ya da dört haftalık "Sprint" adı verilen dönemler içerisinde geliştirilir ve yeniden gözden geçirilir. Bu kullanıcı bazlı gereksinim tanımı Kullanıcı Hikayesi olarak nitelenir ve özellikler defterinde (Product Backlog) yer alır. Her Sprint sonunda yazılımın fonksiyonel bir parçası bitmiş ve müşteriye teslim edilebilir bir durumda olur.

Scrum Çevik yazılım geliştirme prensiplerini hayata geçiren bir yöntemdir.[2]


 Image RemovedImage Added

Scrum 6 ilke ile yürütülür.Scrum ilkeleri, Scrum metodunu uygulamak için temel kılavuzlardır ve zorunlu olarak tüm Scrum projelerinde kullanımı tercihe bağlı değil zorunludur.


 Scrum principlesImage RemovedImage Added


Scrum'ın 6 ilkesi;

...

  • Scrumu uygulamak ve ürün sahibi 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.

 


Kullanıcı (User)

Kullanıcı ilerideki yazılımın/ürünün kullanıcısıdır. Ürünün nasıl bir perspektif ile kullanılacağı konusunda fikir verir ve gerçek hedef kitlesidir. Kullanıcı Sprint başlangıcı ve sonucunda ürünü test etme amaçlı yer alır ve geri bilgi akışı (Feedback) sağlar.

...

Rol dağılımında takım kendi kendini organize eder. Ne Scrum ustası ne de ürün sahibinin takım içinde kimin neyi ne zaman kiminle yapacaklarına dair bir yaptırımı olmaz. Scrum ustasının vazifesi yalnızca takımın farklı etkenlerlerle rahatsız edilmemesine dikkat etmektir.

 


Rollerin istismar riski

Scrum'da klasik "Proje Yöneticisi'nin olmayışı, özellikle deneyimsiz bir Scrum ekibinde, Scrum ustası ya da ürün sahibinin (Product Owner) bu rolü üstlenmesi tehlike yaratır ve takımın Özerklik statüsüne zarar vererek, Scrumda sapmalara yol açar.Bu tehlikeyi azaltmanın yolu Scrum-ustası ve ürün sahibinin bir Scrum-Expert'inden yardım almasıyla sağlanabilir. [14]

 


Srum Toplantıları;

Image RemovedImage Added

Sprint Planlama Toplantısı 1

...

Günlük Scrum (Daily Scrum)

Günlük Scrum

Image RemovedImage Added

Her iş günü başlamadan evvel 15 dakikalık bilgi paylaşımı için günlük Scrum toplantısı yapılır. Bu görüşmede herhangi bir problem değerlendirilmez, yalnızca 3 tema işlenir: dün ne yaptım, yarın ne yapıcam, beni ne engelliyor. Eger belirtilen görev bir günde bitmesi mümkün değil ise, görev parçalanıp takıma dağıtılır.

...

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. Scrum yönteminin en önemli özelliklerinden birisi bu süreçte suçlu/suçsuz eleştirilerinin yapılmamasıdır

 


Yapı Taşları

Scrum Task

 


Ürün İçeriği (Product Backlog)

...

Ürün içeriği, geliştirilmekte olan ürün'ün önceliklere göre sıralanmış işlevleri kapsar. Değişim taleplerinin alındığı tek yerdir ve ekleme, cikarma, öncelikler gibi işlemler ürün sahibi tarafından yapılır. Ürün içeriği hiçbir zaman eksiksiz değildir ve böyle bir iddiasi da olmaz, tanımlanmış, iyi anlaşılmış gereksinimleri içerir, öncelikler ise ekonomik fayda, risk gibi faktörlerle değerlendirilip uygulanır.

 


Ürün içeriği'ne eklenen talepler teknik olarak değil, mesleki ve kullanıcı odaklı olmalıdır. iyi bir kullanıcı hikâyesi üç soruya cevap vermelidir:

  • Kullanıcı olarak (kim?) bu islevi (neyi?) şu faydalar (neden?) için istiyorum.

 


Sprint İçeriği

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:

...

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.

Image RemovedImage Added

 


İş Bitim Grafikleri (Burndown-Charts)


 Image Added

Image Removed

 


Örnek bir iş bitim-grafiği

...

Engel İçeriği (belirlenen tüm engeller) Scrum ustası tarafından, kısa bir problem tanımı ve tarih etiketiyle oluşturulur. Ek olarak günlük Scrum sonunda, Scrum ustası karşılaşılan engelleri ekler.

 


Bitti Tanımı (Definition of Done)

Bitti tanımı, bır kullanıcı hikâyesinin uygulanmasına ait ve yazılıma nüfus eden etkinliklerin kontrol listesidir. Ek belgeler olarak: yorum yazmak, birim testleri ve tasarım belgeleri. Bitti tanımı proje başlangıcında katılımcılar tarafından kararlaştırılır, ayrıca geliştirme sürecindede uyarlanabilir. Sprint'in başlangıcında görevlerin sayısı ve kapsamı hakkında yardımcı olur ve tüm hikâyelerde uygulanmak zorunda değildir. Bitti tanımı Sprint'in sonunda belirli bir hikâyenin ayrıntılı taleplerini belirttiğinden, Sprint'in kabul edilmesine de hizmet eder.

 


Kaynak <http://www.wikizero.biz/index.php?q=aHR0cHM6Ly90ci53aWtpcGVkaWEub3JnL3dpa2kvU2NydW0>