- Agile için önemli olan iletişimdir. Dokümantasyon değil
- Dokümantasyonda yenilikçi olmak gerek. Araştırmak ve kullanıcı taleplerine göre format değiştirmek gerekir.
- Dokümantasyonun maliyeti vardır. Bu maliyet hesaplanmalı ve birileri tarafından üstlenilmelidir.
- İyi yazılmış bir doküman proje boyunca iletişim için zayıf bir yöntem olsa da, güçlü bir kurumsal hafıza için gereklidir.
- Dokümanlar kısa ve öz olmalıdır. Dokümanda genel açıklamalar ve roadmap'lar detaylı açıklamalardan daha etkindir.
- Birçok doküman tipi vardır. Bu dokümanlardan ihtiyaçları karşılayacak kısmı seçilmeli. Ne eksik ne de fazla. İhtiyaçlar konusunda iyi analiz yapılmalı.
- Dokümantasyon mükemmel değil olması gerekenin en asgarisi kadar iyi olmalı.
- Kapsamlı doküman projenin başarısını arttırmaz. Azaltması bile muhtemeldir
- Agile takımının öncelikli hedefi yazılımı tamamlamaktır. Dokümantasyon ikinci hedeftir.
- Dokümantasyon yaparken fayda maliyet analizi göz önünde bulundurulmalıdır.
- Dokümantasyon ihtiyacı her sistemde aynı değildir. Bu yüzden her kurum ve sistem için gerektiğinde farklı dokümanlar üretilmelidir.
- Dokümantasyon ihtiyaç mı, yoksa sadece yapılması mı isteniyor? İhtiyaç olan dokümanlar üretilmeli. İstenenlerin maliyetine katlanmamak gerekir.
- Doküman ihtiyaçlarına Teknik ekip değil kurum karar vermelidir.
- Dokümantasyon sistemini her zaman değil, probleme neden olacağı düşünüldüğü zaman güncel tutmak gerekir.
2. DOKÜMANTASYON YAPILMASININ NEDENLERİ?
TEORİK NEDENLER:
Proje Sahiplerinin İhtiyacı: Projeyi talep eden iş birimleri ihtiyaçları doğrultusunda dokümanları talep ederler. Teknik ekip bu ihtiyaçlara göre doküman üretmek zorundadır.
Proje Sözleşmesi : Bazı Projelerde sözleşme gereği bazı dokümanlar zorunlu hale gelir. Örneğin iletişimin yazılı olması gereken veya bağlayıcılık taşıyan projelerde dokümanlar proje sahiplerinin talebine göre hazırlanmalıdır.
Kurumsal Hafızayı Geliştirmek: Dokümantasyon ve versiyonlama kurumun geçmişte yaptığı tüm projelerin detaylarıyla izlenebildiği bir sistem olması yönüyle İş sahipleri tarafından istenir.
Denetim: Bazı kuruluşlarda denetim ve gözetim amaçlı dokümantasyon gereklidir.
Doğrulama: Hem Proje sahiplerine hem de yazılım ekibinin aynı şeyi anlayıp yaptığını teyit etmek ve detayları inceleyerek varsa eksik kalan kısım tamamlamak amaçlı dokümantasyona ihtiyaç duyulur.
PERDE ARKASI NEDENLER
Talep Sahiplerinin Kontrol İsteği: Talep sahipleri projenin tüm süreçlerinde Devam ya da Dur aksiyonlarını verebilmek için dokümanlarla süreci izlemek ve kontrol altında isterler. Bunun yanı sıra yönetime karşı işin yapıldığını ve sürecin kontrol altında olduğu hissi öğretildiğinden yönetim tarafından da genelde dokümantasyon olmazsa olmaz çıktılardandır.
Talep Sahiplerinin Algısında Dokümantasyonun Başarıya götüren etmenlerden biri olması vardır. Bu da tamamen yanlıştır. Oysa aşağıda yayınlanan Rapora göre (2005-2006 Standish Group Chaos Report) proje başarısında dokümanın etkinliğinin sanıldığı gibi bir etkisi yoktur.
Outsource Kontrol: Birçok IT organizasyonunda işlerin bir kısmı Outsource edilmektedir. Bu yüzden birçok kurumlar kontratların içeriğine doğal olarak bazı dokümantasyon talepleri eklenmektedir. Bu da yatırım yapılan iş için yeterli düzeyde çalışma yapılıp yapılmadığını kontrol etmek içindir.
Garantiye Alma Gereksinimi: Proje sahipleri genellikle iç ve dış yönetime karşı yaptıklarını belgelemek amacıyla doküman üretirler.
3. BİR DOKÜMAN NASIL AGILE OLUR?
Dokümantasyon Agile manifestoda istenmeyen bir yapı değildir. Fakat dokümantasyon önemli bir süreç olmakla beraber bazı esaslar üzerine oturmalıdır.
- ROI (Return of Invest) 'yi Maksimize eder: Dokümanın bir maliyeti olduğu gerçeğinden hareketle, Doküman maliyeti üstlenen iş birimlerine maksimum faydayı sağlamalıdır.
- Maliyetler Bilinmelidir: Maliyeti üstlenen iş birimleri, dokümantasyonun maliyetini bilmeli ve yatırım yapmalı mı kararını onlar vermelidir.
- Kısa ve Yeterli Olmalı: Bir doküman refere ettiği sistemi asgari düzeyde açıklayabilir detayda ve mümkün olabildiğince kısa olmalıdır. Dokümanda başka detaylara ilişkin bilgiler varsa referans verilmeli. Doküman oluştururken kendimizi düşünelim. Kaç kez yeni bir sürüm veya sistem hakkında doküman inceledik. Diyelim ki cevabınız olumlu. Peki kaçında tüm detayları buldunuz, kaçı size "iyi ki bu doküman var ve inceledim" dedirtti. Bu yüzden dokümanlar oluşturulurken mükemmel olmasına değil yeterli olmasına önem verilmelidir.
- Tek bir amaca yönelik olmalı: Bir doküman sadece bir amaca göre yazılmış olmalı. Farklı doküman tipleri birleştirilerek tek doküman haline getirilmemeli.Örneğin; Release Note, User Manuel tek dokümana indirgenmemeli veya birbiriyle ilişkili diye farklı sistemler aynı dokümanda açıklanmamalı.
- Doküman bir üründür ve müşterisi vardır: Agile doküman aynen ortaya çıkan ürün gibi başlı başına bir üründür ve bu ürünü kullanacak müşteriler vardır. Müşterinin üründen maksimum faydayı alması hedeflenmelidir. Sistemi kullanacak müşteriler, Sistemi kullanan kişilerin yöneticileri, Sisteme bakım yapacak teknik kişiler ayrı ayrı müşterilerdir. Dokümantasyon yapılırken her bir kitleye özelleşmiş ve sadece o kitleyi ilgilendiren bölümler ayrıştırılmalıdır.
- Pareto İlkesi: Sistemin %80 oranda kullanılacak bölümleri tüm sistemin %20'sini teşkil eder. Bu pareto ilkesi birçok IT sisteminde de geçerlidir. Bu yüzden Doküman tüm sistem içerisinde "bilinmesi özellikle gereken" bölümleri ayrıca belirtmeli ve ROI (Return Of Invest) kuralına göre daha düşük maliyetle yüksek faydalar sağlamalıdır.
- Versiyonlama: Dokümantasyon yapıldıktan sonra en maliyetli ve belki de kısımlardan biri de dokümana süreklilik kazandırmaktır. Eğer doküman bir kez oluşturulup arşive atılıyor ve yapılan değişiklikler doküman üzerinde versiyonlanmıyorsa bu dokümantasyon dinamik değildir ve sağladığı fayda eğrisi düşer.
4. DOKÜMAN TİPLERİ
Gerek agile gerekse waterfall metodolojide ihtiyaç duyulacak bazı doküman tipleri aşağıda listelenmiştir. Bunlardan hangisinin ihtiyaç olduğu ve hangisinin maliyetinin üstleneceği konusu talep eden işkollarına göre değişiklik gösterebilir. Fakat konsolide dokümanlardan daha ziyade her biri farklı amaca göre yazılmış ve ayrıştırılmış dokümanlar tercih edilmelidir.
Doküman Tipi | Kimin İçin | Tanımı | |
1. | Contract Model | Sistemle ilişkili olan dış takımlar | Mevcutta çalışan bir sistemin (legacy system) teknik yapısını açıklayan dokümandır. |
2. | Design
Decisions / Tasarım Kararları |
Yazılım, Destek, Proje Yönetim Ekibi | Takımın Yazılım sürecinde mimari ve sistem tasarım üzerine aldığı temel kararların tutulduğu doküman |
3. | Executive
Summary / Yönetici Özeti |
Yönetim Grubu | Çalışmanın fayda, maliyet ve temel fonksiyonlarını içeren oldukça kısa ve çalışmayı özetleyen dokümandır. |
4. | Project Overview / Proje Genel Tanıtım | Tüm Teknik Ekipler | Projenin teknik ve iş ihtiyaçlarının temel noktalarını özetle anlatan kısa ve proje ihtiyaçları değiştiğinde güncel tutulması gereken dokümandır. |
5. | Analiz Dokümanı / Requirement Document | Yazılım, Destek, Proje Yönetim Ekibi, Kullanıcılar ve İşkolları | Çalışmanın yapılacağı sistemdeki fonksiyonaliteleri açıklayan içerisinde süreç, usecase, UI Prototip ve ihtiyaçların detaylarını barındıran dokümandır. Waterfall projelerde bu doküman projenin başında yazılır ve çok önemli bir sözleşme niteliğindedir. Proje sonuna kadar revizyon olması beklenen ama mümkün olduğunca kısıtlı değişiklikler yapılabilen dokümandır. Agile yöntemlerde bu doküman iteratif oluşturulur ve proje sonuna kadar sürekli olgunlaşır. |
6. | Support Document / Destek Dokümanı |
Destek Ekibi | Proje bittikten sonra proje ile ilgili her türlü desteği verecek olan HelpDesk, SupportDesk vb ekiplerin sistemi tanıması için hazırlanan ve çıkabilecek sorunları,çözüm yöntemlerini ve sık karşılaşılabilecek soruları yanıtlayan bir dokümandır. |
7. | Sistem Dokümantasyon | Yazılım ve Sistem Destek Ekibi | Bu doküman aslında tüm sistemin temel işlevleri (Requirements), veritabanı yapısı, Servis bağlantıları, Kullanılan teknoloji ve toollar, güvenlik ve altyapı konularında detaylı açıklamalar içerir. Burada temel fikir şudur. Eğer çalışmayı yapan ekipten biri işten ayrılır ya da başına birşey gelirse diğer ekip elemanları onun görevini yerine getirebilecek kadar bilgiyi bu doküman ile sağlamalı ve yoluna devam etmelidir. dolayısıyla bu tür dokümanlar daha çok kritik ve daha kapsamlı projelerde oluşturulur. |
8. | Kullanıcı
Klavuzu / User Manual |
Kullanıcılar | Sisteme giriş, sistemi kullanma, sistem içerisinde kullanıcıya sunulan işlevlerin anlatıldığı ve karşılaşılan temel soru ve sorunların cevaplandığı teknik içeriği olmayan dokümanlardır. |
ÖZETLE....
Agile manifesto hatasız ve piyasa koşullarına hızlı adapte olabilen proje üretmek amacını güder. Bu yüzden asıl enerji bu alanlarda harcanmalıdır. Dokümantasyon Agile yöntemde de sürecin bir parçası olsa bile, dokümantasyonun proje başarısına ciddi bir katkısı olmadığı düşünülmekte fakat gerekli olmadığı iddia edilmemektedir.Yani, Agile süreçlerde Doküman oluşturulmalı fakat mümkün olduğunca otomatik ve ihtiyacı karşılayabilecek minimum detayda oluşturulmalıdır.
YAŞASIN İ(N)TERA(K)TİF PROJE GELİŞTİRME...
* http://www.agilemodeling.com
Hiç yorum yok:
Yorum Gönder