Yazılım kariyerimin ilk yıllarında yöneticilerin temel görevinin işleri takip etmek olduğunu düşünürdüm.
- Görevleri dağıtmak.
- Toplantıları yönetmek.
- Projeleri yetiştirmek.
- Rapor hazırlamak.
- Üst yönetime bilgi vermek.
Yıllar içerisinde geliştiricilikten ekip liderliğine, oradan yöneticiliğe geçtikçe bakış açım değişti.
Çünkü şunu fark ettim:
Bir yazılım yöneticisinin başarısı, kendi yaptığı işlerle değil, ekibinin sürdürülebilir şekilde üretebildiği değerle ölçülür.
Bu nedenle yazılım yöneticilerinin hedefleri yalnızca teslim tarihleri veya proje planlarından ibaret olmamalıdır.
Peki bir yazılım yöneticisinin gerçek hedefleri ne olmalıdır?
1. Güçlü ve Güvenilir Bir Ekip Oluşturmak
Birçok yönetici projelere odaklanır.
- Oysa projeler gelir ve gider.
- Asıl kalıcı olan ekiplerdir.
- Başarılı yöneticiler her problemi kendileri çözmeye çalışmaz.
- Problemleri çözebilen insanlar yetiştirir.
- Çünkü bir yöneticinin en büyük başarısı vazgeçilmez olmak değildir.
- Kendisi olmadan da çalışabilen bir ekip oluşturabilmektir.
Eğer ekipteki her karar için herkes yöneticiyi bekliyorsa, orada güçlü bir ekipten söz etmek zordur.
2. İnsanları Büyütmek
Yazılım yöneticiliğinin önemli bir kısmı aslında insan gelişimidir.
Bir geliştiricinin bugün bulunduğu nokta ile bir yıl sonraki noktası arasında fark yaratabilmek gerekir.
- Yeni sorumluluklar vermek.
- Gelişim alanlarını göstermek.
- Geri bildirim sağlamak.
- Potansiyeli ortaya çıkarmak.
Yöneticilik yıllarımda şunu gördüm:
Yetişen insanlar projelerden daha uzun ömürlü yatırımlardır. Bir projeyi birkaç ayda tamamlayabilirsiniz. Ama yetiştirdiğiniz bir çalışan yıllarca değer üretmeye devam edebilir.
Bu konuda çok şanslıyım yetiştirdiğim bir çok kişi ile halen görüşüyor ve ürettikleri değeri görebiliyorum. Bu bana ayrıca bir gurur veriyor.
3. Sürekli Yangın Söndürmek Yerine Sistem Kurmak
Bazı yöneticiler bütün gün problemlerle uğraşır.
- Üretim hataları.
- Müşteri şikayetleri.
- Geciken işler.
- Acil talepler.
Bir süre sonra kendilerini çok çalışıyor gibi hissederler.
Ancak önemli soru şudur:
Bu problemler neden sürekli tekrar ediyor?
Başarılı yöneticiler yalnızca sorun çözmez. Sorunların tekrar oluşmasını engelleyecek sistemler kurar.
Çünkü sürdürülebilir başarı kahramanlıklarla değil, süreçlerle gelir.
4. Teknik Borcu Yönetmek
Yazılım ekiplerinde en sık ihmal edilen konulardan biri teknik borçtur. Yeni özellikler geliştirmek görünürdür. Müşteri memnuniyetini artırır. Ancak görünmeyen tarafta biriken teknik borç zamanla gelişimi yavaşlatır.
İyi bir yönetici kısa vadeli talepler ile uzun vadeli sürdürülebilirlik arasında denge kurmalıdır.
Bugünü kurtarırken yarını riske atmamalıdır.
5. Öncelikleri Netleştirmek
Bir ekip için en yorucu şeylerden biri sürekli değişen hedeflerdir. Her işin acil olduğu bir ortamda hiçbir iş gerçekten öncelikli değildir. Yazılım yöneticisinin görevlerinden biri de ekip adına filtre görevi görmektir.
Her talebi doğrudan ekibe aktarmak yerine:
- Ne önemli?
- Ne bekleyebilir?
- Ne yapılmamalı?
sorularını cevaplayabilmelidir.
Bazen iyi yöneticilik “evet” demek değil, doğru zamanda “hayır” diyebilmektir.
6. Güven Ortamı Oluşturmak
Bir ekipte insanlar hata yaptıklarını söyleyemiyorsa…
Yardım istemekten çekiniyorsa…
Fikirlerini paylaşmıyorsa…
Orada teknik problemden önce kültür problemi vardır. Güven ortamı olmayan ekiplerde insanlar kendilerini korumaya çalışır. Güven ortamı olan ekiplerde ise insanlar problemi çözmeye odaklanır.
Bu yüzden iyi yöneticiler korku kültürü değil, öğrenme kültürü oluştururlar.
7. İş Sonuçlarını Takip Etmek
Bazen yazılım ekipleri yalnızca teknik çıktılara odaklanır.
- Kaç görev tamamlandı?
- Kaç satır kod yazıldı?
- Kaç ekran geliştirildi?
Oysa iş dünyasında önemli olan bunlar değildir. Önemli olan üretilen değerdir.
- Müşterinin problemi çözüldü mü?
- Operasyon hızlandı mı?
- Maliyet düştü mü?
- Memnuniyet arttı mı?
Yazılım yöneticisi teknik dünya ile iş dünyası arasında köprü kurabilmelidir.
8. Kendisine Bağımlı Bir Ekip Değil, Otonom Bir Ekip Kurmak
Yöneticiliğin ilk yıllarında her şeye dahil olmak başarı gibi görünür.
- Her kararı vermek.
- Her problemi çözmek.
- Her detayı kontrol etmek.
Ancak zamanla bunun sürdürülebilir olmadığını öğrenirsiniz.
Gerçek başarı, insanların siz olmadan da doğru kararlar verebildiği bir yapı oluşturmaktır.
Çünkü ölçeklenebilir ekipler kontrolle değil, güvenle büyür.
Yıllar içerisinde yöneticiliğe bakışım önemli ölçüde değişti.
Eskiden yöneticiliği iş takibi olarak görüyordum. Bugün ise farklı düşünüyorum.
Bir yazılım yöneticisinin temel görevi:
- Daha fazla toplantı yapmak değil,
- Daha fazla rapor hazırlamak değil,
- Daha fazla kontrol etmek değil,
İnsanların başarılı olabileceği bir ortam oluşturmaktır.
Çünkü günün sonunda yazılım projelerini süreçler değil insanlar hayata geçirir.
- İnsanlar gelişiyorsa ekip gelişir.
- Ekip gelişiyorsa ürün gelişir.
- Ürün gelişiyorsa şirket gelişir.
Ve aslında iyi yöneticiliğin özü de tam olarak budur diye düşünüyorum.