Yazılım Ekibi ve Kariyer

  • 19 Mart 2018

Şimdi yazılım ekibinde bulunan arkadaşlarımızın gelişim aşamalarını inceleyeceğiz. Kod yazabilecek hale gelene kadar geçen sıkıntılı süreçler mevcuttur. Diğer sektörlere göre, bizim sektörümüz daha zor ve karmaşıktır. Unutulmamalıdır ki, dünya üzerindeki hemen her işleyişte yazılımların yeri büyüktür. Eğer yazılım olmasaydı, çoğu şeyin yolunda gideceği ve bu kadar hızlı bir döngü içinde gelişeceği düşünülemezdi. Yerimizden kalkmadan alışveriş yapabiliyoruz, atm ye gitmeden hesabımıza para yatırılıyor, bu ödemeleri istediğimiz kurumlara istediğimiz zamanlarda yapabiliyoruz. Yatırımlarımızı yine yerimizden kalkmadan değerlendirebiliyor, takip edebiliyoruz. Ne kadar güzel bir şey değil mi?

Hayatı tam anlamıyla kolaylaştıran, güzelleştiren ve özelleştiren sistemlere, kod bloklarına yazılım denir. Yazılım sektöründe iş değiştirmek yeni çalışma ortamları görmek, farklı IDE (integrated development environment) ler ile çalışmak yazılımcının yararına olacaktır. Fikirleri gelişecek, proje geliştirme aşamalarını daha iyi kavramasını sağlayacaktır. Yeni bir yazılımcının yazılıma ilk başladığı andan, gelebileceği son konuma kadar olan evreleri göreceğiz.

  1. Junior Developer (Acemi Geliştirici)
  2. Senior Developer (Usta Geliştirici)
  3. Software Architecture (Kod Mimarı)

1. Junior Developer (Acemi Geliştirici)

Açılımında “Acemi Yazılımcı” desek bile kesinlikle küçümsenemeyecek bir aşamadır. Zira junior’lar ilerleyen dönemlerde iş yükünü önemli ölçüde azaltabilecek, yazılım geliştirme süreçlerine yeni fikir katabilecek tohumlardır. Eğer yazılım sektöründe yeniyseniz, kendi çapınızda projeler geliştirdiyseniz siz bir bu ekiplerin içine “Junior Programmer” olarak girebilirsiniz. Juniorlar’dan çok fazla performans beklenmez, projenin küçük aşamalarında az olan bilgi ve tecrübeleri ile destek olurlar. Fakat ürettikleri tüm aşamalar muhakkak gözden geçirilmelidir. Eğer bir “Junior Yazılımcı” iseniz, işe girerken sergilediğiniz özgüvenin, sizin işe değilde işin size ihtiyacı olacağı şeklinde bıraktığınız izlenimine firmanın kandığını sanmayın. Ekibin içine girdiğinizde özgüven ile egoyu karıştırmadığınız sürece hızla yükselebilirsiniz. Seniorlarınızı iyi takip edin. Onlardan daha fazla programlama bildiğiniz düşünüyor olabilirsiniz, belki de gerçekten biliyorsunuz. Fakat Seniorlar sizden daha fazla söz sahibidir. Unutmayın ki, onların tecrübelerinden yararlanmak sizleri daha hızlı geliştirecektir.
2. Senior Developer (Usta Geliştirici)

Senior yazılımcılar, junior yazılımcılara göre daha fazla söz sahibidirler. Bir junior yazılımcının bilgisini ve tecrübesini çalışma azmiyle birleştirmesi sonucunda Senior seviyesine yükselmesi çok uzun sürmeyecektir. Bazı durumlarda; piyasa usta yazılımcı olarak tek başına iş birinin junior yazılımcı olarak girdiği şirketlerde tecrübelerinin çok hızlı fark edildiği olmuştur. Fakat unutulmaması gereken bir şey var. Rütbeniz ne kadar yükselirse, sözünüz ne kadar çok geçerse, sorumluluklarınızda o kadar çok artacaktır. Bu işinizin artacağı anlamında anlaşılmasın. Bazen projenin belirli aşamalarında sadece sizin fark edip geliştireceğiniz bir kod olabilir. Birkaç satırlık bir kodu yazdığınız için çok maaş aldığınızı düşünenler olabilir. Fakat o satırlarda oluşacak bir hata sizin kariyerinizi riske edebilir. Architecture’lar kadar olmasa da, junior yazılımcılardan çok daha fazla sorumluluğa sahip olacaksınız. Bu aşamada; Junior seviyesinde iken kendinizi yeterince geliştirdiğinizden emin olmanız gereken. Bu seviyedeyken, belirli bir süre sonra artık kodları yazmaktansa, onları dizayn etme aşamasına geleceksiniz. Bu artık sizin için yeni bir kapı demektir.

3. Software Architecture ( Yazılım Mimarı )

Çoğumuz biliyor olabiliriz fakat ben yine de wikipedia dan “Mimar Nedir?” hakkında bir alıntı yapmak istiyorum.

“Mimar, yapıları estetik ilkeler doğrultusunda dizayn eden bunu yaparken ise kullanıcı isteklerini göz önünde bulunduran ve genellikle yapım sürecini de kontrol eden, denetleyen uzman kişi.”

https://tr.wikipedia.org/wiki/Mimar

“Mimar Nedir?” tanımı kafamızda az çok şekillendiğine göre bu tanımda bahsedilen “yapı” kelimesinin yerine “yazılım” kelimesini eklersek “Yazılım Mimar” ne demek anlamış oluruz.

Yazılım Mimarları, projenin hangi programlama diliyle yazılacağından tutunda, hangi test ortamlarına ihtiyaç duyulacağına, kullanıcıların taleplerine göre ne şekilde bir arayüz gerektiğine, veri tabanı seçimine kadar tüm kararları veren kişidir.

Bu seviyede birisi olmanız için; yeterli tecrübeye sahip olmanız, ekip yönetimini bilmeniz, birden fazla programlama dilini özelliklerinden performanslarına kadar tanımanız, veri tabanları, görsel ara yüz seçenekleri konusunda bilgi sahibi olmanız, kullanıcı tecrübelerini yakın takip edip bunları tecrübe etmeniz gerekmektedir.

Bu seviye, diğer yazılım ekibi seviyelerine göre kritik önem içerir. Sizin yapacağın ufak bir hata aylar süren çalışmayı çöpe atabilir.

Kariyer olarak belki de en yüksek maaşı alan, sözü en çok geçen ekip üyesisiniz, ekip başısınız. Fakat artık tüm ekibi bir junior’dan daha fazla dinlemeniz gerekir. Ekibini tanımayan, yaşayacakları zorlukları öngöremeyen bir mimar hiçbir şekilde başarılı olamaz. Takım çalışmasını en iyi kavraması gereken kişi Yazılım Mimarladır. Seçtiğiniz programlama dilinde en iyi sonucu alacak olabilirsiniz. Seçtiğiniz veritabanı bu konuda en iyisi yada projeye göre en ucuzu olabilir. Peki personelinizin bu seçimlerdeki yeterliliklerinden, problem çözme kabiliyetlerinden ne kadar eminsiniz? Ekip içinde çıkacak ufacık bir çatlak sizin tüm tasarımınıza, ekibin tüm emeğine mâl olur.

Görüldüğü gibi yazılımda tüm kariyer aşamaları size imkânlar getirdiği gibi bir o kadar sorumluluklar getiriyor. Bu aşamalara zaman içinde ulaşacaksınız. Bir sokak dövüşçüsünden ağır sıklet bir sporcuya dönüşmeniz son aşama değildir. Bir seviyeden sonra antrenör olacaksınız. Tüm bunlar azim ve sabır gerekir.

Şimdi gelelim insan gücü dışında bize gerekli olanlara.

Bir yazılımı geliştirmek, veri akışını olumlu takip etmek için bizlere lazım olan önemli şeyler vardır. Dosyalarımız, veri tabanlarımız olacak, sunucular aracılığıyla kullanıcılarımızla iletişim kuracağız. Veri alacağız, göndereceğiz yeri geldiğinde yedekleyeceğiz, entegre edeceğiz. Bu aşamalarda kiralama yada satın alma yollarına gideceğiz. Donanım yada hizmet maliyetleri çıkartacağız. Bakalım bizim iletişim ağımızı sağlayacak materyaller neler.

Yazılımda İletişim Teknolojisi adlı makalemde görüşmek üzere..

Comments are closed.