Agile Yazılım Projelerinde Dokümantasyon Süreçleri Nasıl Yürütülür?

Şirket hafızasını oluşturmak, bilgi birikimi kaybetmemek için proje dokümanları oluştururuz. Bu belgeler ürün hakkında bilgi vermek, işlevselliğini açıklamak, paydaşlar ve geliştiriciler arasında çıkabilecek olan tüm sorulara yanıt sağlamak için mevcuttur.

Proje yönetim ekibi, dokümantasyon kalitesine ve doğru bilgiler içerdiğine çok dikkat etmelidir. Aksi takdirde yanlış yönlendirme sonucu ortaya çıkan ürün beklentileri karşılamayabilir.

Bu yazımda projelerinde çoğunlukla Agile methodolojisi benimseyen Tekhnelogos olarak proje dokümantasyon süreçlerimizi nasıl ilerlettiğimizden kısaca bahsedeceğim.

Agile and Waterfall Yaklaşımları

Waterfall(Şelale) yaklaşımı kullanan ekipler, projenin başında ürün planlamasına makul miktarda zaman harcarlar. Ana amaçlara ve hedeflere kapsamlı bir genel bakış oluştururlar ve çalışma sürecinin nasıl ilerleyeceğini planlarlar. Bu çalışmalar sonucunda ayrıntılı dokümantasyonlar ortaya çıkar.

Dikkatli planlama, kesin bütçeleme ve zaman tahminlerine olanak tanıdığından, çok az değişiklik olan veya hiç değişiklik yapılmayan projeler için işe yarar. Ancak waterfall yaklaşımı olası değişiklikleri ve beklenmedik durumları hesaba katmadığı için uzun vadeli gelişim için etkisiz olduğu kanıtlanmıştır.

Buna karşılık Agile yaklaşımında ihtiyaç duyulmayan belgeleri muhafaza etmek için çok fazla zaman harcamak zaman kaybı olarak görülmektedir.

Agile yaklaşımı, ekip çalışmasına, müşteriler ve paydaşlarla olan işbirliğe, esnekliğe ve değişikliklere hızlı yanıt verme becerine dayanır. Çevik geliştirmenin temel yapı taşları yinelemelerdir. Her bir aşama planlama, analiz, tasarım, geliştirme ve test etmeyi içerir.  Bu yaklaşımla iş geliştirme ekibinin çok önceden plan yapmasına gerek yoktur çünkü proje geliştikçe işler değişebilir.

Agile Manifesto prensiplerinden biri olan “working software over comprehensive documentation” (kapsamlı dokümantasyon yerine çalışan yazılım) düşüncesi dokümanı oluşturmadan önce önceliklerin başında olması gerekeni yapan bir yazılım sunmak anlamına gelir. Zaman kısıtlamaları nedeniyle bazı nedenlerden dolayı bu ikisi arasında seçim yapmak zorunda kalınırsa, doküman yazmak yerine yazılım geliştirmeye zaman ayırmayı seçmemiz gerektiğini öne sürer.

Biz de genel olarak yazılıma öncelik veriyor, kapsamlı dokümanı bazen geri planda bırakabiliyoruz. Ancak işleri daha kolay hale getirmek için belirli süreçlerde belirli dokümanlar hazırlıyoruz.  Bu belgelere aşağıda yer vereceğim.

Doküman Türleri

Çevik yazılım geliştirme yaşam döngüsü boyunca uygulanan birçok belge türü mevcuttur. Etkili dokümantasyonun temel amacı geliştiricilerin ve paydaşların projenin hedefine ulaşmasını sağlamaktır.

Yazılım dokümanlarını Ürün ve Süreç olarak iki ana kategoriye ayırabiliriz:

  • Ürün Dokümanları, geliştirilmekte olan ürün hakkında bilgi verir, gereksinimleri, teknik özellikleri, iş gerekçelerini ve kılavuzları içerir.  Ortaya çıkan belgeler  task’ların nasıl geliştirileceğine dair açıklamalar sağlar.
  • Sistem Dokümanları, Sistemin kendisi ve parçalarını tanımlayan belgeleri temsil eder. Gereksinim belgeleri, tasarım kararlarını, mimari açıklamaları, program kaynak kodunu ve SSS’leri içerir.
  • Kullanıcı Dokümanları, Ürünün son kullanıcı ve sistem yöneticileri için hazırlanan kılavuzları kapsar. Kullanıcı belgeleri, sorun giderme kılavuzları, kurulum ve başvuru kılavuzlarını içerir.
  • Süreç Dokümanları, Geliştirme ve bakım sırasında üretilen, süreci iyi bir şekilde açıklayan tüm belgeleri temsil eder. Süreçle ilgili belgelerin ortak standartları, proje planları, roadmap’ler, test programları, raporlar, toplantı notları, mailler gibi bir çok belge süreç dokümantasyonları içerisine girer.

Bir sonraki yazımda sistem dokümanlarını nasıl oluşturduğumuzu, dokümanlar için hangi araçları kullandığımızı detaylarıyla açıklayacağım.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir