Agile Performans Ölçümü / Hadi Verileri Toplayalım
Evet bu kaynaklar hepimiz kullanıyoruz. Fakat bu bilgileri vermelerine rağmen asıl ölçümü bize asla veremezler. Agile'in çalışma mantığı sadece ileri gitmek değildir. Bir döngüsellik ifade eder.
İlk makaleyi okuduysanız. Verileri doğru olarak toplamanız ve yorumlamanız gerektiğini anladığınızı düşünerek yola devam edeceğim. İşin de sanırsam en zor yerlerinden biri de burasıdır.
Peki nereden hangi bilgileri toplayacağız. Hadi başlayalım.
Öncelikle Scrum Boardumuzu incelemekle başlayabiliriz. Scrum Boardu bize o sprint için geçerli bilgileri sunacaktır. Ama biz daha iyi analizler yapabilmek için boardumuzu dijital ortama aktarmakla bu işe başlayabiliriz. TFS , JIRA vb benzeri proje izleme araçları ile bunları yapabiliriz. Böylelikle klasik bir Scrum Boardu inceleyebilir hale gelebiliriz.
- Takımımızın ne kadar iş yapabildiğini
- İşlere yanıt verme hızını
- Ne kadar iş aldığı
- Sprint Backlog’a ne kadar ekleme yapıldığı vb. durumları buradan çıkarabiliriz.
Evet bu kaynaklar hepimiz kullanıyoruz. Fakat bu bilgileri vermelerine rağmen asıl ölçümü bize asla veremezler. Agile’in çalışma mantığı sadece ileri gitmek değildir. Bir döngüsellik ifade eder. Bunu aklımızda tutarak ve zihnimizi açık bırakarak yolumuza devam edelim.
Hepimizin kullandığı kaynak kod kontrol (source code control) uygulamalarındaki verileri toplamaya başlamalıyız. Aşağıda örnek verdiğin ve daha bir çok bilgiyi buradan toplayabiliriz.
- Ne kadar kod değişikliği olmuş
- Kod ezilmeleri ne kadar yapılmış
- Ekibimiz birlikte kod yazabiliyor mu/ Ne kadar başarılı vb.
Bütün bunlara Sürekli Entegrasyon (continuous integration (CI)) eklememiz gerekmektedir. CI, takımın yazılım geliştirmesinin önemli bir parçasıdır. TFS, TeamCity, Jenkins, Hudson ve Bamboo da dahil olmak üzere hızlıca başlamanıza yardımcı olacak çeşitli sistemler bulunmaktadır. Bu sistemleri Sürekli Dağıtım (continuous delivery (CD)) sistemleri ile de birleştirerek sisteminizi tamamlayabilirsiniz. Burada önem vermeniz gereken en önemli şey, kodunuz oluşturulurken, incelenirken ve test edildiğinde üretilen bilgilerdir. Ekibinizin sahip olduğu bir CI / CD işlemi ne kadar olgunlaşırsa, o kadar çok veri edinebilirsiniz. Yani Devops ekibinizin işinin ehli kişilerden oluşması sizi bir adım öteye götürecektir.
CI veya CD’den cevaplayabileceğiniz sorular ise:
- Ürünümüzde ne kadar hızlı değişiklik yapıyoruz
- Ürünümüzü müşteriye ne kadar hızlı aktarabiliyoruz
- Entegrasyon ve otomatik testlerimiz ne kadar tutarlı
- Takımımız gerçekten etkili bir kurguya sahip mi vb.
Peki bu kadar yeterli midir ? Bu kadar veri ile bir şeyler yapamaz mıyız? Bakınca evet gibi durabilir ama halen elimizde bazı eksikler var. Dikkat ettiyseniz ürünü müşteriye ulaştırdık. Peki orada neler oluyor. Bunun bilgisi bile lazım değil mi ? Gerçek ortamdaki durumu hala bilmiyoruz. Benim için loglaması düzgün tasarlanmamış bir uygulama daha da doğrusu monitör edilemeyen bir uygulama asla iyi bir uygulama değildir. Bir geminiz var denize çıkarmışsınız ama motor dairesinde olanlardan bihabersiniz. Bu iyi bir uygulama olabilir mi ?
Kodunuz gerçek ortama çıktıktan sonra, çalışıp çalışmadığından emin olmak için ona bakan bir sisteme sahip olmalısınız. Böylece hataları uygulamanın performansını ve bir çok ayrıntıyı elde edeceksiniz. En kötü durumda bile şu bilgilere sahip olacaksınızdır.
- Kodumuz ne kadar iyi çalışıyor?
- Hizmet kalitemiz ne kadar iyi?
Evet verilirimizi topladık. Bundan sonraki adımımız analiz veya toplanan tüm verilerle ne yapılacağını bulmaktır. Burada takımımızın performans eğilimlerinin arkasında neler olduğunu anlamak için sorular sorabilir, eğilimleri arayabilir ve veri noktalarını davranışlarla ilişkilendirebiliriz.Fakat veri denizinde yüzüyorsanız, hangi verilerin hangi soruyu yanıtladığını ve hangi metrikleri izlemeniz gerektiğini öğrenmek ise gerçekten zordur. Metrikleri inceleyip yorumlamadan önce yapmamız gerek son bir adım kaldı.
Verilerinizi görselleştirin evet verilerinizi görsel bir ortama taşıyın.Verilerin çok sayıda şekilde yorumlanabileceğini ve istatistiklerin farklı bakış açılarını kanıtlamak için yorumlanabileceğini unutmayın. Göstermek istediğiniz verileri, mümkün olduğunca açık bir şekilde, sorduğunuz soruları yanıtlayacak şekilde görüntülemek çok önemlidir.Elde ettiğiniz bu veriler üzerine sorular sorun. Ama bu sorularınızı önemli olana odaklayın.Bu çerçevede ilerleyin.Örneklememiz gerekirse ekibimizi için yapacağımız en doğru adımı arıyorsak sorumuz en doğru adım nedir olmalıdır. Ama bu büyük bir soru bunu parçalara bölerek ilerleyebiliriz. Ne kadar küçük sorulara indirger isek hem soruya cevap olarak kaynağı hemde sorunun cevabını bulmuş oluruz. Daha sonrada bu sorulardan ilk sorumuzun cevabına ulaşabiliriz. Sorumuza dönersek en doğru adımı bulmak için bunu detay sorulara ayıralım.
- 1.Takım için ne yapabiliriz?
- a. Takımın şuan ki üretim hızı nedir ? Kaynak : Jira TFS vb araçlardadır.
- b. Takımın kod üretim kalitesi nasıl ? kaynak : Kaynak kod kontrol ve CI/CD araçlarındadır.
Gördüğünüz gibi soruları sorulara böldükçe daha rahat hareket edebiliyoruz. Bundan sonraki makalemde bu verilerin yorumlanması üzerinde duracağız ve 3 makalelik serinin sonuna gelmiş olacağız.
Kaynaklar
manning.com
wunder.io
Scrum.org