Ekibimiz Agile proje planlaması, yönetimi ve teknik pratiklerin uygulanması konusunda Türkiye‘ deki en deneyimli ekiptir. Danışmanlarımız The Guardian, HSBC, Standard&Poors, Freemarkets, Barclays Bank ve McGraw Hill gibi şirketler için yapılan büyük çaplı projelerin tüm aşamalarında çalışmış ve Agile süreçlerle başarılara imza atmıştır. Proje çalışmalarına ek olarak birçok şirkete kısa süreli danışmanlık hizmetleri vermişlerdir. Dünyada Agile konusunda lider danışmanlık firması Thoughtworks bünyesinde Senior Consultant olarak çalışmış Cenk Çivici Agile ile ilgili hizmetlerimizden sorumludur. Prime Teknoloji Agile konusunda ana başlıkları aşağıda belirtilen konularda hizmetler vermektedir.
Bir yazılım geliştirme projesinin ana hedefi kaliteli, ihtiyaçları karşılayan
yazılımı bütçe, zaman gibi kısıtlar dahilinde en hızlı biçimde müşteriye teslim
etmektir. Kalite hem iç kaliteyi yani yazılımın hatalardan arındırılmış olmasını,
hem de dış kaliteyi yani yazılımın müşteri ihtiyaçlarını karşılamasını ifade
eder.
Yazılım kullanıcılar içi değer ifade etmeli, onların daha verimli çalışmasını
sağlayarak rekabetçi avantaj sağlamalıdır.
Yazılım geliştirme süreçleri bu hedefe ulaşabilmek için
kullanılan yöntemlerdir. Bir dağın zirvesine ulaşmak hedef ise, tırmanışın nasıl
yapılacağı süreçtir. Gereksinim analizi, tasarım , geliştirme, test ve kurulum
gibi alanlarla ile ilgili yöntemler bu hedefe ulaşmayı kolaylaştırdığı ölçüde
değerlidir.
Hedef bu kadar kolay ifade edilebilmesine rağmen günümüzde yazılım
projelerine baktığımızda halen birçok projenin hedefe ulaşamadığını
görüyoruz. Standish grubunun dört yılda bir yaptığı ve yüzlerce projeyi
kapsayan araştırmaları bunu kanıtlıyor. Son olarak 2004 de yapılan ve 50 bin
projeyi kapsayan araştırmaya göre projelerin başarı oranı yüzde 29’ u
maalesef geçmiyor.
Ana problemler neler?
Agile yöntemler bu problemleri bertaraf etmek için pratik, bürokrasiden uzak bir bakış açısı sunuyor ve hedefe ulaşmayı kolaylaştıran yollar öneriyor.
Agile bir süreç değildir. Agile manifesto ile özetlenen yazılım geliştirme konusuna özel bir yaklaşım biçimidir. Bu yaklaşımda önemli noktalar şunlardır.
Agile yöntemlerin tümü aynı yaklaşıma sahiptir. Bu yaklaşım daha detaylı
biçimde Agile Manifesto olarak belgelenmiştir. Doksanlı yıllarda bu süreçler ile
ilgili çalışmalar yapan ve dünyaca tanınan 17 pratisyen bir araya gelmiş ve
projeleri hedefine ulaştıran prensipleri Agile manifesto olarak duyurmuşlardır.
Agile Manifesto
Aşağıdaki maddelerde soldakileri sağda yazılanlardan daha önde tutar.
Bireyler ve iletişim > Kullanılan araçlar ve süreçler
Çalışan yazılım > Kapsamlı Dokümantasyon
Müşteri ile işbirliği > İş sözleşmesi üstünde görüşmeler
Değişime hızlı adapte olabilmek > Bir planı takip etmek
‘den daha önemlidir. Bu sağda yazılanların önemsiz olduğu anlamına gelmez
fakat solda yazanlar ilk önceliğe sahiptir. Sağda yazılı olanlar solda yazılı
olanlar olmadan değersizdir. Manifestonun ikinci kısmında agile süreçlerin tümünün kabul ettiği prensipler
yer alır.
Prensipler
Agile süreçler yukardaki manifestoyu kabul eden ve çalışma yöntemlerini
Agile bakış açısıyla oluşturmuş süreçlerdir. Başlıça Agile süreçler aşağıdaki
şekildedir.
Extreme Programming
Kısa adıyla XP geliştirme ve test pratikleri ile dikkat çeken bir süreçtir.
Test Driven Development, Continuous Integration, Test Automation
konusundaki uygulamalar XP nin çığır açan pratikleridir. Bu pratiklerin Agile
karakterinde olmayan projelerde bile kullanılması yararlar getirecektir.
Scrum
Scrum proje yönetimi, planlama ile ilgili yöntemlere odaklıdır.
Mühendislik pratikleri ile ilgili detaylar içermez. Agile kabiliyetleri tam
anlamıyla kazanabilmek için XP geliştirme pratikleri gibi pratikler ile
desteklenmesi şarttır.
Feature Driven Development
FDD Alan modellemesi, Yazılım özellikleri çevresinde ekiplerin
oluşturulması, tanımlı kilometre taşları gibi daha detaylı bir reçete içerir.
Dynamic Systems Development Model
İngiltere kaynaklı bir süreçtir. XP, Scrum gibi süreçlerin işleyişi ile
karşılaştırıldığında daha fazla detay içerir ve genelde devlet ihaleleri gibi
yazılım projelerinde sıklıkla kullanılır.
Crystal Metholodogies
Xp gibi süreçlere nazaran daha esnektir ve geliştirme pratikleri
konusunda kısıtlar koymaz. Fixed Price projeler ile ilgili öneriler içerir.
Agile UP
Rational Unified Process in Agile yöntemlere uygun, perhize girmiş
halidir.
Bu süreçlerden hangisini kullanalım sorusunun cevabı hiçbiri olacaktır. Önemli
olan Agile manifesto ve Lean prensipleri ile özetlenen bakış açısını
kavramaktır. Agile Scrum kullanmaktan veya XP ile geliştirmekten ibaret
değildir. Beraberinde sürekli iyileştirme odaklı kültür değişikliği getirir. Bu
süreçler ancak başlangıç noktası olabilir. Proje ilerledikçe ekip süreci
kendisine adapte etmeli ve süreç sürekli iyileştirilmelidir.
Agile süreçlere ait bazı yöntemlerin detaylarına inmeden önce klasik
yöntemlerle en büyük farklarını incelemek yerinde olacaktır. Yazılım geliştirme
sürecini Analiz, Tasarım, Kodlama, Test, Entegrasyon ve Bakım olarak
aşamalara ayırırsak klasik süreçler lineer şekilde ilerler. Her aşama bir önceki
aşamanın iş ürünlerini girdi olarak alır ve bir sonraki aşama için farklı bir iş
ürünü ortaya koyar. Bir sonraki aşamaya geçilmeden evvel bir önceki
aşamanın iş ürünleri gözden geçirilir ve onay sürecinden geçer. Geleneksel
yöntemlerde bu süreç aşağıdaki gibi şelale şeklinde ifade edilir.
38 sayfalik AGILE Metodolojilere dokumanini PDF formatinda indirebilirsiniz.