Sürüm Yönetimi Pratikleri - III
Doğal olarak bu firmalar yazılım yaşam döngüsü boyunca ortaya çıkan işleri düzgünce kayıt altına alamadıkları için takip edememekte, takip edemedikleri bir ürünün de Sürüm Yönetimini yapamamaktadırlar.
Bazı firmaların yaptığı diğer bir yanlış iş ise farklı talep tipleri için farklı araçlar kullanmalarıdır. Eğer hataların (bugs) takibi için ayrı bir araç, yeni iş istekleri için ayrı bir araç kullanılırsa sağlıklı bir Sürüm Yönetimi yapmak zorlaşır.
Bu yazımda Sürüm Yönetimi için nasıl bir İş Takip Sistemi'ne ihtiyacımız olduğundan ve bu iş için kullanacağımız araçtan beklentilerimizi ortaya koymaya çalışacağım.
a) Release Notes (Sürüm Notları)
Sürüm Yönetiminin aslında esas hedefi ve çıktısı sağlıklı Sürüm Notlarıdır. Sürüm Notları bir yazılıma ait işlerin (new feature & bug fix) ne zaman ve hangi sürümde devreye alınacağını veya alındığını gösterir.
1) Issue Tracking Tool : Sağlıklı bir Sürüm Notu hazırlamak için öncelikle JIRA gibi güzel bir araca ihtiyacımız var. (Neden JIRA? sorusu için ayrı bir blog hazırlıyorum)
2) Issues : Geliştirdiğimiz proje, ürün, uygulama vs. ile ilgili her türlü konuyu (bug, task, new feature, improvement, problem, support request, etc.) İş Takip Arac'ı üzerinden takip etmemiz gerekiyor. (Örnek-I)
3) Affect Version(s) : Herhangi bir ortamda (DEV, TEST, PROD) uygulama kullanılırken tespit edilen hatalar takip sistemine girilirken mutlaka Sürüm Yönetimi Pratikleri - I başlıklı bloğumda bahsi geçen sürüm/versiyon numarası da (affect version) kullanılmalıdır. Bu sayede hatanın hangi versiyonda ortaya çıktığı belli olacak ve Sürüm Notlarında gözükecektir.
4) Fix Version(s) : Bir hata çözüldüğünde veya bir istek tamamlandığında bu işin hangi sürümle (fix version ??? link) devreye alınacağı mutlaka İş Takip Aracı'nda belirtilmelidir. Bu bilgi Sürüm Notlarının hazırlanabilmesi için çok önemlidir.
Bu bilgileri kullanarak örnek linkteki gibi Sürüm Notlarını online olarak takip edebiliriz: (JBoss Application Server Release Notes)
5) SCM and Issue Integration : Sürüm Yönetimi açısından en önemli konulardan biri de kodlar'daki değişikliklerin sürüm kapsamında yapılıp yapılmadığının kontrolüdür. Hiç kimse kapsam dışındaki bir değişikliğin production ortamına alınmasını istemez. Bunun önlemenin en iyi yolu Versiyon Kontrol Araçlarındaki (CVS, SVN, ClearCase, vs.) değişikliklerin, İş Takip Araçlarındaki konularla ilişkilendirilmesidir.
Eğer developer'lar her check-in yaptıklarında, kod'un içerisinde ilgili yere bu değişikliğin nedeni olan IssueKey'i comment olarak yazarlarsa, JIRA ve CVS'in entegre olduğu durumlarda bu değişiklik JIRA'daki ilgili issue ile ilişkilendirilir ve raporlanır.
6) Issue Linking : Bir sürüm kapsamındaki işlerin bağımlılıklarının takip edilmesi çok önemlidir. Örneğin 2.1.7 sürümünde çıkartacağınız bir iyileştirmenin bir parçası 2.2.0 sürümde çıkartmayı planladığınız bir iyileştirmeye bağımlı ise Sürüm Planını tekrardan yapmanız gerekecektir. Burada esas sorun planın tekrar yapılması değil bu bağımlılığın önceden ve kolayca tespit edilebilmesidir.
Bu konu ile ilgili diğer bloglar:
Sürüm Yönetimi Pratikleri - I
Sürüm Yönetimi Pratikleri - II
Etiketler: Affect Version, Fix Version, Issue Tracking, Release Management, Sürüm Yönetimi