16 Mayıs 2013 Perşembe

İnsan Kaynakları Açısından Agile

Uzunca bir süre geleneksel yöntemlerle yazılım geliştirmiş ve bu yöntemlerin beraberinde getirdiği türlü sorunlarla uğraşmış biri olarak, agile yazılım geliştirme süreçlerinin çalışanlar üzerinde olumlu etkileri olduğunu düşünüyorum. Hatta bu düşüncelerimi hazırladığım "Odadaki Fil: Motivasyon" isimli bir sunum ile dinleyicilerim ile paylaşıyorum. Böyle düşünmemin nedeni, bir organizasyonda agile kültür oturduğunda insanlara gerçek manada nasıl değer verildiğini görmem. Agile kültüre sahip şirketler, başarılı bir yazılım geliştirebilmek için insan odaklı sistemler oluşturuyor, çalışanları bir "kelle sayısı (head count)" olarak değil bir "yetenek (talent)" olarak görüyor. Hatta dünyada bir çok şirket, çalışanları ile doğrudan ilgilenen bölümü olan "İnsan Kaynakları (Human Resources)" bölümünü yeniden şekillendiriyor. Agile modeli de denen bu yeniden yapılanmada, "Yetenek Yönetimi (Talent Management)" gibi insana daha değer veren farklı yapılar kuruluyor.

Düşüncelerimi tecrübelerden yola çıkarak değerlendirmek güzel gözükse de, bilimsel verilerle desteklemek hep istediğim bir şeydi. Ne mutlu ki geçenlerde tam da istediğim verilere ulaştım.

Boğaziçi Üniversitesi'nden Stefan Koch ve Vienna Üniversitesinden Gerhard Turk isimli değerli bilimadamları 2011 senesinde "Çevik ve Geleneksel Yazılım Proje Süreç Modellerinde İnsan Kaynaklarıyla İlişkili Sorunlar" isimli bir makale yayınlamışlar. Bu makale beni hem çok heyecanlandırdı, hem de bu alanda somut verilere ulaşacağım için çok mutlu etti.

Bu çalışma, Avusturya'da Agile uygulayan ya da Waterfall gibi geleneksel yöntemlerle yazılım geliştiren 15 farklı yazılım şirketi incelenerek yapılmış. Cevaplamaya çalıştıkları ana sorular şunlarmış:
  • Hangi süreci kullanan çalışanlar daha yüksek memnuniyet oranına sahip?
  • İşten ayrılmalar ve yüksek stres oranı gibi problemler dahil, insan kaynaklarıyla ilişkili sorunlar hangi süreçte daha az karşılaşılıyor?
İncelenen yazılım takımlarında takım büyüklüğü ve devam süresi birbirlerine benzer çıkmış. Bu nedenle rahatlıkla karşılaştırma imkanı bulmuşlar. Çoğunluğu yazılımcı ve proje yöneticisi olan çalışanlar ile mülakatlar yapmışlar.

Ben özellikle sizlere aktarmak istediğim bölümleri paylaşmak istiyorum. Daha fazla ve detaylı bilgi için ilgili makale incelenebilir.

İnsan Kaynakları İlişkili Sorunlar

Yazılım takımlarının karşılaştıkları ana sorunları araştırdıklarında, memnuniyetsizliğin ve sorunların ana kaynakları olarak çoğunlukla şunları belirlemişler:
  • Çalışanlar arasında kişisel sürtüşmeler
  • Belli olmayan süreçler
  • İş yükünün adil dağıtılmış olmaması
  • Proje sonunda çalışanlar üzerindeki zaman baskısı
  • Farklı milletten çalışanları olan takımlarla çalışanların kültürleri arası farklılıklar
  • Yöneticilerin çalışan ihtiyaçları için minimum zaman ayırması
  • Yöneticilerin çalışanları ile iyi ve kalıcı bir iletişim içerisinde olmaması ve sorunlardan geç haberdar olmaları
Bu çalışmada çalışanların özellikle projenin yoğun olduğu önemli zamanlarda aldıkları izinler de incelenmiş. Zaman çizelgeleri dolduruluyorsa, burada yapılan kasıtlı hatalar, projedeki hatalar, gecikmeler ve kalite problemleri de üzerinde durulan başka konular.

Kaynak Araştırması

Bu alanda daha önce yapılmış araştırmaları da incelemişler. XP (Extreme Programming)'nin çalışan memnuniyetine olan etkilerini araştıran çalışmalarda, çalışanların yapılan işten heyecan duyma oranı yüksek çıkmış. Verilerde, Agile pratiklerinin resmi ve gayri resmi iletişimi arttırdığı görülmüş. Yine başka bir araştırmada XP'nin başarısının altında yetenekli/bilgili personelin iletişim becerisi ve sinerjisinin olduğu tespit edilmiş.

Veriler ve Sonuçlar

Araştırmada elde edilen veriler ve çıkan sonuçlar şöyle özetlenebilir.
  • Karşılaştırılan takımlar, takım büyüklüğü ve devam süresi olarak benzerlikler içeriyor.
  • Geleneksel projelerde, yapılacak işin tahminleri (estimations) çok daha fazla.
  • Veriler incelendiğinde, agile süreçler küçük yazılım grupları için, geleneksel süreçler ise daha büyük takımlar için daha uygun görünüyor.
  • Bir işin ne sürede biteceğinin tahmininin doğruluğu, ilginçtir ki agile takımlarda daha iyi.
  • Müşteri memuniyeti hesaplandığında, agile takımlar geleneksel takımlardan çok daha iyi.
  • Agile takımlar dahil genel olarak tüm çalışanlar daha fazla sorumluluk almak istiyor.
  • Hiyerarşik bir yapının tersine, herkes daha düz bir organizasyon yapısının destekliyor.
  • Yaş dağılımına baktığımızda, genç sayılabilecek çalışanlarda çeviklik ve esneklik bir miktar daha fazla.
  • Takım elemanları tarafından kabul görme oranlarında agile süreç modelleri daha yüksek. 
  • Moralin artmasında takım elemanlarına verilen değerin ve yeni sorumlulukların olabileceği düşünülüyor.
  • Bilgi paylaşımı başarının ana nedenlerinden biri ve bu doğrudan şirket kültürü ile ilişkili.
  • Veriler ışığında, çalışanların çalışma arkadaşları ile ilgilenme oranlarında her ne kadar bir fark olmasada, birçok kaynakta bu ilginin artmasının agile'in artılarından olduğu belirtiliyor.
  • Takım elemanlarının kaybının yaratacağı negatif etki, katı kuralları nedeniyle geleneksel yöntemlerde daha az olacak gibi düşünülse de, eşli programlama (pari programming) ve herkesin kodu sahiplenmesi (collective code ownership) sayesinde tam tersi çıkmış.
  • Verimliliği etkileyen ana etmen şirket ortamı. 
  • Agile takımlarda çalışmak üzere daha iyi çalışanlar seçildiği varsayımı yapılabilir.
  • Geleneksel projelerde çıktı/sonuç/ürün agile projelere göre daha kötü.
  • Stres geleneksel projelerde daha fazla. Bu agile'da bulunan sürdürülebilir yoğunluk ve "fazla mesai yapmama" kavramları nedeniyle olabilir.
Tabi ki her araştırmanın eksik, iyileştirmeye açık yönleri olacaktır. Yazılım geliştirme süreçlerini karşılaştırmak teoride kolay, ancak pratikte gerçekten de zor. Nasıl süreç kullanırsanız kullanın, sevgili Altuğ Altıntaş'ın da dediği gibi "hiç bir metodoloji, tutku ve disiplinden daha etkili değildir". 

0 yorum:

Yorum Gönder

Template developed by Confluent Forms LLC; more resources at BlogXpertise