PRIMETEKNOLOJI
 AGILE & OPEN JAVA
AGILE Solutions
 
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 etmekten 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)