19 Eylül 2012 Çarşamba

Nedir Şu İzlenebilirlik Denen Şey?


Yazılım sektöründe hangi kademe çalışanı olursanız olun duyarsınız şu ‘izlenebilirlik’ lafını. Söyleyene içtenlikle katılırsınız sohbetinize:

-         ‘Hmm, evet evet, X Hanım, çok haklısınız. İzlenebilirliğe bu projede daha çok dikkat edelim’. (der dışından)
‘İyi de nedir bu izlenebilirlik? Bugüne kadar yapmıyordum, bir sıkıntısını da görmedim. Bundan sonra yapsam ne geçecek elime?’ (düşünür içinden)

Ben şahsen yukarıda hem dış sesine hem iç sesine kulak verdiğim kişiyi her iki söylemi için de haklı buluyorum hatta önemli 2 konuya –içgüdüsel olarak- parmak bastığı için de tebrik ediyorum. Konulardan birincisi şudur; izlenebilirlik sağlandığında bu bir son değil başlangıçtır ve her projede iyileşmelidir, gelişmelidir. İkinci önemli konu ise izlenebilirliğin sağlanması için harcanan çabanın yapılan çalışmaya katacağı değerin farkında olunmasıdır ki her iki konuda birbirine sıkı sıkıya bağlıdır.

(İzlenebilirlik kavramını ele almak istiyorum yazının bu kısmından sonra. Kitap tanımı vermeyeceğim. IEEE yazılım mühendisliği sözlüğünde açıklamasına bakabilir teknik ayrıntı meraklıları, ki bizim izleyici kitlemiz hap çözüm meraklılarıdır. İlgili kaynak için bkz: 610.12-1990 - IEEEStandard Glossary of Software Engineering Terminology)

İzlenebilirlik sözcüğü traceability sözcüğünün tirkçeleştirilmişs halidir bildiğiniz gibi. Sanırım köken olarak trace yani iz, izlemek sözcüğünü temel aldıklarını düşünebiliriz. Ben de izlemek sözcüğünden yola çıkarak konuya yaklaşacağım.
İzlemek deyince benim aklıma kötü amerikan filmlerindeki ‘öndeki arabayı izle’ repliği geliyor maalesef (ben de kendime üzülüyorum!). Öndeki araba eninde sonunda bir yere ulaşır. Aracı arkadan izleyen kişi bir haritaya ya da kendi bilgisine dayanarak izlediği kişinin vardığı yeri söyler. Örneğin 720 Fifth Avenue, New York.

Peki, varsayalım ki öndeki aracı izleyen kişi New York’un yerlisi değil, San Francisco’lu. Elinde haritada da yok. Üstelik bindiği arabayı kullanan taksi şoförü de ingilizce konuşamıyor (etnik köken vererek ayrımcılık yapmayacağım, ingiliz aksanı ile konuşan kişileri de anlamak biraz zor). Peki şimdi ne olacak? San Francisco’lu kardeşimizin öndeki arabayı izlerken geçtiği önemli yerlere ir çentik atmalı. Bir takım sorulara yanıt vermeli izleme işi bittiğinde: aracı tam olarak nerede izlemeye başladı, izlerken dikkat çekici yerlerden geçti mi, bir yerlerde özellikle durdu mu, kimse ile konuştu mu, varılan yer neresi, varılan yerden geriye doğru başlangıca gidebilir mi vb gibi.

İşte benim yazılım projelerinde önem verilmesini önerdiğim izleme işi aşağı yukarı böyle bir şey. Müşteri gereksinimlerinin tüm proje yaşam döngüsü boyunca izlenmesi. Yani analiz, tasarım, kodlama, test, kurulum, bakım gibi aşamalarda  dönüşüme uğradığı yerler, başına gelen değişiklikler, son durakta hallerinin ne olduğunun izlenmesi, kayıt altına alınması. Hatta herhangi bir noktada geriye dönülerek gereksinimlere ulaşılabilmesidir izlenebilirlik. Bu işin yapılması da izlenebilirliğin sağlanmasıdır.

Bu noktada, benim örneğime bağlı olarak şunu da karşı tez olarak sunulabilir:

-         ‘Ama X Hanım, biz bu projenin yerlisiyiz. Sonunda nereye gideceğimizi biliyoruz. (der dışından)
‘Hah, çık bakalım şimdi işin içinden, hehe’ (diye kıs kıs güler içinden)

Haklıdır da. Gidilecek yönü işi yapandan daha iyi bilen yoktur. İşini çok iyi bilen kişiye izlenebilirlik daha da faydası dokunur. Örneğin ana gereksinimlerin alt gereksinimlerine ayrıştırılması sırasında hiçbir noktanın eksik kalmadığından emin olmasını sağlar. Test sürecine daha hazırlıklı girilmesinde önemli bir dayanak noktası olur.

Kıssadan hisse, faydalıdır bu izlenebilirlik. Deneyiniz.

Hepinize kolay gelsin...

Hiç yorum yok:

Yorum Gönder