IT dünyasına 2001 yılında giriş yapan Agile Manifestoyu belki birçok kişi, son beş senedeki popülerliğinden önce duymamıştı. Agile kendi ilkeleri olan, ilkelerle boğulmayan bir yöntemdir. İşleyiş biçimi sadedir.
Çoğu proje metodolojisi de karmaşıklığı azaltmak amacıyla oluşturulmuştur. Bunlardan biri de Agile metodolojidir. Agile metodolojiler süreçten çok insanlara odaklanan bir yapıya sahiptir. Amaç ilk ilmeği atmaktır, hırkanın örülme şekline işi yapacak kişiler karar verir. Çünkü Agile‘ın hammaddesi insandır ve “Her yiğidin bir yoğurt yiyişi vardır”.
Agile büyük bir coğrafyadır. Üzerinde Scrum, Kanban, Extreme Programming gibi beylikler vardır. Bu yazımızda test perspektifinden incelemek üzere Scrum’ı seçtik.
Neden Scrum?
Scrum’da büyük lokmalara yer yoktur; Scrum her şeyi parçalayarak yemeyi sever. Geliştirilecek özellikler iki ila dört haftalık sprint’ler içinde koşulur. Bu süreçte ekip yazılacak özelliklerin sonraki güncellemeye yetişebilmesi için tek yürek hâlinde çalışır.
Yazımızın geri kalan kısmında, ülkemizdeki köklü bankacılık kurumlarından birinde Keytorc olarak yürüttüğümüz, mobil bankacılık uygulamasının Test Geliştirme Yaşam Döngüsü projesinden bazı izlenim ve deneyimlerimizi aktaracağız.
Agile Test’te Roller ve Süreçler
Scrum çok geniş bir framework’tür. Zorlayıcı, engelleyici süreçlere ve araçlara yer yoktur.
Değişen proje dünyasının sınırsız ihtiyaçlarından oluşan istekler havuzunda, kurallar bütününden oluşan bir el sıkışma yerine, önceliklere önem veren yenilikçi bir anlaşma söz konusudur. Birbirleri ile etkileşimde olan bireyler sahne alırlar. En büyük silahlarımızdan biri de yüz yüze iletişimdir.
Her ne kadar Scrum ekiplerinde her birey “team member” gibi gözükse de herkesin farklı bir sorumluluğu vardır. Bu rollerden ilki olan iş analistleri ile test mühendislerinin iletişimi çok önemlidir. Birinin çıktısının diğerinin girdisi olduğundan, en baştaki bir eksiklik, projenin sonucuna etki eder.
Bir diğer rol olan yazılım mühendisleri ile test mühendisleri arasındaki iletişim de bir o kadar önemlidir. Test mühendisleri, kimi zaman yazılım mühendislerinin korkulu rüyası olabilir; çünkü görevi hataları bulmaktır. Bu yüzden aradaki ilişki rekabetten ziyade birbirini tamamlayıcı olmalıdır. İşin belki en zor, ama en çok katkı yaratan kısmı ise test mühendislerinin, buldukları hataları yazılımcıya kabul ettirebilmeleridir.
Agile Test’in Avantajları
Agile Model aslında küçük şelalelerin (waterfall) birleşiminden oluşur, ufak ve yalınlığının temel kaynağı da aslında budur. Bu yalınlık sayesinde ortaya çıkan hataların karmaşıklığı da ortadan kalkar ve hatalar çok daha hızlı bir şekilde tespit edilir ve çözümlenir.
Test mühendisi, diğer birçok metodolojide de olması gerektiği gibi; Agile projelerde projenin başından sonuna kadar süreç içinde bulunarak, analiz sürecinden itibaren işleyişi takip etme imkanına sahiptir. Böylece bazı hataları daha erken tespit edebilir, hatta bir kısmının oluşumunu dahi engelleyebilecektir. Bu işleyişte ürünün genel konsepti hakkında bilgi sahibi olacak test mühendisi; ürünün tamam olması (Done) için müşteri gözü ile değerlendirme yapabilecek ve User Story’lerde bile bulunmayan koşulları göz önünde bulundurabilecektir.
Agile Test’in belki en değerli özelliği ise test sürecinde ürün sahibi ile birebir ilişki kurma imkanının olmasıdır. Analizden itibaren süreçte yer alan test mühendisi, feature’lardaki eksiklik ya da muğlaklıklar ile ilgili durumları yüzyüze iletme imkanına sahiptir. Agile proje yönetimi geri besleme özelliği taşıdığından doğru sonuca ulaşmada önemli bir yöntemdir.
Yazan: Şahin ŞAHİN