Bir Şirketin Yazılımcıya Bakışı Nasıl Olmalı?
Kurumsal şirketler yazılımcı alırken nasıl bir yol izlemeli? Yazılımcılardan doğru bir şekilde nasıl yararlanılmalı? Onlara ne tür imkanlar sunulmalı?
Muhakkak ki, hem şirketler bir yazılımcı istihdam etmek istediklerinde, hem de yazılımcılar bir yerde çalışmak üzere başvuru yaptıklarında nelerle karşılaşacaklarını pek kestiremiyorlar. Türkiye’de bu konuda yerleşmiş kurallara sahip pek çok şirket olmasına karşın, hiçbir fikre sahip olmayan, yazılımcılarla ve sorunlarla boğuşan pek çok şirket de mevcut.
Bu yazıyı bir şirketin yazılımcı istihdamında göz önünde bulundurması gereken kuralları beyan eden maddeler zinciri olarak görebilirsiniz. Bu maddeler, pek çok kişiyle istişare edilerek ve pek çok yazılımcıya danışarak oluşturuldu. Tek taraflı değil, hem yazılımcılar, hem de yazılımcılarla çalışması gereken şirketler açısından önemli ipuçları ve değerlendirmeler içermektedir.
1. Doğru kişiler seçilmelidir. Yazılımcılar belli bir süreyi içeren yazılım geliştirme tecrübesine sahip olmalıdır. Daha önce yaptıkları ya da aktif olarak yer aldıkları projeleri olmalıdır. Bu şahsi veya kurumsal olabilir. Yazılım mühendisi, bilgisayar mühendisi unvanlarından ziyade ürettikleri veya üretebilecekleri projelere odaklanılmalıdır. Şu soruları olumlu cevaplanması beklenmelidir:
a. Kurum genelinde kullanılan yazılım dilleriyle ve platformlarıyla çalışabilir mi? (PHP, ASP.net, MVC, Laravel, Phalcon vs.)
b. Yazılım mantığı güçlü mü? (Bunun için özel hazırlanmış mantık sorularını çözmesi istenebilir)
c. Veri tabanı hâkimiyeti ne düzeydedir? Crud seviyesinde midir?
d. Tasarım ve arayüz geliştirme ekibi ile birlikte çalışabilir mi?
e. Sadece verilen işi mi yapıyor, yoksa insiyatif kullanarak, araştırarak verilen göreve üst düzey katkılar sağlayabiliyor, yeni çözümler önerebiliyor mu?
2. Yazılımcılar belli bir deneme süresi kapsamında teste tabi tutulmalıdır. Problem çözümü, iş bitirme ve çözüm üretme kapasiteleri bu süre dâhilinde değerlendirilmelidir. Performans değerlendirme testleri yapılabilir.
3. Maaş standartlarının piyasa şartlarında tayin edilmesi şarttır. Tecrübeli ve kaliteli bir yazılımcı nadir bulunduğu için elde tutmak için piyasa şartlarına uygun bir ücretlendirme yapmak gerekiyor. Aksi halde başka şirketlere transferler yaşanabilir. Aynı şekilde, maaşının yetersiz olduğunu düşünen bir yazılımcıdan alınan verim düşer.
4. Doğru donanımlı bilgisayarlar ve ekipmanlar sağlanmalıdır. Gerekiyorsa büyük ekranlı monitörler, duruma göre Windows, Mac veya Linux işletim sistemi temin edilebilir. Ayrıca internet erişiminde araştırmasını engelleyebilecek bir kısıtlama söz konusu olmamalıdır.
5. Proje yöneticisi olmalıdır. Yazılımcıların iş akışını ve çalışma imkânlarını kendi içinde sağlayıp görevlerini belirleyecek bir proje yöneticisi önemlidir.
6. Yazılımcıların bir ekip olarak çalışması gerekmektedir. Yazılımcılar tek başlarına çalıştıkları zaman problem çözme konusunda yetersiz kaldıklarını düşünebiliyorlar. Bu da işlerin verimini önemli ölçüde düşürüyor. Bu nedenle en az üç kişilik bir ekiple ekip olarak çalışmaları çok önemli.
7. Yapılan bütün projeler versiyon kontrol sistemi (repository) tabanlı çalışılmalıdır. Github, Bitbucket gibi sistemler kullanılarak bütün güncelleme ve geliştirmeler kayıt altına alınmalıdır.
8. Esnek çalışma saatleri olmalıdır. Yazılım işi konusunda görev veya proje bazlı çalışmak daha sağlıklı olabilir. Örneğin, yazılımcıya verilen görevin belli bir süresi olabilir, bu süre zarfında işini iş saatleri noktasında esnek çalışarak halledebilir. Yabancı ülkelerde ve profesyonel şirketlerde yazılımcılardan verim almayı artırmak için haftalık çalışma saatleri ortalama 40 saat civarında tutulmaktadır.
9. Yazılımcı, proje esnasında projeyi ilgilendiren herkes ile muhatap olmamalıdır. Projenin herhangi bir yerinde problemle karşılaşan herhangi bir birimdeki kişinin gelip yazılımcıya sorun iletmemesi gerekiyor. Proje yöneticisi sorunları toplar, belirli bir sıraya koyar ve bu çerçevede yazılımcılara görev dağılımı yaparak iş akışı oluşturur. Şirket içi bir ticket sistemi oluşturularak, bug’lar, eksikler, hatalar, feedback’ler bu çerçevede online olarak kaydedilir ve proje yöneticisi bunları takip eder.
10. Yazılımcılardan görsel çalışma talep edilmez. Yazılımcılar sitelerde ikonundan butonuna kadar görsel hiçbir şeyden sorumlu olmazlar. Bu konuları takip eden ve sorumluluğu üstlenen projenin çokluğuna göre bir veya daha fazla arayüz geliştirme uzmanı olması gerekir. Bunlar görsel kısımları çözerek kodların son halini paylaşırlar ve yazılımcının da projede ilerlemesi daha hızlı olur.
11. Yazılımcılardan bilgi işlem kapsamında yer alan donanım ve network gibi konularda işler yapması talep edilmemelidir. Yazılımcılar donanım ve network’ten anlayabilir, ancak istihdam nedeni bu değildir. Bilgisayar tamiri ve kurulumu, network problemleri, server sorunları gibi konularda yardım istenmemesi gerekir.
12. Yazılımcılara etkinliklere ve ‘workshop’lara katılma ve kendilerini geliştirme imkânı tanınmalıdır. Yazılımcılar ve bu birimdeki kişiler, bilişimle alakalı etkinliklere katılarak meslektaşları ile görüşebilmeli, kendilerini hem sosyal, hem de bilgi anlamında geliştirebilmelidir. Gerekirse, kurumu temsil edecek şekilde yazılımcıya konuşmacı olarak etkinliklere katılma imkânı sağlanmalıdır.
13. Yazılımcıların birbirleriyle bilgi paylaşımı anlamında teşvik edilmesi sağlanmalıdır. Yazılımcılar kendi başlarına olduğu kadardan daha fazla birbirlerini destekleyerek geliştirmelidirler. Kurum içi iletişimin güçlü olmasını sağladığı gibi, kuruma da olumlu anlamda katkı sunacaktır. Hatta büyük şirketlerde yazılımcıların bu anlamdaki işbirliği zorunlu tutulmaktadır.
14. Yazılımcıların yeni teknoloji, trend ve gelişmeleri yakından takip etmesi sağlanmalıdır. Yazılımcı kendi alanındaki her türlü yeniliği büyük bir ilgiyle takip etmeli ve onu çalışmalarına uygulamak için ne gerekiyorsa sağlanmalıdır.
15. Her hafta başı planlama toplantıları yapılmalıdır. Yazılım birimi ekibi ile her hafta başı yapılacak iş ve görevlerin dağılımı ile ilgili toplantı yapılmalıdır. Bu toplantılarda önceki haftanın iş analizi, kişisel bazlı görev tamamlama takipleri ele alınmalı, çalışanların işlerini tamamlamaları için gerekli bilgilendirmeler yapılmalıdır. Toplantılarda notlar tutulmalı, bu notlar sonraki toplantıda tek tek ele alınarak görev sahiplerine işlerin neticesi sorulmalıdır. Bu notlar aynı zamanda Asana gibi bir proje yönetim uygulaması ile desteklenebilir.
16. Yazılımcıların diğer birimlerle kaynaşması sağlanmalıdır. Yazılımcıların, hazırladıkları yazılım için diğer birimlerin çalışma mantığını ve sistemini anlaması önemlidir. Bu nedenle diğer birimlerle belli zamanlar dâhilinde eğlencevari (iş maksatlı olmayan, gayriresmi) toplantılar yapılarak bu birimlerin işleri hakkında konuşmaları, yaptıkları işleri anlatmaları sağlanmalıdır. Böylelikle yazılımcı diğer birimlerin çalışma kapasitesi ve şekline göre daha iyi bir mantık silsilesi üretecektir.
17. Doğru görevlendirmeler yapılmalıdır. Proje yöneticisi olan kişi, yazılımcıya doğru görev dağılımı yapmalıdır. Veritabanı uzmanı bir kişiye kod yazdırılmamalı, veritabanı uzmanı olmayan bir kişiden ise veritabanı konusunda üst düzey performans beklenmemelidir.