Icerigi
http://www.prime.com.tr/training/agileintro.html adresinde de
bulabilirsiniz.
Agile(Çevik) Süreçlere giriş
Çevik süreçler klasik süreçlerdeki riskleri önlediği ve rekabetçi
avantaj sağladığı için günümüzde yazılım endüstrisinde giderek artan
şekilde kabul gören ve artık IBM, Google, Microsoft, Yahoo, British
Telecom gibi dev organizasyonlar tarafından da tercih edilen süreç
yapılarıdır. Ortak noktası Agile manifesto olarak nitelenen çevik
değerlere ve prensiplere bağlılık olan fakat farklı ihtiyaçlara göre
formüle edilmiş XP, Scrum, Feature Driven Development, DSDM , Lean,
Crystal methodologiies gibi süreçlşeker mevcuttur. Agile süreçlerin
başarısının bir nedeni yazılım geliştirmenin doğasına daha uygun
düşünce tarzına sahip olmalarıdır. Bu düşünce tarzı değişiklikleri
kontrol etmeye veya önlemeye çalışmaktansa değişime adapte olmaya
çalışır ve tüm çalışma yöntemleri değişime hızlı ayak uydurabilmeyi
kolaylaştıracak şekilde yapılandırılmıştır. Bu düşünce yapısını
aşağıdaki manifesto ve prensipler ifade eder.
Agile manifesto
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.
Agile prensipler
* İlk önceliğimiz kaliteli yazılımı müşteriye teslim edebilmektir.
Bu projenin ilk aşamalarından itibaren sürekli teslimlerle yapılır ve
müşterinin yazılımı çok önceden kullanmaya başlayarak değer
sağlamasına olanak sağlanır.
* Değişiklikler projenin ilerki aşamalarında dahi olsa kabul
edilir. Amaç müşterinin ihtiyaçlarını karşılayan,onlara yarar
sağlayacak , gerçek değer katacak yazılım üretmektir ve ihtiyaçlarda
meydana gelen değişiklikler projenin sonraki aşamalarında dahi
yazılıma aksettirilmelidir. Test güdümlü tasarım, kapsamlı otomatik
testler, sürekli entegrasyon, basit tasarım gibi pratikler sayesinde
değişikliklerin getireceği maliyetler minimuma indirilir ve süreç
değişikliklere çabuk adapte hale getirilir.
* Çok kısa aralıklarla yazılım teslimleri yapılır. Bu aralıklar
tipik olarak 2-4 hafta arasıdır. Bu sayede sürekli geri beslenim
sağlanır ve müşterinin tam istediği şekilde yazılım evrimleşerek
gelişir.
* Alan uzmanları , yazılımcılar, testçiler günlük olarak birlikte
çalışırlar. Farklı roller arasında duvarlar örülmez. Rol bazlı ekipler
yerine yazılım özelliklerine(features) göre ekipler oluşturulur.
Yazılımcı, analist, yazılım geliştirici aynı ekibin içinde çalışır ve
sürekli iletişim halindedir.
* Projeler motive bireyler çevresinde kurulur ve ekip üyelerine
gereken kendileri ile ilgili alacakları kararlar konusunda güvenilir.
Ekip kendi kendine organize olacak yetkiye sahiptir.
* Yüzyüze iletişim diğer her türlü iletişim yönteminden önde
tutulur.
* Projedeki gelişmenin tek ölçüsü o ana kadar geliştirilmiş
özellikler ve çalışan yazılımdır.
* Çevik süreçler devam ettirilebilir bir hızı sağlamaya çalışır.
Planlamaların sağlıklı olması için ekibin iş teslim hızının çok
oynanaması gerekir. Örneğin fazla mesailer gibi yöntemlerle ekibin
hızını geçiçi olarak arttırmak tercih edilen yöntemler değildir.
* Teknik açıdan mükemmel , basit fakat sofistike çözümler
oluşturulmasına özen gösterilir.
* Sadelik anlayışı akla gelen ilk baştan savma çözümü uygulamak
yerine anlaşılması ve sonradan değiştirilmesi kolay , maliyeti en
düşük ve o anki gereksinimleri karşılayan çözümü kullanmaktır.
* En etkin çalışan ekipler kendilerini organize edebilen , bu
konuda yetkin ekiplerdir. Ekip kendi çalışma yöntemlerini sorgulamakta
ve gerekli değişiklikleri yapmakta özgürdür.
* Ekip kısa sürelerle toplanır, çalışma yöntemlerini gözden
geçirir ve daha etkin ve etkili çalışmak için kendini retrospective
formatında yapılan toplantılarla gözden geçirir.
Eğitimci
Eğitimcimiz Cenk Çivici 2001 yılından beri Amerika'da ve Ingiltere'de
Fortune 500 şirketler için yapılan projelerde Agile pratiklerin
kullanımı ile ilgili olarak danışmanlık yapmaktadır. Bu pratiklerin
kullanımı konusunda lider Thoughtworks firmasında Senior Consultant
olarak görev almıştır. Halen Londra ' da danışmanlık faaliyetlerine
devam etmektedir.Türkiye 'de Prime teknoloji bünyesinde Agile süreçler
ve pratikleri konusunda eğitimler vererek yurtdışında kazandığı
deneyimleri Türk şirketleri ile paylaşmayı amaçlamaktadır.
Süre
Eğitim süresi 2 gündür. Eğitim süresince kavramlar workshop
aktiviteleri ile desteklenecektir.
Agile Introduction - İçerik
Agile Overview
* Problems with Traditional methods
* Agile Manifesto
* Agile Principles
* Lean Product Design(Relation with Toyota Production System)
Agile Processes
* XP Extreme Programming
* Scrum Project Management Methodology
* Dynamic System Development Methodology(DSDM)
* Feature Driven Development(FDD)
* Lean Software Development
Agile Team
* Empowered Team
* Office Layouts
* Commnucating Team
* Personality of Agile Developers
* Agile Team Organization- Roles
Agile Process Areas
* Agile Project Initiation (Iteration 0 activities)
* Agile Analysis(User Stories, Lofi Prototyping)
* Estimation & Planning & Tracking (Story points/Ideal Days,
Release/Iteration planning, Velocity, Burn down charts)
* Development Practices (Refactoring,TDD, Cont. Integration)
* Testing Practices (Automated Testing, TDD)
* Process Improvement Practices (Retrospectives)