Yazılım Gözden Geçirmeleri - Software-Turk
by Özgür Eralp21 Mayıs 2006
Bu ay, ürün geliştiren organizasyonlarda gerçekleştirilen ‘gözden geçirme’ aktivitesinin yazılım tarafındaki uygulamalarından bahsetmek istiyorum. Yazılım geliştirme süreci içerisinde gözden geçirmeler birer filtre görevi görmektedir. Bu konuda iki uzman Freedman ve Weinberg bir yazılarında şöyle bahseder; ‘Teknik çalışmaların, kalemin silgiye ihtiyacı olduğu gibi, gözden geçirmelere ihtiyaçları vardır’.
Yazılım ürünleri büyüdükçe, karmaşıklığı arttıkça içerebileceği hatalar, kusurlar veya eksikliklerde aynı ölçüde büyür ve karmaşıklaşır. Bu tür sorunları bulabilmek için geliştiricinin tek başına göstereceği çaba yeterli olmayabilir, bir çok önemli nokta ürün içerisinde gözden kaçabilir. Bu yüzden, birkaç kişinin eşliğinde yapılacak olan gözden geçirmelerin başarısı daha yüksek olacaktır. Gözden geçirmelerdeki en temel amaç, yazılımı daha yönetilebilir hale getirmektir. Bu doğrultuda belirlenmiş standartlara uygun geliştirildiğinden emin olmak, ürünün içerebileceği mantık, uygulama ve fonksiyonel hata ve eksikliklerini en erken zamanda ortaya çıkarmak olabilir.
Yazılım mühendisliği alanı içinde birçok gözden geçirme çeşidi vardır. Aklınıza sadece kaynak kodların gözden geçirilmesi gelmesin. Yazılım ürünü geliştirme süreci içindeki herhangi bir ürün gözden geçirilebilir. Bu müşteri istekleri olabileceği gibi, hata raporları da olur. Metot olarak ta bunu gerçekleştirmenin çeşitli yolları vardır. Şirkette çay makinesinin yanında yapılan teknik konudaki sohbet, bir gözden geçirme sayılabilir. Bu yazımda ‘resmi gözden geçirme’ (FTR-Formal Technical Review) yönteminden bahsedeceğim. Temel olarak gözden geçirmeler, yazılım kalite güvence aktivitelerinden bir tanesidir. Yazılım organizasyonlarında kolayca yapılabilecek bir aktivitedir.
Her bir gözden geçirme toplantısı iyi planlandığı, kontrol edildiği ve en önemlisi etkin katılım sağlandığı taktirde başarılı olacaktır. Gözden geçirmelere katılımcılar 2 saati aşmayacak şekilde hazırlanmalıdırlar. Gözden geçirilecek ürün bu özelliği sağlayacak şekilde gerekirse uygun parçalara bölünmelidir. Ayrıca, bir gözden geçirme toplantısının uzunluğu 2 saati aşmamalıdır. Daha uzun sürecek toplantılarda elde edilecek verim düşmektedir. Gözden geçirme toplantıları tipik olarak 3-5 kişi ile yapılır. Tabi ki, bu noktaya gelmeden önce ürünün gözden geçirme için hazır olduğunun ve yeterli olgunluğa ulaştığının da kontrol edilmesi gerekmektedir. Aksi takdirde henüz gözden geçirme yeterliliğe sahip olmayan bir ürün üzerinde ekip gereksiz efor kaybedecek, toplantıda bu ürün henüz gözden geçirilmeye hazır değil denecek, toplantı ertelenecektir. Tüm bunların yaşanmaması için ilk safhada bir onay mekanizmasının kurulmasında yarar vardır.
Toplantıya gözden geçirme lideri, katılımcılar ve ürün sorumlusu katılır. Katılımcılardan bir tanesi, üzerinde konuşulan konuları ve maddeleri not etmek ile görevlendirilir. Genelde toplantı, ürün sorumlusunun kısa girişi ile başlar.Gözden geçirme toplantısı sonunda, tüm katılımcıların ortak görüşleri doğrultusunda bir karara varılır. Bunlar :
• Ürün herhangi bir değişikliğe gerek duyulmadan kabul edilir veya
• Ürün ciddi eksiklikler ve hatalar içerdiğinden, önce düzeltilmeli daha
sonra tekrar gözden geçirilmeli denebilir veya
• Ürün, içerdiği ufak eksikliklerin ve hataların düzeltilmesi ve daha
sonra bu düzeltmelerin yapıldığının kontrolü şartı ile kabul edilir.
Gözden geçirme işlevinde dikkat edilecek birkaç önemli noktayı özetlemek istersek :
• Organizasyonda yerleştirilmesi gereken bilinç; gözden geçirilenin
yazılım ürünü olduğu, ürünü geliştiren olmadığıdır. Tespit edilen
eksiklikler ve hatalar kibarca dile getirilmelidir, toplantı yapıcı bir
• Bir eksik veya hata belirlendiğinde, katılımcıların tamamının bu nokta
üzerinde anlaşmalarını sağlamak zorunlu değildir. Bunun için fazladan
zaman harcanmamalı, bu nokta üzerindeki tartışmaların toplantı sonrasına
bırakılması sağlanmalıdır. Belirlenen noktaların düzeltme işleminin de
toplantı esnasında tamamlanması zorunlu değildir. Hatta düzeltmelerin
tamamının toplantı sonrasında yapılmasının daha verimli olacağı düşüncesi
• Gözden geçirmelere katılacak kişilerin bu aktivitede verimli olabilmesi
için tam olarak hazırlanmalarına olanak sağlanmalıdır.
• En kolay gözden geçirmeler, ürüne uygun kontrol listesi ile
gerçekleştirilir. Yazılım geliştirme sürecinin her safhasında ortaya
çıkacak ürünler için genel anlamda birer kontrol listesinin üretilmesi,
gözden geçirme işlevindeki verimliliği arttıracaktır.
• Gözden geçirmelere başlamadan önce, daha önceden yapılmış konu ile
ilgili gözden geçirmeleri incelemekte de yarar olduğunu hatırlamakta fayda
Görülüyor ki, gözden geçirmeler iyi yönetildikleri takdirde ürüne direk etki edebilen faydalı aktivitelerdendir. Bununla birlikte, yazılım organizasyonlarında gerek zaman kıstasları gerekse yönetim kusurlarından dolayı uygulanmasında güçlük çekilmektedir. Organizasyondaki tüm ürünlerde gerekli gereksiz uygulanması gerçektende efor ve zaman kayıplarına yol açabilir. Bu yüzden katı bir kural yerine proje içerisinde gözden geçirilmesi faydalı olacak ürünlerin önceden tespit edilmesi ve sadece bu ürünlerde aktivitenin uygulanması en verimli yaklaşım olacaktır.
Mühendislik, Süreç, Yönetim