Geçen sprint retrospective'inde "takım motivasyonu" diye bir muhabbet dönmüştü. Ben de kafamda bir şimşek çaktı: "Hadi ama, biraz oyunlaştıralım şu işi!" diye düşündüm. Amacım basitti: JIRA'dan ticket'ları çek, "kapanış hızı"nı ölç, haftalık bir liderlik tahtası (leaderboard) oluştur ve Slack'e postala. Takım arkadaşlarımın yüzünde bir tebessüm oluştursun yeter.
Tabii ki işler hemen yolunda gitmedi. JIRA REST API'siyle uğraşmak, özellikle de "resolution date" ile "created date" arasındaki farkı alıp, "In Progress"e geçiş süresini de hesaba katmaya çalışmak... Kafayı yiyecektim. Bir de Python Requests kütüphanesiyle auth işlemleri.
Python:
response = requests.get(url, auth=(user, api_token))
Neyse, botu çalıştırdım, Slack kanalımıza ilk liderlik tahtası postalandı. İlk hafta herkes "oh ne güzel" dedi, eğlenceliydi. İkinci hafta işler değişmeye başladı. İnsanlar sprint planning'de, "şu küçük bug fix" veya "şu tek ekranlık UI düzeltme" ticket'larını kapmak için adeta birbirleriyle yarışır oldu. Çünkü bot, karmaşıklığı (story point) değil, sadece kapanış hızını ölçüyordu!
Şimdi ortaya komik bir durum çıktı. Liderlik tahtasının tepesinde hep aynı 1-2 kişi, çünkü onlar sistemi "oynamayı" çözdü. Asıl zor, uzun süren ve takım için kritik olan backend refactoring veya legacy migration ticket'ları ise ikinci plana atılır oldu. Bot, tam tersi bir motivasyon bozukluğuna sebep olabilir gibi.
Pandas DataFrame'lerle yaptığım basit hesaplamaları komple elden geçirmem, belki de story point'i veya ticket önceliğini (priority) bir katsayı olarak formüle eklemem gerekecek. Yoksa takımın "oyun"u kazanma stratejisi, asıl işi aksatacak.
Siz hiç böyle iyi niyetle başlayıp, ters tepebilecek bir otomasyon veya bot deneyimi yaşadınız mı? Bu tarz bir gamification'ı adil ve üretken kılmak için başka hangi metriklere bakılabilir? Fikirlerinizi merakla bekliyorum!