İçeriğe atla

Scrum

Yazılım geliştirme süreci
Etkinlikler ve adımlar
Gereksinimler | Mimari | Tasarım | Yaşama geçirme | Sınama | Konuşlanma
Modeller
Agile | Cleanroom | Iterative | RAD | RUP | Spiral | Waterfall | XP | Scrum
Supporting disciplines
Configuration management | Documentation | Software quality assurance (SQA) | Project management | User experience design
Scrum Süreci

Scrum (engl. "itişip kakışma“), yazılım geliştirme ve yazılım Mühendisliği'nde bir uygulama geliştirme çerçevesidir. Proje yönetimi'nde karmaşık bir ortamda ürünleri geliştirmek, sunmak ve sürdürmek için Çevik yazılım geliştirme felsefesini benimseyen bir çerçevedir. "Hamleci yaklaşım" şeklinde bir çeviri önerilmiştir.[1][2] Bu geliştirme çerçevesinin 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. Bu karmaşıklığı üç ilke ile azaltmaya çalışır.[3]

  1. Şeffaflık: Projedeki ilerlemeler ve sorunlar günlük olarak tutulur ve herkes tarafından izlenebilir olması sağlanır.
  2. Gözlem: Ürünün parçaları ya da fonksiyonları düzenli aralıklarla teslim edilir ve değerlendirilir.
  3. Uyumlanma: Ürün için gereksinimler en baştan bir defalığına belirlenmez, bilakis her teslimat tekrar değerlendirilir ve duruma göre uyarlamalar 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 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.[4]

Scrum karmaşık projelerin yönetimi için bir çatıdır (Çatı anlayışı bitmiş bir program değil, yazılımın bir çerçevesidir).[5]

Tarihsel Temelleri

Scrum Ken Schwaber ve Jeff Sutherland tarafından 1990'ların başında geliştirildi ve temel fikirleri Schwaber (Schwaber 2004) tarafından ortaya konmuştur.

Scrum proje rolleri:

  • Ürün Sahibi (Product Owner)
  • Takım (Team)
  • Scrum Ustası (ScrumMaster)

ve özellikle "geleneksel" "proje yöneticisi" rolü bulunmaz.

Proje rollerinin görevlerine ek olarak Scrum proje akışını Sprint (en fazla dört hafta süren) anlayışıyla düzenler.

Ken Schwaber, Jeff Sutherland ve diğerleri tarafından formüle edilen Çevik manifesto (Agile 2001) çevik yazılım geliştirme değerleri Scrumda vücut bulur:

Çevik Yazılım Geliştirme Manifestosu'na göre;

1) Süreçler ve araçlardan ziyade, bireyler ve etkileşimler,

2) Kapsamlı dokümantasyondan ziyade, çalışan yazılım,

3) Sözleşme pazarlıklarından ziyade, müşteri ile işbirliği,

4) Bir plana bağlı kalmaktan ziyade, değişime cevap vermek,

daha değerlidir...

Roller

Scrum Süreç-Modeli net olarak üç çeşit rolü tanır: Ürün Sahibi, Takım ve Scrum Master.

Etkileşim

Scrum Ustası: Takımı korumak ve yardımcı olmak. Ürün sahibine yardımcı olmak.

Ürün Sahibi: Kullanıcı hikâyelerinin ayrıntılarını takım ile konuşmak. Dış rollerdekiler ile "Kullanıcı Hikâyeleri"ni belirlemek.

Geliştiriciler: Gereksinimlerin nasıl yapılacağını belirlemek ve standart kalite çerçevesinde (Bitti Tanımı) geliştirmek.

Ürün Sahibi (Product Owner)

Ürün Sahibi stratejik ürün geliştirmeden sorumludur. Sorumluluğu net bir ürün vizyonunun Tasarımı, iletişimi, özelliklerin tanımı ve önceliklendirme, teslim edilen sprintin işlevselliği ve kabul edilebilir olup olmadığına karar verme ve şirketin ekonomik faydasına uygun ürün tasarımı ve ana amaçları belirler.[6] Yalnızca o teslimat, işlevsellik ve maliyet gibi kararlardan sorumludur.

Ürün Sahibi ürün özelliklerinin tanımlaması işlemini Ürün Gereksinimini (Product Backlog) kullanır ve yazılım Takımı ile birlikte çalışarak kullanıcı hikâyelerini (User Stories) taşır ve kullanıcı bazlı işlevsellikleri ifade eder. Aldığı kararlar bağlayıcıdır ve iptal edilemez.[7]

Ürün Sahibi ya da proje sorumlusu son kullanıcının bakış açısını üstlenir ve yazılım gelişimini kontrol edip yazılımcılar için hazır bulunur. XP metodunun tersine projenin tek sorumlusudur 'yolculuk nereye' (Pichler 2008) .[8]

Görevleri: Gereksinim Yönetimi, Yayın Yönetimi (Release) ve iletişim.

Geliştirme Takımı

Yazılım ekibinin görevi ürün sahibinin taleplerine ve sıralamasına uygun ürünün işlevselliğini sağlamak ve belirlenen kalite standartlarına uymak koşuluyla ürünü teslim etmektir. Ne kadar ve hangi işlevlerin sprinte dahil olacağına kendileri karar verirler.[9]

Scrumda geliştirme takımı bir ekip olarak algılanır ve iyi ya da kötü sonuçlar takım elemanlarına çıkartılmaz bilakis takımı bir birim olarak algılar. Bir takım 5-9 kişiden oluşur.[10]

Ek olarak yazılım takımı kullanıcı hikâyelerinin çerçevesini tahmin edebilir ama kural olarak da bir günü geçmemelidir.

Scrum takım içinde rol dağılımıyla ilgilenmez. Belirtildiği gibi Scrum bir yönetim metodudur. Tabii ki bütün roller ya da daha doğrusu yetenekler başarılı bir proje gelişimi için hazır olmak zorundadır.

Bir takımda olması gereken özellikleri iki başlık altında ifade edebiliriz:

1) Kendi kendine organize ve küçük

2) Multidisipliner ve özerk[11]

Scrum Yöneticisi (Scrum Master)

Scrum Ustası Scrum'un başarılı olmasını sağlamaktan sorumludur. Bunu başarmak için Yazılım Takımı ile birlikte calışır ama takıma tabii olmaz.

Scrum kurallarını bildirir, uyumu kontrol eder ve toplantı moderatörlüğünü yapıp Scrum sürecindeki düzensizlikler ile ilgilenir.

İş aracı olarak engel-birikimini (Impediment Backlog) takımın önündeki engelleri kaldırmak için kullanır ve bu anlamda sorumluluk taşır.

Olası engeller: Takım içindeki iletişim eksikliği, kişisel çelişkiler, takım ve ürün sahibi arasındaki iletişim, dış kaynaklı rahatsızlıkların (ek işlevler gibi) giderilmesi.

Scrum ustası yazılım takımına karşı yürütme yetkisi vardır ancak şeflik yetkisi yoktur bu anlamda ne hüküm verebilir ne de disiplin kovuşturması yapabilir (Servant Leaders > Hizmetkar Liderlik).[12]

Scrum ustasının kim olacağının belirlenmesinin en ideal yolu yazılım takımı tarafından seçilmesidir. Pratikte bu pek mümkün olmayabilir .Çünkü iş yapan firmalar Scrum takımının Scrum metodolojisine tam uyum sağlamaları için Scrum konusunda deneyimli bir personeli proje başında belirleyebilir.

Eğer Scrum birinci etabını geçtikten sonra, Scrum ustasının rolü değişiklik yöneticisi (Change-Manager) olarak algılanır.[13]

Özet olarak Scrum ustası (Change Agent): Süreçten sorumlu, takımın arkadaşı ve yardımcısı, sürecin doğruluğunun denetleyicisi, takım ile birebir bağlantılı ve Takımın yanında çalışır.

Görevi:

  • ) 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.[11]

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.[14]

  • ) Kullanılabilirlik (Usability) konusunda takıma değerli ipuçları verir
  • ) Takım ve ürün sahibi kullanıcı bilgileri doğrultusunda Sprint-planını uyarlar ve son durum tekrar kullanıcı tarafından test edilir.[11]

Yönetici (Management)

Yönetici de kullanıcı ve müşteri gibi Scrum ekibine az oranda tabiidir. Ama scrumun yapısal çerçevesini yönetici belirler. Ek olarak da kaynaklar (Ressourcen) oluşturur (yer, alet vs.).

Scrum ustasına destek olur ve mesleki personel organizesi sağlar ve Scrum ekibini dış taleplerden korumak gibi bir sorumluluğu vardır.

Görevi: Projenin çerçevesi ile ilgilenir ve Scrum ustasının proje alanı içerisindeki belirlediği problemlerin çözümü ile ilgilenir.[15]

Takım ve Etkileşim

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.[16]

Toplantılar

Sprint Planlama Toplantısı 1

Bu toplantıda ürün sahibi kendi yazılım takımına ürün içeriğinde (Product Backlog) kararlaştırılan kullanıcı hikayelerini (User Stories) öncelik sırasına göre belirtir ve gereksinimler takım tarafından netleştirilip yazılı olarak kaydedilir. Kullanıcı da işlevsellik konusunda önemli bilgiler verebilir. Bunun dışında ürün sahibi ve takım sprint içinde olması gereken işlevler ve kriterler üzerinde anlaşırlar (bkz. Definition of Done).

Amaç kullanılabilir yazılım elde etmektir: test edilmiş, entegre olmuş ve kullanıcıya açılmış olmalıdır.

Sprint'in kabul şartları kabul kriterleri (test, işlev, performans) ile etkileşimlidir. Bu tarz kararlar sprint sonucunda net şekilde belirlenir ve belirtilen fonksiyonların gerçekten içerdiklerine bakılır ve incelenir.

Açıklamalar yapıldıktan sonra Scrum ustası takımına gelecek sprint de kaç adet kullanıcı hikayesi olacağını sorar ve tek tek değerlendirilip dış baskı olmadan erişilebilirliğine bakılır. [26]

Süre: 60 dakika Sprint (haftalık)

Sprint Planlama Toplantısı 2

Sprint-plan 1 de "NE?" ön planda iken, burada "NASIL?" sorusu ön plana çıkar.

Yazılım takımı hangi kullanıcı hikâyelerinin Sprint'e dahil olduğunu bilir ve uygulamanin(teorik) teknik boyutu açıklanır.

Toplantı Takım'ın kendi sorumluluğunda organize edilir.

Genellikle küçük gruplar oluşturulup yapı, test, açık gibi konulara açıklık verilir. Burada beklenen sonuç görevlerin bir günlük süreyi aşmayacak şekilde bitirilmesini kapsar.

Görevler belirlenen kullanıcı hikâyelerinden hareketle duvara ya da beyaz tahtaya (Taskboard) asılır bu sayede hangisinin işlemde ya da sırada olduğu bilinir.[17]

Süre: 60 dakika her Sprint (haftalık) de.

Sprint-plan 1 ve 2 aynı gün içerisinde yapılmalıdır.

Günlük Scrum (Daily Scrum)

Günlük Scrum

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, bugün ne yapacağım, 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.

Eger 15 dakıka içinde bazı sorular cevap bulamadığı durumlarda Scrum ustası not alıp bir sonraki toplantıya taşır ya da kendisi çözüm üretir.[18]

Sprint Değerlendirmesi (Sprint Review)

Değerlendirme Sprint'in sonunda takım tarafından yapılır ve başlangıçta belirlenen hedeflerin kapsamında olup olmadığı Ürün sahibi tarafından değerlendirilir.

Eğer teslim edilen işlevde eksiklik (test olmamış ise) var ise o kullanıcı hikâyesi tekrardan, ürün sahibi tarafından ürün içeriğine (Product Backlog) gönderilir ve öncelik sırası verilir.

Değerlendirmeye kullanıcının (User) katılımı da işlevin testi, ürün tasarımı ve kullanıcı bakışı açısından çok önemlidir. Kullanıcı Hıkayelerin de bir eksiklik var ise Scrum ustası tarafından not alınıp, ürün sahibi tarafından ürün içeriğine aktarılır.[14]

Süre olarak 1 ayda biten Sprint in değerlendirmesi en fazla 4 saat sürmeli, az süren sprintlerde süre uyarlanır.

Sprint Retrospektif (Geçmişe Bakış)

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.[19]

Sprint

Sprint'de ürün geliştirilir. Yukarıda belirttilen her 2 Sprint planlama, her Sprint başlangıcında yer alır. Planlamada belirtilen ürün islevleri, Sprint'in sonunda teslim edilir.

Geliştirme ekibinin çalışmaları, görev panosu(Taskboard)na dayanır ve Kullanıcı hikayeleri önceliklerine göre ele alınıp, tüm takım bir hikâye üzerinde birlikte calışır, böylelikle katılımcılar hangi işlev'in geliştirildiğini bilir ve karşılıklı katkılarda bulunur:

  • Yazılımcı, testçi ile birlikte testi başlatır.
  • işyeri analisti kullanıcılara işlev'in parçalarını tanıtır.
  • Ürün geliştirmedeki gerekli kriterler (Testi, Kabulü) işlev'de mevcut ise, yazılım takımı yeni işlev üzerinde çalışmasına başlar.
  • Sprint süreci, birçok işlev üzerinde çalışılmış ancak teslim edilecek işlevin olmamasını engeller.
  • Sprint süreci'nde, belirlenen hedefe erişim ve sorumluluk yalnızca yazılım takımındadır, bu yüzden takım her türlü rahatsız edici durumlardan kesinlikle korunmalıdır.
  • Dışarıdan gelebilecek ekstra görev ya da taleplerden (takım elemanını ilgilendirse bile) ve takımı hedeften şaşırtıcı, her türlü engelin kaldırılmasında Scrum ustası sorumludur.
  • Geliştirme ekipleri içinde olası problemler: kurallara uyulmaması ya da görev in tamamlanmaması gibi durumlarda Scrum-ustası müdahale etmelidir. Talimat verme şeklinde değil anlaşma ve sonuçları kapsayan öneri ve hatırlatmalarda bulunmalıdır.

Sprint'in uygulama zamanı her zaman ayni olmalı ve uzatılmamalıdır. Bir Sprint en az bir hafta ve en fazla 4 hafta sürmelidir. Eğer hedeflenen sonuca Scrum sürecinde erişim mümkün değilse örneğin takım içerisinde çelişkilerin olması ya da taleplerin yanlış anlaşılması durumunda takım ya da ürün sahibi tarafından durdurulabilir.

Sprint'in durdurulması durumunda inceleme yapılmaz retrospektif yapılır ve gelecek Sprint'in planlanması yapılır.[20]

Yapı Taşları

Scrum Task

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

Ürün İçeriği (Product Backlog) taleplerin oluşturulması ve yönetilmesi için merkezi belgedir ve teslim edilecek işlevsel elementler yönetilir. Toparlanan kullanıcı hikâyeleri ürün sahibi tarafından önceliklerine göre düzenlenir ve gerçekleştirilme zamanı takımın yardımı ile tahmin edilir.

Ü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, çıkarma, ö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.[21]

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

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

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:

1. sütun'da Sprint'de bulunan İş Parçacıkları ("Stories")

2. sütun'da görevler ("ToDo")

3. sütun'da çalışma ("In Progress") ve 4.sütun'da teslime hazır ("Done") olan iş parçacıkları bulunur.

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.[23]

İş Bitim Grafikleri (Burndown-Charts)

Örnek bir iş bitim-grafiği

İş bitim grafikleri yapılmış ve geri kalan çalışmayı görselleştirmek için kullanılır.

Bir Sprint yanik grafigi, x-ekseninde günlük zamanı, y-ekseninde bitirilmemiş görevleri gösterir. Bu grafik, Sprint'in belirtilen zaman birimi içinde daha iyi tahmin edilmesini sağlar.

Seçili kullanıcı hikâyelerini izlemek içinde hikâye-iş bitim-grafiği kullanilir. Burada eksik kalan görevler degil eksik hikâyeler gösterilir.

Her hikâye eşit büyüklükte olmayacağından, büyüklük bilgisi noktalarla sağlanır. Kalan hikâyelerin toplamı y-ekseninde belirtilir, x-ekseni de Sprint süresini gösterir.

Grafik eğilimleri merdiven şeklindedir. Her azalma değeri bir hikeynin bittiğini gösterir (örnek. 8 noktalı bir hikâye, 8 azalma verir).

Tüm projeyi göstermek için devir (Release)-iş bitim-grafiği kullanılır. Bu durumda y-eksenine bütün ürün içeriğinde belirlenen bitmemis kullanıcı hikâyeleri ve hikâye noktalarının toplanmış sekli gösterilir. Böylelikle proje bitimine kadar kaç tane teslimat yapılacağı anlaşılır.[24]

Engel İçeriği (Impediment Backlog)

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.[25]

Bitti Tanımı (Definition of Done)

Bitti tanımı, bir 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.

Scrum'ın sınırları

Öğrenilen dersler ve değerlendirme

Scrum kullanımında, kişi özgün tahminlerini (alt/üst) kalıcı ve süreklileştirir.

Scrum ilk günden itibaren ürün geliştirmesinde olması gerekendeki sapmaları gösterir: hızlı, iyi, uygun fiyatlı ya da yüksek kalitede olması takımın kazandığı deneyimlere bağlıdır.

Takım bileşimini engelleyen faktörler

Scrum'ın uygulanmasını çeşitli faktörler engelleyebilir. Geliştirme takımı hiyerarşik yapılanmanın tersine, kendi kendini yönetme ilkesiyle şekillenir.

Geliştirme takımı içindeki önceki konumlarından vazgeçmek istemeyen üyelerin olması çelişkilere yol açabileceğinden hareketle iç disiplinin bilince çıkarılması, görevlerin dış destek olmadan yapılması için önemlidir.

Scrum'da proje ekibi sprint'deki tüm görevler üzerinde birlikte çalışırlar, böylelikle testci, yazılımcı, tasarımcı uyumu takıma yansır. Ancak deneyimli bir takım dezavantajları telafi edebilir.

Scrum Nerelerde Uygulanır

Yeni ya da var olan bir projede

Scrum yeni bir Projede ya da klasik yöntemlerle başlamış bir projeyi kurtarmaya uygundur.

Scrum uyglanmadan önce yeteri kadar ürün içeriği(Product Backlog) mevcut olmalı ve hangi teknolojik bir çatının kullanılacağıda kararlaştırılmalı ve uygulanmalıdır. Müşteriye verilen birinci fonksiyonalite olayın ciddiyetini ifade edeceğinden önemlidir.

Klasik projelerde, çalışan uygulama nın çok zaman alması ya da hiç çalışır bir duruma gelmemesi Müşteri ile takım arasındaki güveni zedeler bu yüzden birinci Sprint (ö. 30 günde) önemlidir ve takım da çalışır durumda uygulama sunarak kendini kanıtlamış olur[26]

Büyük ya da birbirine bağımlı projelerde

Scrum takımı 5-8 kişiden oluşturulduğundan büyük projelerde aynı zamanda birden fazla Scrum takımı (katman) uluşturulur ve Sprint aynı anda başlar ve sonuçlar Sprint değerlendirme toplantısında sunulur.

Takım kordinasyonunu sağlamak için, her takım haftada 1/2 toplantı yapar (Scrum of Scrums), Scrum kurucularında Jeff Sutherland bir Scrum projesinde 800 kişinin çalışabileceğini belirtir.[27]

Scrum ve XP

Scrum temelde yazılım geliştirme yönetim olarak görülür ancak diğer metodlarla da basit kombine yapılabilir, bu XP (Extreme Programming) metodu ile denendi ve birbirlerine iyi uyum gösterdiği görüldü. XP@Scrum'ı Ken Schwaber ve Martin Fowler Trans Canada Pipeline Ltd. başarıyla uygulamıştır.[28]

Özet

Scrum hafif ağırlıkta bir yönetim sürecidir, çeşitli boyutlardaki projelerde uygulanabilir.

Scrum'ın temel özellikleri:

  • Küçük takımları iletişim ve bilgi değişimine teşvik eder.
  • Teknolojik değişimleri ve kullanıcı gereksinimleri için uyarlanabilirlik sağlar.
  • Sık yaratılan ürün sürümlerinde, teftiş edilmiş, uyarlamış ve test edilmişler dokümante edilebilir.
  • Yapılacak iş'in küçük parçalara dağılımı ve mümkün oldukça birbirinden bağımsız alt görevleri.
  • Her zaman bitmiş olarak bir proje bildirim mümkünatı, olası o süre nedeniyle mali, teknik rekabet ya da diğer.[29][30]

[31]

Araçlar

Scrum'ın uygulanması ve sürecin kolaylaştırılması için araçlar:

Agilo, Pangoscrum, AgileZen, Tinypm, ThoughtWorks Studios, Greenhopper, VersionOne, ScrumWorks Pro, Banana Scrum ve ScrumTable.

Kaynakça

  1. ^ Emin Ercan Cihan (Ağustos 2023). "Çevik Proje Yönetimi "Scrum" Teriminin Türkçe KArşılığı Olarak Bir Öneri" (PDF). Türk Dili Dergisi Cilt: CXXI Sayı: 860. Türk Dil Kurumu. 20 Ağustos 2023 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 4 Aralık 2023. 
  2. ^ "Türk Dili Dergisinin Ağustos Sayısı Yayımlandı – Türk Dil Kurumu". tdk.gov.tr. 22 Eylül 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 4 Aralık 2023. 
  3. ^ Jeff Sutherland, Ken Schwaber: The Scrum Guide 6 Ağustos 2012 tarihinde Wayback Machine sitesinde arşivlendi.. Abgerufen am 10. August 2011. S. 4.
  4. ^ Boris Gloger: Scrum. Produkte zuverlässig und schnell entwickeln. 3. Auflage. Hanser Verlag, München 2011, S. 12.
  5. ^ Wirdemann, Ralf. Scrum mit User Stories (2., erweiterte Auflage. bas.). München: Hanser, Carl. s. 34. ISBN 978-3-446-42660-3. 
  6. ^ Roman Pichler 2009: Scrum. Agiles Projektmanagement erfolgreich einsetzen. dpunkt.verlag, Heidelberg. S. 9-12.
  7. ^ Boris Gloger 2011: Scrum. Produkte zuverlässig und schnell entwickeln. 3. Auflage. Hanser Verlag, München. S. 78-87
  8. ^ Wirdemann, Ralf. Scrum mit User Stories (2., erweiterte Auflage. bas.). München: Hanser, Carl. s. 37. ISBN 978-3-446-42660-3. 
  9. ^ Boris Gloger 2011: Scrum. Produkte zuverlässig und schnell entwickeln. 3. Auflage. Hanser Verlag, München. S. 67-77.
  10. ^ Şablon:Literatur
  11. ^ a b c Hanser, Eckhart (2010). Agile Prozesse: Von XP über Scrum bis MAP (1. Aufl. bas.). Berlin: Springer. ss. 63. ISBN 978-3-642-12312-2. 
  12. ^ Roman Pichler 2009: Scrum - Agiles Projektmanagement erfolgreich einsetzen. d.punkt Verlag, Heidelberg. S. 20-23
  13. ^ Boris Gloger 2011: Scrum. Produkte zuverlässig und schnell entwickeln. 3. Auflage. Hanser Verlag, München. S. 88-101
  14. ^ a b Boris Gloger 2011: Scrum. Produkte zuverlässig und schnell entwickeln. 3. Auflage. Hanser Verlag, München. S. 103-104
  15. ^ Hanser, Eckhart (2010). Agile Prozesse: Von XP über Scrum bis MAP (1. Aufl. bas.). Berlin: Springer. ss. 67. ISBN 978-3-642-12312-2. 
  16. ^ Hanser, Eckhart (2010). Agile Prozesse: Von XP über Scrum bis MAP (1. Aufl. bas.). Berlin: Springer. ss. 68. ISBN 978-3-642-12312-2. 
  17. ^ Boris Gloger 2011: Scrum. Produkte zuverlässig und schnell entwickeln. 3. Auflage. Hanser Verlag, München. S. 166-169
  18. ^ Roman Pichler 2009: Scrum. Agiles Projektmanagement erfolgreich einsetzen. dpunkt.verlag, Heidelberg. S. 104-107.
  19. ^ Şadi Evren Şeker. "Saldırgan Yazılım Geliştirme (Scrum Software Development)". MISSozluk. 1 Nisan 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 25 Ocak 2015. 
  20. ^ Boris Gloger 2011: Scrum. Produkte zuverlässig und schnell entwickeln. 3. Auflage. Hanser Verlag, München. S. 192-205.
  21. ^ Jeff Sutherland, Ken Schwaber: The Scrum Guide 6 Ağustos 2012 tarihinde Wayback Machine sitesinde arşivlendi.. Abgerufen am 10. August 2011. S. 12.
  22. ^ Boris Gloger: Scrum Essentials: Die sieben Fragen der User Story 15 Ocak 2013 tarihinde Wayback Machine sitesinde arşivlendi.. Abgerufen am 11. August 2011. S. 12.
  23. ^ Boris Gloger 2011: Scrum. Produkte zuverlässig und schnell entwickeln. 3. Auflage. Hanser Verlag, München. S. 167-169.
  24. ^ Boris Gloger 2011: Scrum. Produkte zuverlässig und schnell entwickeln. 3. Auflage. Hanser Verlag, München. S. 209-213.
  25. ^ Roman Pichler 2009: Scrum - Agiles Projektmanagement erfolgreich einsetzen. d.punkt Verlag, Heidelberg. S. 119.
  26. ^ https://files.ifi.uzh.ch/rerg/amadeus/teaching/seminars/seminar_ws0304/07_Schweitzer_Scrum_Ausarbeitung.pdf 2 Ekim 2013 tarihinde Wayback Machine sitesinde arşivlendi. Scrum eine agile Methode zur Software Entwicklung- Uni Zürich, sayfa 11
  27. ^ https://files.ifi.uzh.ch/rerg/amadeus/teaching/seminars/seminar_ws0304/07_Schweitzer_Scrum_Ausarbeitung.pdf 2 Ekim 2013 tarihinde Wayback Machine sitesinde arşivlendi. Scrum eine agile Methode zur Software Entwicklung- Uni Zürich, sayfa 12
  28. ^ https://files.ifi.uzh.ch/rerg/amadeus/teaching/seminars/seminar_ws0304/07_Schweitzer_Scrum_Ausarbeitung.pdf 2 Ekim 2013 tarihinde Wayback Machine sitesinde arşivlendi. Scrum eine agile Methode zur Software Entwicklung - Uni Zürich, sayfa 13
  29. ^ https://files.ifi.uzh.ch/rerg/amadeus/teaching/seminars/seminar_ws0304/07_Schweitzer_Scrum_Ausarbeitung.pdf 2 Ekim 2013 tarihinde Wayback Machine sitesinde arşivlendi. Scrum eine agile Methode zur Software Entwicklung- Uni Zürich, sayfa 15
  30. ^ Wirdemann, Ralf. Scrum mit User Stories (2., erweiterte Auflage. bas.). München: Hanser, Carl. ISBN 978-3-446-42660-3. 
  31. ^ Hanser, Eckhart (2010). Agile Prozesse: Von XP über Scrum bis MAP (1. Aufl. bas.). Berlin: Springer. ISBN 978-3-642-12312-2. 
  • Bori s Gloger: Scrum-Produkte zuverlässig und schnell entwickeln. 3. Auflage. Hanser Verlag, 2011, ISBN 978-3446425248
  • Boris Gloger: Scrum: Der Paradigmenwechsel im Projekt- und Produktmanagement. Eine Einführung. In: Informatik Spektrum, Vol. 33, No. 2. 2010.
  • Arndt Hengstler: Gestaltung der Leistungs- und Vertragsbeziehung bei Scrum-Projekten. In: ITRB 2012, 113-116.
  • Holger Koschek: Geschichten vom Scrum: Von Sprints, Retrospektiven und agilen Werten. dpunkt.verlag, 2009, ISBN 978-3-89864-640-6
  • Ken Schwaber: Scrum Development Process, Advanced Development Methods, 131 Middlesex Turnpike Burlington, MA01803

Dipnotlar

Ayrıca bakınız

  • Uyarlanabilir yazılım geliştirme
  • Azure DevOps Server
  • Kanban

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">İşletim sistemi</span> bilgisayar donanım kaynaklarını yöneten yazılım

İşletim sistemi ya da işletim dizgesi, bir bilgisayarın donanım kaynaklarını yöneten ve uygulama yazılımlarına hizmet sağlayan yazılımların bir bütünüdür. İşletim sistemleri, bilgisayarın donanımı ile uygulama yazılımları arasında bir köprü görevi görerek kullanıcıların sistemle etkileşim kurmasını sağlar. Öne çıkan örnekler arasında Microsoft Windows, macOS, GNU/Linux dağıtımları, Android ve iOS yer alır.

Windows NT, Microsoft tarafından geliştirilen ve ilk sürümü 27 Temmuz 1993'te yayımlanan bir işletim sistemi ailesidir. İşlemciden bağımsız, çoklu işlem ve çoklu kullanıcı desteği sunan bir işletim sistemidir.

<span class="mw-page-title-main">Açık kaynak</span> ücretsiz dağıtım ve ürüne erişim hakkında felsefe

Açık kaynak, kaynak kodun; kopyalanması, değiştirilebilmesi ve yeniden dağıtım için serbestçe kullanıma sunulmasıdır. Açık kaynak yalnızca kaynak koda erişim anlamına gelmez. Kodların başkaları tarafından herhangi bir telif ücreti ödemeden kullanılabilmesi, değiştirilmesi ve yeniden dağıtımı gibi çeşitli haklar vermesi gerekir. Bunun için ürün, açık kaynak tanımına uyan bir lisans kullanmalıdır.

Yerelleştirme, yazılım geliştirme sürecinde, içeriklerin, süreçlerin, ürünlerin ve özellikle bilgisayar yazılımlarının (Software) belirli bir coğrafyaya ya da etnik topluluğa özgü pazar ya da coğrafi bölgede geçerli yerel dilsel ve kültürel özelliklere uyarlanmasıdır.

phpMyAdmin

phpMyAdmin, PHP ile yazılmış açık kaynak kodlu bir araçtır. Başlıca kullanım amacı İnternet üzerinden MySQL veritabanı yönetimidir. Veritabanı oluşturma ve silme, tablo ekleme/değiştirme/silme, alan ekleme/değiştirme/silme, SQL sorguları çalıştırma, kullanıcıları, yetkileri ve alan anahtarlarını yönetme gibi işlevleri yapabilen ücretsiz bir yazılımdır.

Atik yazılım geliştirme ya da çevik yazılım geliştirme, basit prensiplere dayanan yazılım geliştirme metotları gruplarının genel adıdır. Bu metotlar genelde alışılmış denetim ve uyum süreçlerini teşvik eden proje yönetim işlemlerine önayak olurlar. Bu yaklaşım; takım çalışmasıyla gelen liderlik psikolojisi, kendi kendini düzene sokma (örgütleme), sorumluluk, yüksek kalitedeki yazılımların hızlı dağıtımını onaylayan en iyi mühendislik örnekleri ve iş yaşamında müşteri ihtiyaçlarıyla şirketlerin temel amaçlarını, vizyonlarını koordine etme işlevi de görmektedir.

<span class="mw-page-title-main">Apache Ant</span>

Apache Ant, yazılım inşası süreçlerini otomatikleştirmeye yarayan bir araçtır. Make'e benzeyen uygulama, Java ile geliştirilmiş olup Java platformunu gerektirmekte ve Java projelerinde sıkça kullanılmaktadır.

Microsoft Visual Studio, Microsoft tarafından geliştirilen bir tümleşik geliştirme ortamıdır (IDE). Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, .NET Compact Framework ve Microsoft Silverlight tarafından desteklenen tüm platformlar için yönetilen kod ile birlikte yerel kod ve Windows Forms uygulamaları, web siteleri, web uygulamaları ve web servisleri ile birlikte konsol ve grafiksel kullanıcı arayüzü uygulamaları geliştirmek için kullanılır.

TOSCA Testsuite otomatize regresyon ve fonksiyonel yazılım testlerinde kullanılan bir araçtır. Test otomasyonunun yanında TOSCA entegre testyönetimi, grafik kullanci arayüzü (GUI) ve uygulama programlama arabirimini (API) içermektedir. TOSCA Testsuite Viyana’daki Avusturyalı yazılım kuruluşu TRICENTIS Technology & Consulting GmbH tarafından geliştirilmektedir. 2011 yılında TOSCA “Gartner Inc´s Magic Quadrant for Integrated Software Quality Suites“ da “Vizioner” olarak ödüllendirildi.

<span class="mw-page-title-main">Gömülü sistem</span> Belli bir fonksiyonu yapmaya yönelik bilgisayar sistemi

Gömülü sistem, bilgisayarın kendisini kontrol eden cihaz tarafından içerildiği özel amaçlı bir sistemdir. Genel maksatlı, örneğin kişisel bilgisayar gibi bir bilgisayardan farklı olarak, gömülü bir sistem kendisi için önceden özel olarak tanımlanmış görevleri yerine getirir. Sistem belirli bir amaca yönelik olduğu için tasarım mühendisleri ürünün boyutunu ve maliyetini azaltarak sistemi uygunlaştırabilirler. Gömülü sistemler genellikle büyük miktarlarda üretildiği için maliyetin düşürülmesinden elde edilecek kazanç, milyonlarca ürünün katları olarak elde edilebilir.

<span class="mw-page-title-main">DQS</span>

Frankfurt Almanya´da bulunan DQS Holding Limited. Şirketi, QS Şirketler Grubu'nun çatı kuruluşudur. Şirket faaliyetleri; iş sürecini her türlü sertifikalandırma ve kalite yönetim sistemini incelemeyi kapsamaktadır.

<span class="mw-page-title-main">Regresyon testi</span>

Regresyon testi uygulama ortamındaki yapılan tüm değişiklikleri; uygulamaya yeni eklenen özellikler, daha önceki yaşanan hataların düzeltilmesinden sonra, mevcut problemlerin giderildiği ve yeni yapılan güncellemelerin, eklenen özelliklerin yeni bir hata üretip üretmediğini kontrol amaçlı olarak yapılan yazılım test türüdür.

<span class="mw-page-title-main">Gereksinim çözümleme</span>

Bilgisayar bilimlerinde, gereksinim analizi ya da gereksinim çözümleme; çeşitli sistemlerin gerekliliklerini ve olası çelişkili durumlarını göz önüne alarak, yazılımı analiz etmek, belgelemek, doğrulamak ve yönetmek için yeni veya değiştirilmiş bir ürün üzerinde projenin ihtiyaçlarını, sistem gereksinimlerini ve koşullarını belirleyen görevleri kapsamaktadır.

<span class="mw-page-title-main">Apple Numbers</span> hesap tablosu uygulaması

Apple Numbers Apple Inc. tarafından geliştirilen hesap tablosu uygulamasıdır. Apple Pages ve Apple Keynote ile birlikte iWork yazılım paketinin bir parçasıdır. Numbers Microsoft şirketinin Microsoft Office paketine dahil olan Microsoft Excel uygulaması ile eşdeğerdir. Numbers iOS, Mac OS X Tiger veya daha yeni sürümleri için kullanılabilir. OS X için 1.0 sürümü 7 Ağustos 2007'de ilan edilerek iWork paketindeki en yeni uygulama haline geldi. iPad sürümü 27 Ocak 2010'da çıktı. Uygulama, daha sonra iPhone ve iPod Touch'u destekleyecek şekilde güncellendi.

<span class="mw-page-title-main">PlayStation 3 sistem yazılımı</span>

PlayStation 3 sistem yazılımı, PlayStation 3'ün güncellenebilir bellenimi ve işletim sistemidir. Sony'nin Playstation 3 için kullandığı taban, hem FreeBSD'nin hem de CellOS adlı NetBSD'nin bir çatalıdır. PlayStation 2 Linux'un ardılı, PlayStation 4 sistem yazılımının öncülüdür.

<span class="mw-page-title-main">Yazılım kategorileri</span>

Yazılım kategorileri, yazılım gruplarıdır. Yazılımın bu kategoriler açısından anlaşılmasını sağlamaktadırlar. Farklı sınıflandırma şemaları, yazılımların farklı yönlerini dikkate alır.

Tedarik işletme yönetiminde daha fazla işleme veya malların yeniden satışı (ticaret) için malzeme satın alma ve tedarik lojistiği ile ilgilenen şirketlerde operasyonel bir işlevdir.

<span class="mw-page-title-main">Logo Yazılım</span>

Logo Yazılım, Gebze, Kocaeli merkezli Türk iş yazılımı şirketidir. Temelleri 1984'te atılan şirket, resmî olarak 1986 yılında kurulmuş olup 4 farklı ülkede, 13 farklı noktada 1.600'den fazla çalışanı ve 1.000'i aşkın iş ortağı ile hizmet vermektedir. Mikro işletmelerden kurumsal büyük işletmelere kadar farklı ölçeklerdeki şirketlere iş yazılımı çözümleri sunmaktadır.

Ürün yöneticisi, ürün yönetimi kapsamında bir kuruluş için ürünlerin geliştirilmesinden sorumlu olan profesyonel bir roldür. Ürün yöneticileri, bir ürünün arkasındaki ürün stratejisinin sahibi olarak ürünün işlevsel gereksinimlerini belirler ve özellik sürümlerini yönetir. Ürün yöneticileri, diğer birçok çalışanın yaptığı işleri koordine eder ve nihai olarak ürün istenilen kalitede ve şartlarda sonuçlanmasından sorumludur.

<span class="mw-page-title-main">Çevik öğrenme</span>

Çevik öğrenme, eğitim ve öğrenme süreçlerine esnek, uyarlanabilir ve geri bildirime dayalı bir yaklaşım getiren bir konsepttir. Agile yazılım geliştirme metodolojisinden ilham alınarak özellikle scrum yönteminin uyarlanmasını baz alan bu öğrenme yöntemi, bireylerin ya da ekiplerin öğrenme süreçlerini daha esnek, dinamik ve kişisel ihtiyaçlara uygun hale getirmeyi hedefler. Çevik öğrenme, yinelemeli ve adım adım ilerleyerek, öğrenme ve uygulama aşamaları arasında dönüşümlü bir süreç izler. Amacı, öğrenme sürecini bireyin hızına ve öğrenme stiline uygun hale getirerek, daha etkili ve verimli öğrenme sağlamaktır.