Çevik Yazılım:
Çevik yazılım metodolojisi, büyük bir projeyi küçük parçalara ayırarak yazılımın geliştirilmesini ön görür. Yazılımın geliştirilmesi aşamasında müşteri ile iç içe uyumlu bir şekilde çalışılır ve müşteriden alınan geri dönüşlere göre yazılım yeni şeklini alır.
Çevik Yazılım Manifestosu:
Temel Kuralları:
- Müşteriyi her aşamada memnun etmek
- Müşterinin değişen ihtiyaçlarını karşılamak
- Sık aralıklarla ürün teslimi yapmak
- Yüz yüze iletişime ön planda tutmak
- Kendi kendine organize olan takımlar kurmak?
- Çalışan yazılım gelişimin en önemli ölçüsüdür.
- Basitlik çok önemlidir.
- Yazılım geliştiricileri ile müşteri arasındaki iletişim çok sık olmalıdır.
Çevik Yazılım Takımları:
- Kendi kendilerine organize olan,
- Çapraz fonksiyonlu,
- Hedefleri net olan,
- Teslim edilebilecek düzeyde ürün ortaya koyabilen
- Küçük(3-7 kişilik) gruplar.
Çevik Yazılım takımlarında problem verildikten sonra takımın ortaya çözüm üretmesi beklenmektedir. Eğer takım verilen probleme çözüm veya çözümler üretebiliyorsa ve kendi kendine organize olabiliyorsa tam olarak bir çevik yazılım takımı oluşturulmuş demektir.
Çevik yazılım en temelde bu şekilde işler ama kendisi de alt kategorilere sahiptir. Bu metotlardan Scrum‘ı inceleyeceğiz.
Çevik Yazılım Yaşam Döngüsü:
Scrum Modeli
Ürün sahibi, yazılım geliştirme ekibi ve Scrum Master’dan oluşur. Takım kendi kendine organize olabilir. Scrum modeli esneklik, yaratıcılık ve verimliliği optimize etmek için tasarlanmıştır.
Backlog:
- Müşteriden ve son kullanıcıdan gelen istekleri ve gereksinimleri içerir.
- “Ne yapacağız” sorusunun yanıtını içerir.
- Herkese açık ve herkes tarafından müdahale edilebilir.
- Risk, iş değeri, zaman gibi kavramlara göre ürün sahibi tarafından sıralandırılır.
Sprint:
- Belirli bir zaman aralığına sahiptir.(2-6 Hafta)
- Sprint sonunda ortaya değeri olan bir çıktı veya ürün olmalıdır.
- Sprint toplantılarında yapılacak işler ve içerik belirlenir.
- Sprint süresi boyunca her gün toplantılar yapılır.
User Story: Müşteri veya son kullanıcı için değerli ve anlam ifade eden genellikle fonksiyonel özelliklerin belirtildiği durumlardır.
Örnek olarak aşağıdaki gibi olurlar. Her user story birbirinden farklı olacağı için bitme süreleri de farklı olacaktır. Bir sprint 2 user story içerirken diğer sprint 5 user story içerebilir.
Poker Kartları:
Scrum takımının üyeleri toplanır ve Scrum Master bir user story okur. Takımdaki her bir üye user story için uygun gördüğü poker kartlarından birisini seçer. Kart seçim işlemi bittikten sonra tüm kartlar açılır ve herkesin ortak görüşüne göre değerlendirilir böylelikle user story’nin büyüklüğü belirlenmiş olur.
Scrum Board:
Scrum takımı üyelerinin görevlerinin asılı olduğu bir tahtadır. Bu tahta da yapılacak görev, yapılan, yapılmakta olan, test aşamasında olan ve biten görevleri gösterir.
Scrum boardlar takımlara ve projelere göre farklılık gösterebilirler. Aşağıda en temel hali verilmiştir.
Stories: Yapılacak olan user story gösterir.
To Do: User story’deki yapılacak olan görevi gösterir.
In Progress: Yapım aşamasında olan görevi gösterir.
Testing: Test aşamasında olan görevi gösterir.
Done: Bitmiş olan görevleri gösterir.
Scrum Modeli:
- Sprint (2-4 hafta)
- Sprintler en son halini aldıktan sonra ve toplantı yapıldıktan sonra değişmez.
- Özellikler geliştiriciler tarafından derecelendirilir.
- Herhangi bir mühendislik pratiği tanımlamaz.