Agile & Scrum

Agile, bir yaklaşım veya felsefi bir bakış açısıyken, Scrum ise bu Agile yaklaşımını uygulamak için kullanılan özel bir metodolojidir. Yani Scrum, Agile yaklaşımının bir metodolojisidir.

Agile

Agile, yazılım geliştirme ve proje yönetimi için genel bir felsefi yaklaşımdır. Temel amacı, esneklik, işbirliği, müşteri odaklılık ve sürekli gelişim prensiplerine dayanarak projelerin daha etkili bir şekilde yönetilmesini sağlamaktır.

Agile Metodolojileri

  1. Scrum: Scrum, belirli roller, toplantılar ve kurallar içeren bir çerçeve olarak kullanılır. Projeleri belirli sürelerde yürüten "sprint" adı verilen dönemlerle yönetilir. Scrum, müşteri gereksinimlerine hızlı yanıt vermek ve sürekli gelişim sağlamak için kullanılır.
  1. Kanban: Kanban, görsel bir tahta (board) üzerinde iş akışını yönetmeye dayalıdır. İşler kartlarla temsil edilir ve iş kartları tahtada bir sırayla hareket eder. Bu yöntem, işlerin optimize edilmesi ve sürekli olarak akmasını sağlar.
  1. Extreme Programming (XP): XP, yazılım geliştirmenin bir dizi en iyi uygulama ve prensibe dayandığı bir metodolojidir. Test odaklı geliştirme, sürekli entegrasyon, müşteri ile yakın çalışma ve çift programlama gibi uygulamaları içerir.
  1. Lean Software Development: Lean, atıl kaynakları en aza indirgeyerek hızlı ve sürekli değer sağlama prensiplerine dayanır. Bu metodoloji, iş gereksinimlerini daha iyi anlamayı ve kaynakları optimize etmeyi vurgular.
  1. Dynamic Systems Development Method (DSDM): DSDM, yazılım projelerinin hızlı bir şekilde teslim edilmesini hedefler. Proje yaşam döngüsü boyunca belirli roller, süreçler ve prensipleri içerir.
  1. Crystal: Crystal metodolojisi, farklı proje türlerine ve boyutlarına uyum sağlamak için çeşitli "renkler" altında gelir. Her renk, proje türüne göre özelleştirilmiş bir yaklaşım sunar.
  1. Feature-Driven Development (FDD): FDD, büyük ve karmaşık yazılım projelerini küçük özelliklere bölerek yönetmeyi amaçlar. Her özellik ayrı ayrı tasarlanır ve geliştirilir.
  1. Adaptive Software Development (ASD): ASD, projelerin değişen koşullara ve gereksinimlere adapte olmasını vurgular. Sürekli olarak öğrenme ve gelişmeyi teşvik eder

Scrum Metodolojisi

Yazılım geliştirme ve proje yönetimi gibi alanlarda kullanılan bir çerçeve (framework) veya metodolojidir. Bir Agile(çevik) yazılım geliştirme yöntemidir. Scrum 1990’ların başından beri karmaşık ürün geliştirme yönetmek için kullanılan bir süreç çerçevesidir. Scrum bir süreç ya da yapı ürünleri için bir teknik değil; bunun yerine, çeşitli süreçler ve teknikler istihdam edebilir bir çerçeve olduğunu ortaya koyar.

Scrum’ın temel üç prensibi :

💡
Backlog : Bir projenin veya ürünün geliştirilmesi için yapılması gereken işlerin bir listesini veya toplamını ifade eder.

Scrum Takımı


Ürün Sahibi, Geliştirme Ekibi ve Scrum Master’dan oluşur. Takım kendi kendini örgütler. Böylece kendi içerisinde uyum içinde olan takımlar daha başarılı sonuçlar alırlar. Scrum’ın takım modeli esneklik, yaratıcılık ve verimliliği optimize etmek için tasarlanmıştır.

Ürün Sahibi (Product Owner)

Geliştirme Ekibi (The Development Team)

Scrum Ustası(The Scrum Master)

Scrum Çalışma Yöntemi


💡
İterasyon : İşlemlerin belirli bir plan veya hedef doğrultusunda gerçekleştirilmesidir. Projenin küçük adımlar halinde bölünmesi, her adımın tamamlanması, test edilmesi ve sonuçların analiz edilmesi ile ilerler.
💡
Faz : Projenin ayrı ayrı ele alınan aşamalara bölünmesi ve her bir aşama tamamlandığında sonraki aşamaya geçilmesi yaklaşımıdır.

Sprint

Scrum çerçevesinde her bir iterasyon Sprint olarak isimlendirilmektedir. Sprintleri paketlenmiş zaman aralıkları olarak düşünebilirsiniz.

Günlük Toplantı (Daily)

Scrum ‘da hergün ekip toplantısı gerçekleştirilir ve toplantıda ;

  1. Ekibin Sprint’ i tamamlamasına yardım etmek için dün ne yaptın?
  1. Ekibin Sprint’ i tamamlamasına yardım etmek için bu gün ne yapacaksın?
  1. Ekibin önünde hangi engeller mevcut?

soruları yöneltilir ve her bir ekip üyesi kendine göre bu soruları yanıtlar.

En sık yaşanan sorun insanların bu toplantıları basit bireysel raporlama faaliyeti olarak görmesidir. Cümleler genellikle “Bunu yaptım…Bunu yapacağım” şeklindedir.

Scrum ‘da Planlama


Mevcut sprint ‘de yapılacak işler açıklanır ve kişilere dağıtılır, kişiler bu işlerin tahmini çaba miktarına göre Fibonacci dizisindeki sayılar olan 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... e göre işlere puan verir.

Sprint sonunda tamamlanan işlerin puanları toplanır ve bu takıma işlerin hızını gösterir.

Puanlamayı geliştirme takımı yani görevi üstlenecek kişilerin yapması sağlıklıdır.

Scrum ‘da Ürünü Piyasaya Sürme


Scrum ‘da özelliklerin henüz yüzde 20 ‘si tamamlanmadan kullanıcılar ile buluşturulması önerilir. Kullanıcılar ile buluşturulan bu ürüne MVP (Minimum Viable Product) Türkçe ‘de “En Küçük Geçerli Ürün” denir.

Ürün gerekli temel fonksiyonları içerir ve temel amacını en basit şekilde gerçekleştirebilir. Örneğin bu ürün bir fotoğraf makinesidir ve sadece resim çekebiliyordur, henüz odaklama, zoom, filtre vb. özellikleri eklenmemiştir.

Piyasaya sürülen üründe kullanıcılar bir sonraki adımda gerekli şeyin ne olduğunu belirleyecektir.

Bir sonraki adımda ise onların da yüzde 20 ‘si gerçekleştirilir ve piyasaya sürülür.