dryasarsafkan.com
Yaşar Safkan
Yazılım · Sistemler · Eğitim Software · Systems · Teaching
YazılarWriting

Yazılım Geliştirme Ekip Üyesi Seçme ve Değerlendirme

24 May 2024

Sorun daha başlığı atarken başladı. Öyle bir zamana geldik ki, bana insanlar okuduklarını “anlamak” için değil, “alınmak” için okuyorlar. “Eleman” diyemiyorsun mesela. Birileri başkalarını aşağılamak için kullanmış bunu. “Teknik çalışan” desen de olmuyor, birileri o teknik bu değil falan diye dertleniyor. Paragraf doldu, daha konuya giremedik.

Girelim. Yazılım Geliştirme Ekibi, tam organizasyon detaylarından bağımsız olarak, yaptığı hata, üretim sistemlerinde sorun oluşturabilecek herkes anlamına geliyor. En azından benim kafamda böyle. Negatifle tanımlamış olduk ama, sanırım nereden kesmek istediğimi en iyi bu anlatıyor.

Açıkça, kod yazan herkes dahil — front-end’cisi, back-end’cisi, mobilcisi farketmiyor. Analistin her türlüsü de dahil. İş analisti, teknik analist. Keza, “mimar” adı verdiğimiz herkes de bunun içinde.

İçinde olmayanlar? Proje yöneticisi bunun içinde değil, sıfatında “müdür” veya “koordinatör” geçenler de değil. Elbette bunlar da yazılım projelerinin başarısınında çok önemli roller oynarlar, ama derdim bunlar değil.

Sahi, derdim neydi ki? Bu insanları seçme ve değerlendirme üzerine bir şeyler diyecektim. Bir de bugün Lakonik günümde hiç değilim, yazacağım işte aklıma geldiği gibi.

Kriterleri zaman içinde altı taneye indirgedim:

Şimdi bu kriterlerin ne anlama geldiğinden bahsedelim.

Yetenek

Yetenek derken, zihinsel yetenekten bahsediyoruz doğal olarak. Bu da çok basit bir tanım değil ama, böyle bir şey de var. Sıklıkla da ölçüyoruz. Yeni kavramlara adapte olma, kavrayış hızı, farklı şeyler arasında bağlantı kurabilme, benzerlikleri ve farklılıkları yakalama, çıkarım yapabilme gibi bir sürü alt başlığa bölünebilir. Pratikte ise, bilinen yetenek testlerinden biri uygulanır veya hangi üniversitede okuduğuna bakılır. Üniversitenin önemi, çıkışında değil, girişindedir yani.

İnsan Evladı Olmak

Bunu nerede söylesem, insanlara pek “kurumsal” gelmiyor. Sanırım bunun sebebi, bizim “kurum” diye bildiğimiz şeyin de pek “insan evladı” olmaması. (Bizim “kurum”lar “kur”ma kökünden değil, “soba kurumu”ndan geliyor diye düşünüyorum uzun süredir. İnsanın ağzına-burnuna kaçıyor, rahatsız ediyor, boğuyor…)

Anladınız siz onu da, anlatayım yine de. Güvenilir bir insan mı? Egosu kapıdan sığıyor mu? Kendisini fasulye gibi nimetten mi sayıyor? Bir “üstünlük” derdi mi var? On ekmeği olsa, birini bize verir mi? Bu insanla oturup sohbet etmek ister miyiz? Gücü eline geçirse bize ne yapar?

Anlatmadım ama sordum. İşte insan evladı olmak bu soruların cevaplarına göre belirleniyor.

İkinci sırada yazdım, ama bence en önemli kriter bu. Burada “geçer not” alamayan insan; ekip, şirket, hatta ülke bozar. Geçer not alamayana “toksik” diyoruz.

Öğrenme İsteği

Yazılım işi öyle bir iş ki, sürekli hareket halinde. Hoş, bu çağda böyle bir çok iş var, ama yazılım “bilgi işinin en bilgi işi” olduğu için, en ağır durum da burada var. Öğrenme isteği olmayan, sürekli öğrenme taraftarı olmayan, statikleşecek ve ayağına yer ettikten sonra “istemezük”çü olacak insanların iyi bir ekibin içinde -maalesef- yerleri yok. Yani, “X biliyor musun” diye sorunca, “bilmiyorum ama ıslıkla çıkarabilirim” demesini bekliyorum. Elbette genel tercihleri olabilir; öğrenmek için süre de isteyebilir (hatta istemelidir) ama “ben bildiğimle iş yapayım beni germeyin” diyenler bu kriterden sınıfta kalır.

Profesyonellik

Bu kadar çok söylenip, bu kadar bilinmeyen — hatta yanlış bilinen bir kavram olamaz herhalde. Bunu “anladınız siz onu” varsayımıyla değil, “anlamadınız siz onu” varsayımıyla anlatacağım.

Profesyonelliğin içinde şu bileşenler var:

Aslında, “junior” dediğimiz durumdan kurtulmanın kriterlerinin çoğu bu kriterde yatar. Diğer kriterlerden tamamen bağımsız olmasa da, bu kriterin kendisi de net olarak var.

İletişim

İletişim. Doğru iletişmek o kadar zor bir şey ki. Biz de insanları eğitim hayatının bir yerinde “sayısalcı”-”sözelci” olarak ikiye ayırıyoruz ki, mühendis tayfasının iletişim yetenekleri yerlerde olsun. Hepsi öyle değil, ama kendi özel ilgilerine ve yeteneklerine terkettiğimiz de kesin.

Sözlü iletişim: İnsanlarla insan gibi konuşabiliyor mu? Düşündüklerini, sorunları, çözümleri “homganga” dilinde değil de, insan dilinde ifade edebiliyor mu?

Yazılı iletişim: Eposta yazabiliyor mu? Doküman yazabiliyor mu? Yazdığı dokümandan bir şey anlaşılıyor mu? “Al bu dokümanı, ben şimdi sana ne yazdığını anlatayım” mı diyor, yoksa yazdığı doküman tek başına işe yarıyor mu? (Bu son dediğim bulunmaz Hint kumaşı.)

Bu arada, bu böyle damardan yazılımcılar, mimarlar için de geçerli. Yok öyle yani karanlık bodurmda saklanıp kod yazıp ne dediği anlaşılmamak.

Teknik Bilgi

Bu özellikle sonda. Önemsiz olduğu için değil, ancak aşırı önemli görülüp, tek kriter haline getirilme potansiyeli olduğu için. Burada da iki alt kategori var (hoş her türlü bilgi için var):

Temel bilgilerin eksikliği, bunların tamamlanması için çok efor gerekeceği anlamına gelir. Buradan, “arızî” bilgileri aşağıladığım anlaşılmasın; arızî bilgiler pratik ve güncel bilgilerdir; onlar olmadan hiçbir şey yapılamaz. Ancak, temel bilgileri sağlam, arızî bilgileri eksik birini, haftanın her günü temel bilgileri eksik, arızî bilgileri dolu birine tercih ederim.

Kriterleri Ölçmede Ne İşe Yarar?

Kriterler nasıl ölçülür konusuna artık çok detaylı giremeyeceğim ama, şu tabloyu da yukarı bırakmış olayım. Siz kendi sonuçlarınızı çıkarın.

Son olarak, şunun da altını çizeyim: Son zamanlarda gündem olan “Altı ayda yazılımcı olunur mu?” sorusu var. Bence buradan onunla ilgili ilginç sonuçlar da çıkar.

Seçme ve seçilme durumundaki herkese kolaylıklar…