3. ÇEVIKLIK NEDIR?
Çeviklik, karşınıza çıkan değişikliği ya da etkiye ne kadar hızlı tepki verdiğinizdir.
Günümüzde tıpkı tarih öncesi dönemlerde olduğu gibi hızla değişen ve gelişen
dünyada hayatta kalabilmek için çevik olmak zorundasınız.
Çeviklik her sektörde ve hayatımızın her anında uygulayabileceğimiz bir yaşam
biçimine dönüşebilir.
Çevik olmak için yapılacaklar ezbere uygulanmamalıdır. Çevik metodolojinin bazı
pratikleri vazgeçilmez olsa da size önerdiği pratikleri anlamalı ve bazı pratikleri
kendinize uygun hale getirmelisiniz.
4. NEDEN ÇEVIKLIK?
Çevik olmanın temel şartı sürekli çıktı üretiyor olmaktır. Eğer 6 ay sonunda bir çıktı
elde etmeyi hedefliyorsanız karşınıza çıkacak 3 muhtemel sorun olacaktır:
1) Değişen ve gelişen teknolojinin 6 ay gerisinde kalmış olabilirsiniz.
2) 6 aylık süreç içerisinde müşterinizin sizden beklentisi çok değişmiş olabilir.
3) Müşterinin projeden beklentisini tam anlamamış olabilirsiniz. Bu durumda
projenizi tamamladığınızda müşterinin ihtiyacına uygun bir ürününüz olmayacaktır.
Proje süreniz uzayacak ya da yapmamanız gereken şeyler için fazla zaman harcamış
olacaksınız.
12. BURNDOWN CHART
Bu grafik sprint içerisinde işlerin nasıl gittiğini görmenizi sağlar. Grafiğin yatay ekseninde günler
dikey ekseninde ise kalan görevler ele alınır. Grafikte sprintin nasıl ilerlediğini gösteren İlerleme
Çizginiz (kırmızı) ve nasıl ilerlemesini planladığınız hedef çizginiz (mavi) yer alır.
13. BURNDOWN CHART
Burndown grafiğine göre sprinti yorumlamanız, kalan işler ve zamanı birlikte analiz
etmeniz daha kolaylaşacaktır.
YetiÅŸmeyen
Sprint
Erken Tamamlanan
Sprint
14. SCRUM BOARD
Scrum tahtası çoğu proje yönetimi
uygulamasında da faydalanılan araçlardan
birisidir. İş takibinin yapılabilmesi ve herkes
tarafından mevcut durumun
gözlenebilmesi için kullanılır. Tüm ekibin
görebilmesi için genelde ortak kullanılan
alanlarda tutulur.
Tahtanın ilk bölümünde kullanıcı
hikayeleri yer alır. Bu hikayeler sırasıyla
yapılacak, yapılıyor, onaylanacak ve bitti
statülerine taşınarak süreç takibi yapılır.
Tahta gereksinime göre değişiklik
gösterebilir.
15. USER STORIES – KULLANICI HIKAYELERI
Son kullanıcının üründen beklediği özellikleri daha anlaşılır biçimde aktarılabilmesi
için kullanılan bir yöntemdir.
Son kullanıcı kim olduğunu, beklentisinin ne olduğunu ve neden bunu istediğini
yazar. Kalıplaşmış kullanımı aşağıdaki gibidir,
As a <<…>>
I want to <<…>>
So that <<…>>
Online Alışveriş yapan bir kullanıcı olarak,
Tekrar tekrar giriş yapmamak için
Adresimi kaydetmek istiyorum.
16. Kullanıcı hikayeleri basit ve anlaşılır bir dille yazılmalıdır.
Hikaye INVEST kurallarına uygun olmalıdır.
Independent: Bağımsız - Diğer hikayelerden bağımsız olmalıdırlar. Birbirine bağımlı
hikayelerde sıralama yapmak zorlaşır.
Negotiable : Tartışılabilir – Hikayelere yazılı sözleşmeler gibi yaklaşmak yerine
üzerinde konuşulup tartışılabilmeliyiz.
Valueable : Değerli – Hikaye son kullanıcıya değerli bir çıktı üretebilmeli.
Estimable : Tahminlenebilir – İstenen özellik ile ilgili efor tahmini yapılabilmeli.
Small : Küçük - Tek sprint içerisinde tamamlanabilecek parçalara ayrılmış̧ olmalı.
Testable : Test edilebilir – Hikayenin test edilebilir olması geliştiriciye ne yapması
gerektiği ile ilgili yol gösterirken özelliğin istenilen şekilde oluşturulup
oluşturulmadığını da görmemizi sağlar.
USER STORIES – KULLANICI HIKAYELERI
17. Kullanıcı Hikayeleri 3 bölümden oluşur:
 Hikaye Tanımı
Daha önce örnek verdiğimiz kimin neyi neden istediğini açıkladığımız kısım.
Kabul Kriterleri
Özelliğin kabul edilebilir olması için gerekli olan şartların belirtildiği kısım.
Bitti Tanımı
Ortaya çıkacak geliştirmenin ‘tamamlanmış’ olarak kabul edilmesi için yapılacak testlerin
tamamlanması, kodların gözden geçirilmesi, ürün sahibinin kabul etmesi gibi kriterlerin belirlendiği
kısımdır.
USER STORIES – KULLANICI HIKAYELERI
18. XP (EXTREME PROGRAMMING)
XP yüksek kalitede çıktı elde etmeyi hedefleyen çevik bir yazılım geliştirme
yaklaşımıdır. Çevik yaklaşımlar arasında en yazılım geliştirme uygulamalarını en
spesifik biçimde ele alan yaklaşımdır.
İlham verici 12 Pratiği vardır.
19. XP’NIN 12 PRATIĞI
1. Planlama Oyunu
2. Kısa Aralıklarla Yayınlanan Sürümler
3. Basit Tasarım
4. Test Etme
5. Metafor
6. Refactoring (Kod Düzenleme)
7. EÅŸli Programlama
8. Kolektif Mülkiyet
9. Sürekli Entegrasyon
10. Haftalık 40 Saat Çalışma
11. Standart Kodlama
12. Müşteri ile Üretim
Öncelikle müşterinin üründen beklentileri belirlenerek bu beklentiler ekip tarafından önceliklendirilerek product backlog oluşturulur. Bu işler sprintlere eşit şekilde paylaştırılarak sprint backloglar oluşturulur. Bu görevlerin her sprint sonunda bitirilmesi beklenir. Sprint’in her günü en fazla 15 dk’lık bir toplantı düzenlenir. Her sprintin sonunda çalışır bir çıktı elde edilir ve bu çıktı müşteriye sunulup teyit edilir. Ayrıca ekip içersinde sprintin nasıl geçtiğiniz değerlendirmek amacıyla Sprint Retrospective yapılarak bir sonraki sprintler için ön hazırlık yapılır.
Bu pratikleri anlamaya başladığımızda amacının en basit şekliyle en hızlı şekilde kaliteli bir yazılım ortaya çıkarmak olduğunu görürüz. Basit tasarım, kod düzenleme ve standart kodlama pratikleri hızlı ve gerekli olanı yapmayı aynı zamanda hazırlanan kodlara geri dönmek zorunda kaldığınızda işinizi kolaylaştırmayı hedefler. Kolektif mülkiyet ve eşli programlama ise yazılım geliştirme sürecinde ekipteki herkesin projenin her adımında fikir sahibi olmasını sağlayarak işler yolunda gitmediğinde ekibin tüm gücünden faydalanmayı hedefler.