AGILE VE SCRUM NEDİR? DEĞER VE PRENSİPLERİ NELERDİR?

Büşra Küçükkut
turkcell
Published in
5 min readDec 27, 2023

AGILE NEDİR?

Agile çoğunlukla yazılım geliştirme süreçlerinde kullanılan bir proje geliştirme metodolojisidir. Çoğunlukla yazılım geliştirme süreçlerinde kullanılsa da esnek ve değişimlere uyum sağlama noktasında güçlü bir metodoloji olduğu için pazarlama, insan kaynakları yönetimi, finans, eğitim, bt hizmetleri gibi farklı alanlarda da kullanımı görülmekte ve her geçen gün kullanım oranını arttırmaktadır.

Agile, hızlı değişime, müşteri geri bildirimlerine ve sürekli gelişime odaklanarak, daha adaptif ve verimli bir yazılım geliştirme süreci sağlamayı amaçlar.

NEDEN AGILE?

Agile yaklaşımı, organizasyonların hızlı değişen iş süreçlerine, müşterilerin geri bildirimlerine ve sürekli gelişime odaklanarak, daha esnek, hızlı ve verimli bir yazılım geliştirme süreci sağlamayı amaçlar. Adaptif beceri, esneklik, iş birliği ve müşteri memnuniyeti üzerine odaklanarak, değişen gereksinimlere hızlı bir şekilde uyumlanmayı amaçlar. Bu sebeple agile yaklaşımı popülerliğini ve kullanım alanını hızla genişletmektedir.

AGILE’IN TEMEL DEĞERLERİ VE PRENSİPLERİ NELERDİR?

1990’larda klasik proje yönetim yaklaşımları neticesinde ortaya çıkan ürünlerin müşterilerin memnuniyetini karşılama noktasında zayıflık göstermesi ve projelerin başarı ile tamamlanma oranlarının düşüşe geçmesi sebebiyle Agile Manifesto ortaya çıkmıştır. 2001 tarihlerinde Utah’ta gerçekleşen bir gezi sırasında bir grup geliştirici tarafından Agile Manifesto üretilmiştir. Agile Manifesto, Agile yaklaşımını yazılım geliştirmeye yönlendiren 4 temel değerden ve 12 prensipten oluşur.

Bu belgede yer alan temel değerler şunlardır:

1. Bireyler ve etkileşimler belgeler ve süreçlerden daha önemlidir.

2. İşleyen yazılım, kapsamlı belgelerden daha önemlidir.

3. Müşteri ile sürekli iş birliği, sözleşmeler üzerinde müzakereden daha önemlidir.

4. Değişen gereksinimlere yanıt vermek, bir planı takip etmekten daha önemlidir.

Bu belgede yer alan prensipler şunlardır:

1. En büyük önceliğimiz, değerli yazılımları erken ve sürekli teslim ederek müşteriyi memnun etmektir.

2. Geliştirme aşamasında bile değişen gereksinimlere hoş geldiniz 😊. Çevik süreçler, müşterinin rekabet avantajı için değişimden faydalanır.

3. Çalışan yazılımı sık ​​sık, kısa zaman dilimleri tercih ederek teslim edin.

4. Ekip proje boyunca her gün birlikte çalışmalıdır.

5. Motivasyona sahip bireyler etrafında projeler oluşturun. Onlara ihtiyaç duydukları ortamı ve desteği verin ve işi yapmaları konusunda onlara güvenin.

6. Bir geliştirme ekibine ve geliştirme ekibi içinde bilgi aktarmanın en verimli ve etkili yöntemi yüz yüze görüşmedir.

7. Çalışan yazılım, ilerlemenin birincil ölçüsüdür.

8. Çevik süreçler sürdürülebilir kalkınmayı teşvik eder. Sponsorlar, geliştiriciler ve kullanıcılar süresiz olarak sabit bir tempoyu koruyabilmelidir.

9. Teknik mükemmelliğe ve iyi tasarıma sürekli dikkat edilmesi çevikliği artırır.

10. Basitlik (yapılmayan iş miktarını en üst düzeye çıkarma sanatı) esastır.

11. En iyi mimariler, gereksinimler ve tasarımlar kendi kendini organize eden ekiplerden ortaya çıkar.

12. Ekip düzenli aralıklarla nasıl daha etkili olabileceği üzerine düşünür ve ardından davranışını buna göre düzenler.

SCRUM NEDİR?

Scrum, bir Agile çerçevesidir. Esneklik ve adaptasyonun öne çıktığı popüler bir Agile çerçevesi olarak çeşitli alanlarda kullanılmaktadır. Scrum, karmaşık ve değişken projelerde çalışan ekipler için etkin bir yönetim olarak ortaya çıkmaktadır. Scrum, proje süreçlerini küçük, tekrarlanabilir parçalara böler ve esnek bir şekilde adapte olmaya odaklanır.

Yazılım geliştirme süreçlerinde Scrum kullanmanın birçok önemli avantajı bulunmaktadır. Bu avantajlar şunlardır:

· Değişen Gereksinimlere Adaptasyon: Kısa süreli iterasyonlar ve esneklik sayesinde ekiplerin değişen gereksinimlere hızlı bir şekilde adapte olmasını sağlar.

· Müşteri Odaklılık: Sprint Review toplantıları, müşteri geri bildirimlerini almayı ve bu geri bildirimlere dayanarak ürünü geliştirmeyi sağlar.

· Devamlı Gelişim: Yazılım geliştirme süreçlerini sprint halinde planlama ve yürütme özelliği, sürekli gelişim ve fonksiyonel özelliklerin düzenli olarak teslim edilmesini sağlar.

· Riskleri Erken Görme ve Yönetme: Düzenli toplantılar ile risklerin erkenden ortaya çıkmasını ve müdahale edilmesini sağlar.

· Ekip Motivasyonu: Ekip, kendi işlerini organize etme ve kendi kendine kararlar alma yeteneklerini geliştirir.

· Şeffaflık: Sprint Review ve Sprint Retrospective toplantıları, ekip üyeleri arasında ve paydaşlar arasında iş süreçleri hakkında şeffaf bir ortamın oluşmasına katkı sağlar.

· Kaliteli Üretim: Sürekli teslimat ve sık sık geri bildirimle, yüksek kaliteli bir yazılım üretmeye odaklanır.

SCRUM ROLLERi(SORUMLULUK ALANLARI) NELERDİR?

Scrum Klavuzuna göre 2020 öncesi roller olarak yapılan tanımlama 2020 yılında yapılan güncelleme ile birlikte sorumluluk alanı olarak ifade edilmektedir. Sorumluluklar devredilemez ama yükümlülükleri paylaşılabilir. Peki nedir Scrum’ın sorumluluk alanları?

Scrum’ın 3 adet sorumluluk alanı bulunmaktadır.

· Developers: Sorumluluğunu aldığı işleri sprint içerisinde bitirmeyi taahhüt etmiş kişilerdir. İşi tamamlamak için alınması gereken aksiyonlar konusunda kendi kendine organize olur ve hareket eder. Bir işin kaliteli ürün parçacığı olarak teslim edilmesinden tüm takım zorunludur.

· Product Owner: Ürün vizyonu ve hedefini belirleyerek bu doğrultusunda ürün değerini en üst çıkarmaktan sorumludur. Bu süreçte paydaşlar ile iletişimi sağlar. Product Backlog maddelerini oluşturur ve önceliklendirir. Product Backlog’un görünür, şeffaf ve anlaşılır olmasını sağlayarak en iyi şekilde yönetir.

· Scrum Master: Scrum Takımına, Product Owner’a ve Organizasyona karşı sorumlulukları vardır. Takımın kendi kendini yöneterek değer üretmesinden, organizasyonun Scrum’ı anlayabilmesinden, etkili ürün hedefi tanımı, backlog yönetimi ve ürün planlaması konusunda Product Owner’a yardımcı olmaktan sorumludur.

SCRUM TEMEL TAŞLARI NELERDİR?

Scrum’ın temel taşları şeffaflık, gözlem ve adaptasyondur. Bu üç bileşen uygulandığında Scrum’ın temeli olan deneyselliği ve yalın düşünceyi oluşturur.

· Şeffaflık: Takımın, işin durumu, ilerlemesi ve engelleri hakkında açık ve net bir şekilde bilgi sahibi olmalarını sağlamayı ifade eder. Sadece takımın değil paydaşlarında için de süreç görülebilir ve anlaşılır olması gerekmektedir. Şeffaflık, takımın ve paydaşların aynı noktada olmasını ve işin durumu hakkında doğru bilgiye sahip olmalarını sağlayarak etkili iletişimi destekler.

· Gözlem: Bir ürünün veya işin durumunu düzenli aralıklarla gözden geçirme sürecini ifade eder. Gözlem, ekibin hedefe doğru ilerlerken süreci değerlendirme ve geliştirme fırsatı tanır.

· Adaptasyon: Scrum’un temel prensibi, değişen gereksinimlere hızlı ve etkili bir şekilde uyum sağlamaktır. Ekip, her Sprint sonunda geri bildirim alır ve bu geri bildirimleri değerlendirerek bir sonraki Sprint’e yönelik planlarını revize eder. Adaptasyon, değişen koşullara hızlı bir şekilde tepki verme yeteneğini ifade eder. Bu, sürekli iyileştirme ve esneklik sağlayarak ekibin müşteri ihtiyaçlarına daha iyi cevap vermesini sağlar.

Bu üç bileşen, Scrum’un temel prensiplerini oluşturur ve bu prensipler, ekiplerin daha esnek, verimli ve müşteri odaklı bir şekilde çalışmasına yardımcı olur.

SCRUM DEĞERLERİ NELERDİR?

Scrum’un 5 temel değeri vardır. Bu değerler, Agile yazılım geliştirme süreçlerine yönelik bir rehberlik sağlar ve ekiplerin etkili bir şekilde çalışmalarına yardımcı olur. Scrum’un temel değerleri şunlardır:

· Taahhüt: Ekip üyeleri, Sprint hedeflerine ulaşmak için bireysel ve kolektif olarak taahhütte bulunmalıdır. Bu, ekip üyelerinin verdikleri sözleri tutmalarını ve belirlenen hedeflere ulaşmak için çaba sarf etmelerini içerir.

· Odak: Scrum, ekip üyelerinin bir Sprint boyunca belirlenen hedeflere odaklanmalarını ve dağılmadan bu hedeflere ulaşmak için çaba harcamalarını vurgular. Odak, ekiplerin öncelikleri belirlemesini, dikkatlerini ana hedeflere yoğunlaştırmalarını ve gereksiz karmaşıklıklardan kaçınmalarını içerir. Bu değer, ekiplerin enerjilerini ve kaynaklarını en önemli işlere yönlendirme prensibini destekler.

· Açıklık: Ekip üyeleri arasında açık ve dürüst iletişim, güvenin oluşmasına katkıda bulunur. Herkesin sorunları açıkça ifade etmesi ve bilgiyi paylaşması, etkili bir ekip iş birliği için önemlidir.

· Saygı: Scrum, ekip içindeki farklı becerilere, görüşlere ve rollerin değerine saygı göstermeyi vurgular. Bu, her bir ekip üyesinin katkısını takdir etmeyi ve birbirlerine saygılı olmayı içerir.

· Cesaret: Cesaret, ekiplerin zorluklarla yüzleşmeye, riskleri ele almaya ve çözüme odaklanmaya teşvik eder. Bu değer, değişikliklere açık olma ve deneme-yanılma sürecini destekleme konusunda cesaret göstermeyi içerir.

Bu değerler, Scrum’un temel prensiplerini destekler ve ekiplerin daha etkili, esnek ve müşteri odaklı bir şekilde çalışmalarına yardımcı olur.

Bu yazı, Büşra Küçükkut ve Eda Günal tarafından hazırlanmıştır.

--

--