Agile Metodolojilere Genel Bakış

Bu yazımızda, günümüzde kullanımda olan bazı Çevik metodolojilere göz atıyor olacağız.İlk olarak Scrum’dan başlayalım. Scrum, her türlü iteratif ve artımlı(incremental) projeleri yönetmek için kullanılan yönetim çerçevesidir. Ken Schwaber, Mike Beedle, Jeff Sutherland ve diğerleri, son yıllarda Scrum’un gelişimine önemli katkılarda bulundular. Özellikle son yıllarda, Scrum’ın kolaylığından dolayı ve yazılım projelerinde verimlilik artışı sağlaması sebebiyle diğer çevik metodolojilere göre popülaritesi artmıştır. Gereksinimleri açıkça belirli olmayan, değişime açık, karmaşık yazılım projelerinin yönetimi için uygulanmaktadır.

Scrum teorisini destekleyen üç temel ayak: şeffaflık, gözlem ve adaptasyondur.

Scrum’ın temel unsurlarından biri de Scrum Değerleri (Scrum Values) dir ve 5 değerden oluşmaktadır.

  • Taahhüt – Commitment
  • Odak – Focus
  • Açıklık – Opennes
  • Cesaret – Courage
  • Saygı – Respect

Sonraki metodoloji olan Extreme Programming (XP) den biraz bahsedelim. Extreme Programming, aslen Kent Beck tarafından tasarlandı ve daha popüler ve tartışmalı Çevik yöntemlerden biri olarak ortaya çıktı . XP, yüksek kaliteli yazılımı hızlı ve sürekli bir şekilde sunma konusunda disiplinli bir yaklaşımdır . Çalışan yazılımı çok sık aralıklarla, genellikle her 1-3 haftada bir sunmak için yüksek müşteri katılımını, hızlı geri bildirim döngülerini, sürekli testi, sürekli planlamayı ve yakın ekip çalışmasını teşvik eden bir yaklaşıma sahiptir. Orijinal XP tarifi dört basit değere dayanır: Sadelik, iletişim, geri bildirim ve cesaret olmak üzere ve ayrıca 12 prensipten oluşmaktadır.  Bunlar, planlama oyunu, küçük sürümler, müşteri kabul testleri, basit tasarım, çift programlama, teste dayalı geliştirme, yeniden düzenleme, sürekli entegrasyon, toplu kod sahipliği, kodlama standartları, metafor ve sürdürülebilir hızdır.

En yaygın şekilde bilinen bir diğer metodoloji Dinamik Sistem Geliştirme Metodu veya DSDM’dir. DSDM 1994 yılına dayanmakta olup ve hızlı uygulama geliştirme veya kısaca RAD olarak adlandırılanlar için endüstri standardı bir proje teslim çerçevesi sağlama ihtiyacından doğmuştur.

RAD 1990’ların başında son derece popüler olmasına rağmen , RAD’ın yazılım dağıtımına yaklaşımı oldukça yapılandırılmamış  bir şekilde gelişti. Sonuç olarak, DSDM konsorsiyumu hızlı yazılım teslimi için ortak bir endüstri çerçevesi tasarlamak ve desteklemek amacıyla 1994 yılında oluşturulmuş ve toplanmıştır . 1994’ten beri DSDM metodolojisi çevik ve yinelemeli yazılım geliştirme projelerinin planlanması, yönetimi, yürütülmesi ve ölçeklendirilmesi için kapsamlı bir temel sağlamak üzere gelişti ve olgunlaştı . DSDM, öncelikle işletme ihtiyaçları ve değerleri, aktif kullanıcı katılımı, ekipleri güçlendirme, sık teslimat, entegrasyon testleri ve paydaş işbirliğine dayanan dokuz temel prensibe dayanmaktadır . DSDM, özellikle iş amaçlarına uygunluğu teslim etmenin birincil kriterleri olarak adlandırmaktadır. Bir sistemin kabul edilmesi için, zamanın %20’sinde devreye alınabilecek sistemin %80’ine odaklanmak olarak tanımlamaktadır.

Diğer bir metodoloji ise Lean Yalın yazılım geliştirme, aslen Mary ve Tom Poppendieck tarafından geliştirilen, yinelemeli bir metodolojidir. Yalın yazılım geliştirme ilkeleri ve uygulamalarının çoğunu Yalın işletme hareketine ve Toyota gibi şirketlerin uygulamalarına borçludur.

Yalın yazılım geliştirme ekibi, müşteriye ve müşteriye değer sağlamaya odaklanır. Değer akışının etkinliği ve bu değeri sağlayan mekanizmaların ana ilkeleri yalın dahil, teslimi mümkün olduğunca hızlı, takımı güçlendirici, bütünlük içinde görme bütünlüğünün kazanılmasıdır.Lean’de temel fikir müşteriye sunulan değeri arttırırken israfı (waste) azaltmaktır. Bir başka ifadeyle, daha az kaynak ile daha çok değer üretmektir.

Kanban, 2000’li yılların başlarında ilk kez David J. Anderson tarafından uygulanan, karakteristik özelliklerini Yalın Üretim (Lean Production) ilkerinden (özellikle Taiichi Ohno’nun 1953 yılında Toyota’da uygulamaya başladığı yalın üretim metodu kanbandan) alan ve Kısıtlar Teorisi (Theory of Constraints) yanında Sistemsel Düşünme (Systems Thinking) gibi sistemik optimize yaklaşımlarını barındıran evrimsel bir metodolojidir.Kanban, tarihsel olarak bir öğeye olan ihtiyacı işaret etmek için kartları kullanır . Yazılım geliştirme ekipleri için bu kartlar, sütunlar ve sıralar halinde düzenlenmiş bir Kanban boardunda tutulur.

Sütunlar , bir iş öğesinin ilk planlamasından müşteri kabulüne kadar farklı durumlarını temsil eder . Kanban panosundaki satırlar iş öğelerini temsil eder. İş öğeleri bazen özellik setleri ve kategori türleri gibi alanlarda gruplandırılabilir . Kanban , bir ekibin verimliliğini en üst düzeye çıkarmaya odaklanmaktadır . Bu hedefe ulaşma yollarından biri, bir iş öğesinin her birindeki işlem içi çalışma limitleri veya WIP limitlerinin uygulanmasıdır .

WIP ( Work in Progress ) yani işlere sınır getirmedir. Bu sayede bir alanda belirlenen sayıda iş varken ekstra iş gelmesini engellemiş oluruz. İşin niteliğine çalışan sayısına göre bu sınır belirlenebilir. Ayrıca işler bittikçe arkadan gelen yeni işler üzerinde çalışmaya başlanır. İşe limit getirmek odaklanmayı sağlayacağı için gereksinimlerin teslim süresini  hızlandıracaktır.

Bir ekip çevik olmak için yeniyse, özellikle bir metodoloji altında çalışmaya alışkınlarsa, yeni bir çalışma şekline uyum sağlamaları zor olabilir.

Bir Yorum Yazın