Agile Yazılım Geliştirmede Dokümantasyon Şart Mıdır?
Bu yazımda, bir Agile Framework’ü olan Scrum üzerinden, yazılımda dokümantasyon şart mıdır değil midir ona değineceğim.
Baştan söyleyelim Scrum Guide’a göre dokümantasyon şart değildir ama olmamalı da denmemektedir.
Scrum’da dokümantasyonun nerede ve nasıl yapılacağından bahsedilmediği için, ekip, sprintler boyunca dokümantasyon üretmez gibi yanlış bir algı vardır. Oysa ki örneğin bir ürünün “Definition of Done” (bitti onayı) ını ortaya koymak için bile dokümante edilmesi gerekir. Diğer taraftan, eğer ürünümüzün belli bir sertifika alması isteniyorsa ya da şart ise, o sertifikasyonun istediği dokümantasyonların yapılması gerekmektedir. En önemlisi ise teknik dokümantasyondur ve bir yazılımın nasıl geliştirildiği ve kullanımına ait bilgiler verir ki yazılıma bakım yapmak bu dokümantasyonlar olmadan oldukça zorlaşmaktadır. Diğer yandan kullanıcı rehberleri, kullanıcıya yazılımı nasıl kullanacağını anlatır, kurulum rehberleri de yazılımın kurulum gereksinimlerini ve kurulum adımlarını anlatır.
Agile ve Scrum, dokümantasyona karşı değildir. Agile Manifesto’ya bakarsak (link için bkz KAYNAKLAR) dokümantasyondan bahsetmektedir: “Working software over comprehensive documentation (Kapsamlı dokümantasyondansa, çalışan yazılım)” ancak buradan yukarıda açıkladığımız sebeplerle de dokümantasyonu tamamen dışladığı sonucunu çıkaramayız. Burada, esas odağın nerede olması gerektiği ifade edilmiştir, kapsamlı dokümantasyona uzun süre harcanmış ancak çalışmayan bir yazılımın değer getirmediği vurgulanmıştır
Dokümantasyon, neredeyse yazılımların tamamının bir parçası ve olması gereken bir parçasıdır, zaman kaybı değildir. Sıfır dokümantasyon ile bir yazılım veya ürün hayal etmek zordur. Ancak, yazılımı geliştirirken dokümantasyon ve altyapısı iyi olan, doğru çalışan bir yazılım geliştirmek arasında dengeyi kurmak gerekmektedir.
YAZAR: Aslı KILIÇ, MSc, Scrum Master, ISTQB®
KAYNAKLAR:
- http://agilemanifesto.org/