İlk bakışta bir programcıyı senior yapan teknik bilgisidir. Yüksek seviyede teknik bilgiye sahip olmak için çok tecrübe sahibi olmak gerekir. Yüksek seviyede teknik bilgiye sahip bir şahsın senior olarak algılandığını düşünebiliriz. Lakin teknik bilgi senior olmanın sadece bir boyutudur. Senior mozaiğinin tamamlanması için birçok parçanın bir araya gelmesi gerekir.
Kendisini senior olarak tanımlayan birçok programcı gördüm. Benim açımdan bu programcıların çok büyük bir kısmı senior değil. Şu sebeplerden dolayı:
- Üç ya da beş sene programcı olarak çalıştıktan sonra kıdem alma zorunluluğu varmış gibi kendine durup, dururken senior ünvanını uygun görürler. Böyle programcılar senior ünvanından en uzak olan programcı adaylarıdır.
- Bir ya da birden fazla çatıyı (framework) iyi kullanabildiklerinden dolayı senior olduklarını düşünürler. Bu tip programcılar senior olma yolunda değil, daha ziyada uzman olma yolunda ilerlemektedirler.
- Yıllarca programcı olarak çalışmış olmalarına rağmen ekibin parçası olmaktan acizdirler. Kendi dünyalarında yaşayıp, ekipten kopuk olarak çalışmaya devam ederler. İletişim kurmakta zorluk çekerler.
- Çoğunun müşteriyle iletişimi yoktur ya da çok azdır. Müşterinin tam olarak ne istediğini bilmeden kod yazarlar. Müşterinin ne istediğini bilmediklerinden dolayı nerede durmaları gerektigini bilmezler. Onu da ekleyelim, bu da olsun derken gereksiz zaman ve para kaybına neden olan kod yazarlar.
- Kitap okuyup, kendilerini devamlı geliştirmezler. Geçen yılların onları otomatik olarak senior yaptığını düşünürler. İlk sene bir şeyler öğrentikten sonra dokuz sene aynı şeyleri tekrar etmeyi on senelik tecrübe sahibi olmak olarak algılarlar. Bu onların açısından senior olmak için yeterlidir.
- Test yazmayı zaman kaybı olarak görürler. Başlarını en çok ağrıtan durumun bu olduğunu anlamakta zorlanırlar.
- Teknik olarak belki çok iyidirler ama detaylarda kaybolduklarından veya lüzumsuz şeylerle uğraşmayı sevdiklerinden gereğinden fazla kod yazarlar. Bu hem işverene zarar verir hem de müşteriyi daha çok memnun edecek bir netice ortaya koymaz.
Bu listeyi sayfalar dolduracak sekilde genişletmek zor değil. Benim senior olabilmek için iki kriterim var. Yukarıda saydığım durumları zaman içinde aşıp, senior olmak zor değil. Lakin aşağıda sıraladığım iki kriter olmadan senior olmak hemen hemen imkansız. Bu kriterler:
- Programcının müşteri ile olan iletişimde ne kadar başarılı olduğu.
- Programcının başarıyla kaç proje tamamladığı.
Program yazmak çok maliyetli bir iş. Yazılan her satır kod para demek. Eğer bu satır gereksiz bir satır ise, o zaman bu para pencereden dışarıya atılmış para demektir. Programcı yazdığı her satırın gerekli olup, olmadığını nasıl anlayabilir? Müşteriye ne istediğini sorarak. Müşterinin ne istediğini anlamadan yazdığı kodun gerekliliğini bilemez. Müşteri ne istediğini tam olarak ifade eder ya da etmek zorundadır. Ben şunu istiyorum dediği zaman, programcının müşterinin şu olarak ifade ettiği şeyi koda dökmesi gerekir. Bundan fazlası zarardır, maddi kayıptır. Ne yazık ki kendisini senior olarak gören birçok programcı müşterinin ne istediğini anlamadan oturup, günlerce, haftalarca ya da aylarca program yazabiliyor. Müşterinin ne istediğini tam olarak anlamadan kod yazan, senior programcı olamaz, çünkü kendisini işverenine karşı sorumlu olarak gören bir programcının gönlü kendi yaptığı hatanın ya da keyfi çalışmalarının parasal zarar olarak işverenine yansımasına razı gelmez. Senior programcı bu dengeleri hep kafasında kendisiyle birlikte taşıyan programcıdır.
Başarıyla birçok projeyi tamamlayarak sınır koymanın, sadece gerekeni yapmanın, müşteriyi memnun etmenin, işvereni mutlu etmenin ne demek olduğunu bilmeyen programcı senior ünvanını hak etmez. Başarıyla tamamlanan her proje programcıyı senior olma yolunda ilerlerken pekiştirir, tecrübelendirir. Başarıyla bir proje tamamlamak demek, müşterinin isteklerini tatmin eden bir ürün ortaya koymak demektir. Bu başarıyı birkaç kere tatmadan gerçek anlamda senior olmak çok güçtür ya da imkansızdır.
Senior olmayı bazıları sadece bilgi küpü olmak ve daha fazla maaş almak olarak tanımlıyor demiştim geçenlerde attığım bir tweetde. Senior olmayı sadece bilgili olmak ve fazla maaş almak gibi iki zayıf sıfat ile tanımlamaya kalkmak gerçek senior programcılarin hakkını yemek olur. Bu iki şey gerçek senior programcılar için çok öncelikli olmayan şeylerdir. Onlar müşteriyi dinlemeyi, onun isteklerini tatmin etmeyi yeğlerler.
EOF (End Of Fun)
Özcan Acar
Çok güzel bir yazı olmuş çok teşekkürler.
Bu yazıyı sevenler;
http://www.webteders.com/blog/detay/Senior-ve-Junior-Yazilimci/42
http://altantanriverdi.com/junior-kime-denir/
bunları da okumalı bence. :)
Yazıyı okurken Yunusun “ilim ilim bilmektir; ilim kendin bilmektir. Sen kendin Bilmezsen, Ya nice okumaktır” sözü aklıma geldi.
Güzel Bir Çalışma olmuş. Tesbitleriniz Yerinde. Tebrikler.
Süper bir yazı hocam. Anlayana :)
sırf bu kadar kriterle uğraşmamak için vazgeçtim :)
Çok güzel bir yazı olmuş teşekkürler.
Sizin kadar tecrübeli olmadığımı bilsem de birkaç eleştiri yapmak isterim. Tabi ki bir Senior Programmer müşterinin ihtiyaçlarına uygun işverenin çıkarlarını koruyan bir yapıya sahip olmalıdır. Fakat uzmanlık alanı bu olmadığından bu konuda eksiklikleri olması gayet doğal.
Eğer bir Senior Programmer yazılıma hakimiyeti olduğu kadar müşteri ve işveren tarafına hakim ise Danışman kimliği ile anılması doğru olacaktır.
Sektörde müşteriyle konuşmayı bilip kod yazmayı bilmeyen onlarca Senior Programmer da mevcut malesef ki.
Gerçekten çok güzel bir yazı olmuş, ellerinize sağlık
Programcının müşteri ile olan iletişimde ne kadar başarılı olduğu.
Programcının başarıyla kaç proje tamamladığı.
kriterlerine sizle aynı fikirdeyim, Maalesef her zaman karşılaştığım bir durum , müşterinin ne istediğini bilmeden sırf para için biz bu işi yaparız deyip sonra eline yüzüne bulaştırıp kaçıp giden çok insan bulunmakta.
Hem müşterinin güvenini sarsmakla kalmayıp , yazılımcılara olan güveninde kaybolmasına neden olmaktadır,
Saygılarımla.
Geri izleme: Pratik Programcı Yayınları » Çok Gezen mi Bilir, Çok Okuyan mı?
Geri izleme: C# başlama hikayem - Hakan Müştak
Güzel yazı olmuş hocam. Java ile bu kadar çok geç tanışmamalıydım.
Çok güzel bir yazı. Teşekkür ederim.
Turkiye sartlarinda developer ayni zamanda sistem analizi , musteri iliskileri, hata yonetimi vs.vs. konularinda da yetkin olmalidir. ancak dogru bu durum dogru degildir. Bu durum zamanla developer bagimliligi getrir ve projeye personelin aile ve cevre sartlarini risklere dahil eder.