Agile Manifesto (Çevik Yazılım Geliştirme Manifestosu); 17 yazılım gurusunun 2001 yılında Amerika’nın Utah eyaletinde, yazılım süreçleri ile ilgili tecrübe ve yöntemleri değerlendirmek ve daha üretken yöntemler ortaya koymak amacıyla yaptıkları beyin fırtınası çalışması sonrası ortaya atılmış prensipler serisidir. Bu prensipler, tüm dünyada olduğu gibi Türkiye’de de yazılım geliştirme projelerinde uygulanan ciddi bir akım haline gelmiştir. Toplantı sonucunda fikir birliğine varılan ve toplantının sonucu olarak ortaya çıkan aşağıdaki 4 maddelik sonuç bildirgesi “Çevik Yazılım Geliştirme Manifestosu” ismi ile yayınlanmıştır.

Agile yöntemlerin ticarileştirildiği, Agile felsefesinin altında yatan amaçların sindirilmeden “şeklen” uygulanmaya çalışıldığı bir dönemi yaşıyoruz. Kanban veya Scrum gibi bir agile framework’ü sahiplenip uygulamaya çalışmaktan öte, Agile manifestonun verdiği 4 temel mesajı özümsemek ve bunları süreç, araç ve method bağımsız uygulamak temel prensibimizdir.

Kapsamlı dokümantasyondan ziyade çalışan yazılım: Agile yaklaşım “Ne yapılacağını değil, ne yapıldığını” anlatmak için doküman yazılması gerektiğini savunuyor. Çünkü agile yaklaşımına göre müşteri talebi, projeye son nokta konuncaya kadar “speculative content” diye ifade edilen, doğal olarak değişime ve tartışmaya açık bir içeriktir. Bu sebepten değişime ve tartışmaya açık bir içeriği yazılı hale getirmek ve güncel tutmaya çalışmak hem zor hem de maliyetli bir iştir. Amacımız; yapılacak çalışmayı ilk günden yazılı hale getirmek yerine, henüz analiz aşamasında müşteri talebinin kodlanması ve bir prototip çalışması eşliğinde somut bir şekilde görselleştirilip sonucun müşteri önüne konmasıdır. Projelerimizin analiz aşaması artık teknik yetkinliği olmayan kişilerin başarı ile yürütebileceği bir süreç olmaktan çıkmıştır. Analist rolü günümüzde teknik yetkinliklere de sahip olmayı, müşteri ile birlikte prototip üretebilecek seviyede teknik bilgi ve beceri barındırmayı gerektirmektedir. Bu yüzden CALIGO organizasyonu içerisinde “Yazılımcı” veya “Analist” rolü odaklı bir iş bölümüne gitmekten ziyade, müşteri ihtiyacını uçtan uca çözebilen “Danışman” profilinde çalışanlar yetiştirilmektedir.

Süreçler ve araçlardan ziyade bireyler ve etkileşimler: İş birimleri tarafından girilen ancak talep yönetim uygulamalarında kaybolup giden talepler, “Bana talebi mutlaka doküman yazarak iletmen gerekiyor” yaklaşımının sonucu olarak ortaya çıkmış ancak niyetini tam olarak ifade etmediği için zaman kaybından öteye gitmeyen talep dokümanları gibi örnekler, yazılım araçlarının ve süreçlerinin etkin iletişim ile desteklenmesinin kaçınılmaz olduğunu göstermektedir. Katı süreçlere ve araçlara körü körüne bağlanmak yerine, mevcut süreç ve araçları etkin iletişim ve işbirliği ile desteklemek, bir araya gelmek ve yüz yüze iletişimden daha başarılı bir iletişim yönteminin olmadığı kabulüyle hareket etmek, başarılı proje yaklaşımımızın olmazsa olmaz bir parçasıdır.

Sözleşme pazarlıklarından ziyade müşteri ile işbirliği: Temelde IT-iş birimi paydaşlığında yürütülen projelerde, proje başarısının her iki tarafın etkin katılımına ve desteğine bağlı olduğu bilincine sahibiz. Başarılı bir IT projesinin yalnızca zamanında ve planlanan bütçe içerisinde tamamlanmış bir proje demek olmadığı; zaman ve bütçe kriterleri ile birlikte müşteri tarafında da katma değer sağlayan verimli bir çözüm halinde sunulmuş olması bilinci ile hareket etmekteyiz. Gerektiğinde proje planlarının esnetilmesi ama sonucunda müşterinin gerçekten ihtiyacını karşılayan bir ürünün ortaya çıkmış olması, projelerimizde özellikle göz önünde bulundurduğumuz bir ilkedir.

Bir plana bağlı kalmaktan ziyade değişime karşılık verme: Günümüzde hızla değişen teknolojik, ekonomik ve sosyolojik faktörlerin iş yapma biçimlerini de sürekli değiştiriyor olmasının doğal bir sonuç olduğunu kabul etmek gerekmektedir. Uzun vadeli katı IT planlamaları yerine, müşterinin değişen ihtiyaçlarına cevap verebilecek esnek planlamaların daha verimli olduğu kabulü ile hareket etmekteyiz. Yöntemsel değişikliklerin dışında, veri davranışının değişme potansiyelinin de özellikle göz önünde bulundurulması ve verisel değişimlerin, geliştirilmiş mevcut çözümlere etkisinin sürekli gözlemlenmesi gerekmektedir. Veri odaklı projeler, anahtar teslimi otomatikleştirilmiş çözümler tasarlamak ve bunu bir kenarda çalışır halde bırakmaktan öte, geliştirilmiş çözümlerin günün koşullarına uyması için gereken değişim aksiyonlarının da sürekli alınmasını gerektiren disiplinler haline dönüşmüştür.

Prototip & Talep Olgunlaştırma

Prototip çalışmaları sayesinde, müşteri talebinin sonuçlarını kısa sürede somut olarak ortaya koyar, talebin eksik veya geliştirmeye açık noktalarını talep sahibi ile birlikte geliştiririz. Uzun IT geliştirme süreçlerinden önce, müşterinin talebinin verimliliğinden emin olması, talebin değişmesine sebep olacak faktörlerin projenin henüz başındayken tespit edilip gerekli aksiyonların alınması ancak bu şekilde mümkündür.

Teknik Çalışmalar & Dokümantasyon

Proje dokümantasyonu, hedef veri modellerinin oluşturulması, ETL süreçlerinin tasarım standartlarına uygun olarak geliştirilmesi gibi uzun geliştirme çalışmalarının prototip çalışması sonrası tamamlanması, teknik çalışmaların tek seferde tamamlanıp sonlandırılması anlamına gelmektedir. Bu yöntem sayesinde tekrar tekrar değişen doküman ve veri modelleri, yeniden tasarlanan ETL süreçleri gibi verimsiz döngülerden sıyrılabilmekteyiz. Teknik çalışmaların verimliliğinin yanında proje dokümanlarının “Ne yapılacağının değil, ne yapıldığının” yazılması bakış açısıyla proje sonunda yazılmasının en optimum dokümantasyon yöntemi olduğunu savunmaktayız. Proje dokümanları ile, işleyen süreç arasındaki farklılıkların önüne geçmenin ve “Mükemmel proje dokümanı” standardına ulaşmanın en etkin yolunu bu olarak görmekteyiz.