Bu
yazımızda bir yazılımcının eğer bir yazılım firmasına dahil
olarak çalışmıyorsa yapması gereken işlerden biri olan iş
görüşmelerinden bahsedeceğiz. Bu işin püf noktalarını yine
kitaplarda yazmayan hayat tecrübelerinden sizler için derleyemeye
çalışacağım.
Bir
yazılımın hayat döngüsünü oluşturan unsurları tam olarak
anlatan bir kitaba daha henüz rastlamadım. Son on yıl içerisinde
“Yazılım Mühendisliği” başlığıyla sayısı bir elin on
parmağını geçmeyen eser belki vardır. Bunların en popüler
olanını incelediğimizde ise anlaşılması için “uzaylı
Türkçesi” ni iyi bilen kişilerin anlaması için yazılımış
eserler olduğunu görürüz. Yani hiçbir halt anlaşılmaz.
Metodolojilerden bir başlarsınız ve diğer anlamsız ve faydasız
gereksiz bilgi çöplüğünde bu işin kitabını nasıl anlasamda
bu işi nasıl iyi yapsam endişesiyle kıvranır durursunuz. Batı
bu işi çözmüş. Fakat bizde 1930~1940 lı yıllarda yapılan dil
devrimi (arapça kelime ayıklama, öz hakiki türkçeye dönüş
saçmalığı) gibi faysdasız işlerden dolayı maalesef bir işin
kitabını yazmak ve onu okumak işkence halini almakta.
İngilizce,Almanca, Fransızca vs. diller bilenler bu konuda biraz
daha şanslı olmakta. Çünkü bu dilin sahipleri bizimkiler gibi
saçmalıklar yapmamışlar. Neyse bu konuyu uzatmadan diğer
hususlara geçiyorum.
Öncelikle
öğretim görevlisi Gürhan Ustali arkadaşımın anlattığı şu
anıyı sizlerle paylaşmak istiyorum. Bilirsiniz Türkiyedeki
yazılım konusunda en profesyonel kurumlardan biriside Havelsandır.
Bir üniversite öğrencisine hocası ödev vermiş, git bir yazılım
firması yazılımı nasıl geliştirir? Hangi metodolojileri
kullanır? Hangi iş-süreç vs. çalışmasını yapar diye
öğrencisini doldurup salmış piyasaya. Tabi üniversite öğrencisi
bakar bu işi Türkiyede en profesyonel yapan yer Havelsan, hemen bir
randevu alır ve Yazılım Geliştirmenin başındaki sorumlu kişiyle
görüşmeye gider. Öğrencimiz elinde kağıt kalemiyle yetkili
kişiye sorularını sormaya başlar. İlk sorusu ise “Efendim siz
yazılım geliştirirken en çok hangi metodolojiyi kullanıyorsunuz?”
Adamın cevabı ise ilginçtir; “Kardeşim biz program yazıyoruz
ne metodolijisinden bahsediyorsun sen?”. Zavallı öğrencimiz
aldığı cevapla kuyruğunu kıstığı gibi alır oltasını ve bir
an önce dayak yemeden sıvışır :). Tabi bu anlattığımdan
herşeyin saçmalığı sonucuna varmayınız. Elbette bir UML
tasarım konusu önemli bir konudur. Bunların tabiki öğrenilmesi
lâzım. Ancak en önemli olan şey gerçek hayattaki geçerli olan
şeyleri öğrenmek.
İlk
bilinmesi gereken şey Algoritma. Bir akış planını (Flow-chart)
çizebilmek size çok şeyler katacaktır. Ancak bundan daha önemli
olanı ise bu akış planını kafanızın içinde çizebilmektir.
Yani programı hayal edeceksiniz. UML ile ilgili konularda biraz
kitap okuyun ve pratik yapın. Şekiller çizin. Bir kullanıcı
temsil etmek için bir cin Ali çizin. Kullanıcının yazacağınız
yazılımın hangi modüllerine müdahale ettiğini cin aliden çıkan
oklarla çizerek gösterin. Basbayağı bildiğiniz ve anlayacağınız
karalamaları bol bol yapın. Bunlar size pratik kazandırır. Şimdi
gelelim şu iş görüşmeleri meselesine.
İş
görüşmeleri tüm işi tek başına göğüslemesi gereken
yazılımcının yapması gereken en önemli aktivitelerden biridir.
Öncelikle eğer okuldan yeni mezun oldunuz ve bu işi öğrenme
aşamasındaysanız bilmeniz gereken kural fiyat seçimliliği
yapmadan önünüze gelen basit işler olmak kaydıyla her işi
almak. Zaten yeni biriyseniz size bir tanıdığınız vasıtasıyla
iş ayarlanır ve sizde birşeyler yapmaya çalışırsınız. Bir
aceminin kendi acemiliğini gizlemenin en iyi yolu görsel
tasarıma/makyaja ağırlık vermesidir :) Çünkü program ne kadar
süslü görünürse kullanıcının dikkati pek performansla ilgili
olmayacaktır. Tabi bu da kişiden kişiye değişir. İlk ticari
işiniz size çok şeyler öğretir. Ama bundan sonra bir kuruma iş
görüşmesi için çağrıldığınızda artık profesyonel olmanın
zamanı gelmiştir. Öncelikle bir ajanda ve yazan bir kalem almayı
unutmayın. Kılık kıyafetinizi düzgün seçin. Maalesef
müşterinin ilk bakacağı şey sizin kürkünüzdür. Paçoz
vaziyette çıkmayın. İyi bir karşılma selamlaşma faslından
sonra müşterinizi iyi bir şekilde dinleyin. Onun size derdini
anlatmasına fırsat tanıyın. Adeta bir psikiyatrist olun. Uzunca
bir koltuğa sırt üstü yatırsanızda olur :) (bu kısım
şakaydı). O anlatırken siz elinizde kalem ve kağıtla onun
isteklerini bir taraftan listeleyin. Diğer taraftan da cin ali
şekilleri yani UML çizimlerini kendi anlayacağınız şekilde
çizmeye başlayın. Bu esnada siz müşterinin talebi olan programı
kağıt üzerinde planlıyorsunuz aslında. Müşterinin
anlattıklarından anlamadığınız yerleri detaylandırmasını
isteyin. Size yaptırmak istediği yazılımın tüm detayları belli
olduktan sonra işin son ve can alıcı kısmına gelmiş
bulunmaktasınız. Tabi firma sahibi insanların bütün gününü
size hikaye anlatarak heba edeceğini düşünürseniz yanılırsınız.
Bu da duruma göre değişkendir. Baz müşteri sizden hemen bir
cevap ve fiyat ister. Bunları çok çabuk bir şekilde %90 doğruluğu
olan bir tahminle karar vermelisiniz. Yani yapacağınız yazılıma
kaç saat çalışacaksınız?, Bu iş kaç günde bitecek? Ve ne
kadar paraya malolacak? En pis görüşme şeklide budur. Her şey
görüşme sonundaki 5 dk içinde cevaplanması gerekebilir. Bazen
sonraya bıraktığınızda işi alma şansınız kalmayabilir. Aynı
zamanda işbitirici bir olduğunuzu karşınızdaki insana güven
vererek hissettirmeniz gerekir. Burada yapılacak şey tahmini kaç
saatlik bir çalışma yapacağınızı biraz fazla zaman koyarak
hesaplarsınız. Saatlik geliştirme ücretini atıyorum 10 dolar
koyarsınız. (Çalışma Saati X 10 dolar) + Lisans ücretleri =
Yazılım Fiyatı. En basit formul bu olabilir. Tabi bu örnek olması
açısından söylenen bir formul. Geliştireceğiniz yazılımı
Ücretsiz geliştirme araçları (örneğin lazarus, code block,
zeoslib, firebird) ile yaparsanız müşteriyi lisans ücretlerinden
kurtarırsınız. Şansınız varsa işi kaparsınız.
Bazende
özel istek üzerine çağrılarak gidersiniz. Bu aşamaya
geldiyseniz artık şöhret olmuşsunuz ve methinizi tüm alem
öğrenmiş demektir. Bu şartlarda nazlanma hakkı sizde demektir :)
Böyle bir görüşmeye daha rahat bir ruh haliyle gideceğiniz
malumdur. İstediğiniz kadar ön görüşme yapabilir, dilediğiniz
zaman sonra fiyatınızı verebilirsiniz. Ancak şunu unutmayın,
yapamayacağınız şeylerin sözünü asla vermeyin. Örneğin adam
sizden şirketinde kullanacağı masaüstü bir yazılım
geliştirmenizi isterken daha sonrasında cep telefonuyla da bu
yazılıma bağlanıp raporlar almak isteyebilir. Siz tabi yaparız
abi deyip, sonrasında kullandığınız veritabanı sisteminin cep
telefonu ile erişiminin kaf dağına ulaşmaktan zor bir hâl
aldığını öğrenip, abi bu iş olmuyor derseniz tek kelimeyle
“sıçarsınız”. Tutacağınız sözleri vermeye dikkat
etmelisiniz.
Bazı
iş görüşmeleri de vardır ki çok sevdiğiniz bir arkadaşınızın
hatrına kalkar görüşmeye gidersiniz. Fakat karşı tarafta
sizinle görüşmek için bekleyen kötü niyetli bilgi işlem
ekibiyle karşılaşma ihtimalinizde yok değil. Neden böyle peki?
Bazen bilgi işlem servislerinde çalışan elemanlar aslında hiçbir
halttan anlamayan, o makama torpil ve kayırma ile gelmiş kısacası
bulunduğu yeri hak etmeyen bilgisiz çapsız tipler olabilir. Şayet
bu tiplerin aklında işi vermek istediği başka bir
“mefaatleneceği” yazılım firması varsa ve bunu da şirketin
patronu bilmiyorsa o zaman yandınız demektir. Bu bilgi işlemcilerle
yapacağınız iş görüşmesi fbi ya iş görüşmesinden daha
sıkıntılı geçecek demektir. Size olmadık sorular sorarlar,
bilginiz ölçme küstahlığında bulunurlar ve artık çileden
çıkacak hale gelirsiniz. Yapılacak işle ilgili hiçbir şey
konuşulmadığını, tamamem sizin ne bildiğiniz ile ilgili
şeylerin konuşulduğunu görürsünüz. Bu durumu anladığınızda
yapılacak şey ise amerikalıların deyimiyle “f*ck you” deyip o
ortamdan uzaklaşmak olmalıdır. Çünkü böyle bir görüşmeden
size asla iş çıkmayacaktır. Hatta ben yıllar böyle bir
görüşmede o bilgi işlemcilerden “aferin sen bu işi bayağı
biliyorsun” övgüsüne bile mazhar olmuştum :) Ama yine de o işi
bana vermediler :)
Bu
konuda söylenecek çok şey var. Bu hususlarla igili yazdığım
diğer yazılarda yer yer bahsediyorum. O yazılarıda okumanızı da
tavsiye ederim. Sonrasında daha ne ilginç iş görüşmeleri olduki
hepsini bir yazıda anlatmak zor olur. Başka bir yazıda görüşmek
üzere hoşça kalın.
Durali
Kiraz
Yazılım
Geliştirici
duralikiraz.blogspot.com
Hiç yorum yok:
Yorum Gönder