Retrospective etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Retrospective etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

06 Temmuz 2015

Sprint Sonunda Retrospective Nasıl Yapılabilir?

Agile yazılım geliştirme yaklaşımının öne çıkan özelliklerinden ikisi, değişime cevap verebilme ve değişen şartlara adaptasyondur. Bunu sağlayabilmek için yapılması gerekenlerden birisi de sürekli olarak nerede olunduğunun, nereye gidilmeye çalışıldığının değerlendirilmesi ve alınması gereken aksiyonların alınmasıdır.

Agile manifesto'da bununla ilgili olan prensip; "Takım, düzenli aralıklarla nasıl daha etkili ve verimli olabileceğinin üzerinde düşünür ve davranışlarını buna göre ayarlar ve düzenler."

"Her zaman iyileştirilebilecek bir şeyler vardır.", "Hiç bir şey mükemmel değildir ama her şey mükemmelleştirilebilir.", "Agile bir hedef değil yolculuktur." gibi yaklaşımlar bu değerlendirme/iyileştirme toplantılarının sürekli olarak yapılmasını gerekli kılar.

Bu prensip farklı isimlerle anılabilir; Inspect&Adapt, Continuous Improvement, Kaizen, Retrospective gibi. Scrum kapsamında bu prensip retrospective toplantısı adı altında bir pratiğe dönüştürülmüş. Retrospective toplantıları her sprint'in sonunda ekibin yaptığı, scrum master, product owner, takım gibi roller dışında yönetici gibi diğer rollerin de katılabileceği bir toplantıdır. 2haftalık sprintler icin 1-1.5saat civarı olması tavsiye ediliyor.

Retrospective toplantılarının yapılmamasının nedenleri genelde şunlar oluyor;

  • İnsanlar iş yapış şekilleri, projeler, süreçler vs. üzerine yeterince kafa yormadığı için iyileştirecek bir şey ortaya koyamıyorlar, diğer bir deyişle umursamıyorlar.
  • Retrospective toplantılarında çıkan aksiyonlar takip edilmiyor, yani iyileştirilmesi gereken yerler iyileştirilmiyor, dolayısı ile her toplantıda aynı sorunlar tekrar tekrar konuşuluyor, bu durum bir süre sonra toplantının gereksiz olduğu düşüncesi ile sonuçlanıyor.
  • Toplantıda konuşulan konular bireyselleştiriliyor ve çatışmalar çıkıyor. Bir ekip bilinci/ruhu yok ise bu çatışmalar çok kolay tetiklenebiliyor, özellikle test/development çatışmaları.
Yukarıdaki gibi sorunlar yüzünden retrospective toplantıları yapamıyorsanız ama yapmanız gerektiğini, bir şeyleri iyileştirmeniz gerektiğini düşünüyorsanız, ki her zaman iyileştirecek bir şeyler vardır, bu sorunları çözmek birinci derecede scrum master rolünü üstlenen kişiye kalıyor.

Retrospective toplantılarını ferah, insanların rahat edebileceği, beyaz tahtası olan bir toplantı odasında yapmak sağlıklı sonuçlar almanıza yardımcı olacaktır.

Retrospective toplantılarında insanları konuşturabilmek onlardan geri bildirim alabilmek için kullanılan farklı yöntemler var. Biz şu pratikleri kullanıyoruz;
  • Sprint puanı
  • Mutluluk Indexi
  • Yapmaya Başlayalım/Yapmayalım/Yapmaya Devam Edelim Çalışması
  • Nokta Puanlama
  • Tartışma
Retrospective toplantısına liderlik eden bir kişi oluyor, bizde genellikle bu kişi scrum master oluyor ama bu zorunlu değil, hatta ekib dışından birisinin retrospective toplantısına liderlik etmesi de tavsiye edilen bir pratik.

Toplantının başında toplantının nasıl ilerleyeceği her bölüme ne kadar süre ayrıldığı ile ilgili ekibe bilgilendirme yapılıyor ve sonrasında pratiklere geçiliyor.

İlk iki pratik için ekibe küçük(5x5cm) kağıtlar dağıtıyorum. Bu kağıdın bir tarafı ilk pratik için diğer tarafı da ikinci pratik için kullanılacak.

Sprint puanı ilgili sprint hakkında ekibin genel hissiyatını öğrenmek için kullanılan bir pratik. Bu pratik geçen sprint ile ilgili ne hissediyorsun sorusuna kişinin aklına gelen ilk cevabı aslında, bu cevabı farklı formatlarda alabiliyorsunuz biz puan formatında alıyoruz. Herkes aldığı kağıdın bir yüzüne sprint'e 10 üzerinden kaç puan verdiğini genel hissiyatına göre yazıyor, sonra herkesin verdiği puanlar toplanıp ortalama puan bilgisi bulunup ekip ile paylaşılıyor. Bu puan size üst seviyede, geçirdiğiniz sprint'i diğer sprintleriniz ile de karşılaştırma imkanı veriyor.

Mutluluk Indexi, ilk başta biraz garip geliyor isim olarak, bireysel bir geri bildirim alıyorsunuz ekip arkadaşlarınızdan. Bu pratik her ekip üyesinin özel olarak 3 farklı soruya verdiği cevaptan oluşuyor;
  • Genel olarak burada çalışmaktan ne kadar mutlusun? (5 üzerinden puan)
  • İleriye dönük olarak mutlu olacağına/kalacağına inanıyor musun? (5 üzerinden puan)
  • Seni mutlu edeceğine inandığın 3-5 kelime yazar mısın?
 Herkes verilen kağıdın bir yüzünü 3'e bölerek bu 3 soruya cevabını bölmelere yazıyor. Bu pratik için kimin ne yazdığının scrum master tarafından bilinmesi gerekiyor, dolayısı ile bu kağıtlara ekip üyeleri isimlerini de yazıyor.

Scrum master, veya ekip lideri, bu kağıtları toplayıp daha sonra, mümkünse diğer sprint'in retrospective toplantısına kadar, her bir ekip arkadaşıyla kağıda yazdığı bağlamda konuşuyor. Çözülmesi gereken problemleri çözüyor veya çözülmesi için girişimlerde bulunuyor. 

Bu pratik size her bir ekip arkadaşınızın ne kadar mutlu olduğu, ne kadar umutlu olduğu, neleri istediği veya istemediği ile ilgili bilgi veriyor. Ekip arkadaşlarınızın hangi seviyede olduğu hakkında bilginiz oluyor, mesela birisinin iş yerinde maaş/kariyer gibi problemleri var ise o kişiden kendini geliştirmesini, ekip ile teknik anlamda bir şeyler paylaşmasını beklemek çok gerçekçi olmayabiliyor. Normalde çok iyi iş çıkaran bir ekip arkadaşınızın performansındaki düşüşün nedenini anlayabiliyorsunuz. Bu tür konuları bu şekilde formal bir girdi alarak yapmak bu işin tek yolu değil elbet, ekip arkadaşları ile düzenli olarak konuşan bir lider bu şekilde bir girdi almadan bu süreci iyi bir şekilde yönetebilir. Yazılı iletişim ile bir ön çalışma sonra onun üzerine sözlü iletişim ile yazılanları açma olan bu yöntem bana daha kolay ve etkin geliyor.

Yapmaya Başlayalım/Yapmayalım/Yapmaya Devam Edelim çalışması için renkli post-it'ler kullanıyoruz. Her kategorinin bir rengi oluyor, bunları tahtaya kategori isimlerinin altına yapıştırıyorum. Daha sonra 5dakika boyunca her ekip üyesi bu kategoriler ile ilgili olarak geçen sprint için düşüncelerini post-it'lere yazıyor. Kategorilerin anlamları şu şekilde;
  • Yapmaya Başlayalım; Yapmıyoruz ancak yaparsak şu şekilde faydalar olacağını düşünüyorum, bir sonraki sprint'de bunun yapılmasını istiyorum.
  • Yapmayalım; Bunu yapıyoruz ancak bu bize şu şekilde zarar veriyor o yüzden artık bunu önümüzdeki sprint'den itibaren yapmayalım istiyorum.
  • Yapmaya Devam Edelim; Bunu yapıyoruz, şu şekilde faydalarını görüyoruz, o yüzden bunu yapmaya devam edelim. Sprint kapsamında bir çok şey yapıyor ve hepsinin devam etmesini istiyor olabilirsiniz, buraya yapmaya yeni başladığınız veya kritik gördüğünüz şeyleri yazabilirsiniz.
5 dakikanın sonunda, ekip üyeleri sıra ile tahtaya çıkıp post-it'ler üzerine yazdığı notları tahtada ilgili kategoriye yapıştırıyor ve yazdığı şeyi okuyor, belki 2-3 cümle ile de bir açıklama yapıyor, ama tartışılmıyor. Her ekip üyesi bunu yaptıktan sonra biz, eğer tahtada çok fazla konuşulması/tartışılması/aksiyon alınması gereken post-it var ise nokta puanlama yöntemi ile öncelikleri belirlemek için oylama yapıyoruz. Eğer post-it sayısı az ise hepsini konuşabileceksek bu oylamayı yapmıyoruz.

Nokta puanlamada her ekip üyesinin her kategoride 3 nokta'dan ibaret olan bir puanlama hakkı oluyor. Toplamda 3 kategori var, yani her ekip üyesinin elinde 9 adet noktası oluyor. Ekip üyeleri tahtaya çıkıp her kategoride kendine göre öncelikli olan post-it'lere puan veriyor, isterse tüm puanını(3nokta) tek bir post-it'e de verebilir veya dağıtadabilir. Burada amaç öncelikli olan, en çok puan alan, konuları belirleyip onlara öncelikli olarak odaklanmak.

Son olarak tahtadaki post-it'ler, toplantıya liderlik eden kişi öncülüğünde ekip ile tartışılıyor ve yeterince net değilse, farklı görüşler varsa bunlar ortaya çıkarılmaya çalışılıyor. Burada herkesin eşit süre alarak fikir beyan etmesine imkan verilmesi, faydasız çatışmaların önüne geçilmesi, konuların bireyselleştirilmesine izin verilmemesi gibi konulara dikkat etmek gerekiyor. Burada eğer alınması gereken aksiyonlar çıkar ise onları da not etmek gerekiyor.

Elbette bir ekipde bireysel sorunlar da olabilir, ekibi rahatsız eden, ekip motivasyonunu düşüren çalışanlar olabilir. Bu tip sorunların retrospective toplantılarında konuşulması çok doğru bir yaklaşım değil, çatışma çıkma veya bireysel olarak bir ekip üyesinin rencide edilme ihtimali çok yüksek olduğu için. Scrum master veya ekip liderinin bu tip sorunların farkında olması ve bu tip ekip üyeleri ile bire bir konuşması, bir birleri arasında sorun yaşayan insanların bire bir konuşmasını sağlaması gerekiyor. Bireysel sorunları ve sonuclarını net olarak ortaya koyması, çözüm üretmesi veya çözüm beklemesi gerekiyor.

Bu son pratik ile birlikte retrospective toplantısı sonlandırılıyor.

Toplantı sonrasında biz retrospective toplantısının çıktılarını(sprint puan, mutluluk indexi, Yapmaya Başlayalım/Yapmayalım/Yapmaya Devam Edelim notları, aksiyonlar) yazılı olarak online bir ortamda(JIRA) tutuyoruz. Takip edilmesi gereken aksiyonları bir kanban board üzerinden online herkesin görebileceği şekilde takip ediyoruz.

Retrospective toplantısı sonucunda çıkan aksiyonların takip edilmesi, delegasyonu, yapılması scrum master veya ekip liderinin sorumlulugunda oluyor. Mutluluk Index'lerinde çıkan konuların ekip üyeleri ile bire bir görüşülmesi de yine aynı kapsamda.

İlk başta söylediğimizi tekrar edelim; unutmayalım her zaman iyileştirecek bir şeyler vardır.

Retrospective pratikleri ile ilgili faydalandığımız bir kitap;