Yazılım Mühendisliği Adaylarına

Betül Doğru Özmen —  23 Ocak 2015 — Yorum bırakın

Bu mesleği seçerseniz, ne iş yaptığınızı anlatmakta biraz zorlanabilirsiniz. Umarım kendiniz anlamakta zorlanmazsınız. Bilgisayarda yazı yazmaktan, bilgisayar sistemlerini çökertmeye varan geniş bir yelpazede işler yapan esrarengiz biri olduğunuz düşünülür çoğu zaman. Bir de mutlaka format atabilmelisiniz, bakın bu önemli, yoksa, ” Ne biçim mühendissin sen” olursunuz.

Yazılım mühendisliği, diğer mühendislik dalları gibi sınırları, kuralları kesin belirlenmiş bir meslek değil. “Yazılım sanat mıdır, mühendislik midir” tartışması yazılım mühendisliği alanındaki gelişmeler sayesinde “mühendisliktir” yönüne doğru kaydı. Ancak yine de uzun süreli insan emeği gerektiren bir iş olarak yazılım üretme süreci, analitik olduğu kadar sanatsal bir yönünüz olmasını da gerektiriyor. Ürününüz, elle tutulur bir şey değil. Ürününüz, yaptığı işle değer kazanıyor.

Yazılımın hangi alanında çalışacağınız da önemli; tıbbi yazılımlar mı, ticari otomasyonlar mı, elektronik cihazlarla haberleşen yazılımlar mı, savunma sanayii işleri mi…Bu alt alana göre, işin mekaniklik derecesi de değişiyor. Bir el cihazını da programlayabilirsiniz, bir uçak için simülasyon programı da yazabilirsiniz, yazılımları test eden yazılımlar da yapabilirsiniz, yapay us alanında da çalışabilirsiniz, bir sulama birliğinin üye kayıt defterini de hazırlayabilirsiniz. Bu işlerin bazılarında başından sonuna kadar her parça sizin elinizden çıkar, bazılarında ise projenin büyüklüğü oranında size düşen parçayı yazarsınız. Ne kadar stres seviyorsanız o kadar karmaşık bir alt alan seçiniz. Sonuçta, hangi alt alan seçilirse seçilsin, işin kuralları bellidir : Yazılımı yapılacak kurumun/cihazın/sistemin işleyiş kurallarını öğren, iletişim protokollerini kullan ve gereken yazılımı üret.

Üretim. Anahtar sözcük bu aslında. Üretmeyi seviyor musunuz? Çevreden soyutlanarak bir işin başında, en ince detaylara kadar uğraşabiliyor, sonuçta ortaya çıkan ürünü sevebiliyor musunuz?

Çoğunlukla bir ekip içinde çalışacaksınız. Bu nedenle gerçekten de ekip çalışmasını sevmelisiniz. Ekibinizde bilgi paylaşımına önem vermeli, bunun karşınızdakini olduğu kadar sizi de geliştireceğini bilmelisiniz. Yazılımcı bazen narsist, biraz bencil, çokça paylaşımcı, bir miktar yüksek egolu, yerine göre de son derece mütevazı bir kişiliktir. Evrenin sırlarını çözen yazılımı üretmesine az kalmıştır; yeter ki fizikçilerden ve matematikçilerden gereken verileri toplasın. Bunların hepsi olabilir misiniz?

Yazmak kolay. Herkes yazıyor. Fakat yazılımcı sistematik yazabilen, kodlarını anlaşılır yazan, kodları içine yeterince açıklama satırları yerleştiren, gereği kadar dokümantasyonu yapabilen ve seven biri olmalıdır. Bu, o yazılımcının geleceği düşünebildiğini, üretim sonrası bakım ve destek sürecini önemsediğini gösterir. Mühendislik tanımında geçen “optimum” nitelemesini, işin her sürecinde uygulayabilmelidir. Ne kadar açıklama satırı yazacaksınız? Bunun optimumunu en iyi siz bilirsiniz.

Tecrübe. Optimumları yakalamak bir tecrübe işi. İyi yazılımcı zamanla olunur. Sabretmek ve çalışmak gerekir. Genelde de belli bir alt alanda tecrübe sahibi olunur. Hepsinden bileyim demek, hepsini eksik yapmak demektir. Kabul edelim ki, bilgi katlanarak büyüyor ve her şeyi bilmek imkansız. O halde, bence, yapılması gereken, mizacınıza uygun bir alanda yazılım yapmak. Yazılım, hayatın her yönünde; dolayısıyla seçenek çok. Bu alanlardan biri, ilişkili bir kaçı mutlaka size hitap edecektir. Üniversitenin ilk yıllarında, hangi konuların daha çok ilginizi çektiğini anlamaya başlayacaksınız. Sosyal olun. İnsanlarla konuşun. İnsanları dinleyin. Hayatın içine girin ve neyi sevdiğinizi erken keşfedin, o alana yoğunlaşın. Bu size hayatta zaman ve saygınlık kazandıracaktır. En önemlisi ise, işinizi severek yapacağınızdan, “mutlu” olursunuz. Günümüz dünyasında mutlu olabilmek, az şey mi?

Okuyunuz, okuyunuz, okuyunuz. Yazılım dünyasında yapılan tartışmaları yakından izleyiniz.

Müşteri ile konuşmaktan, işleri nasıl yürüttüğü bilgisini kullanıcıdan almaktan çekinmemelisiniz. İyi ilişkiler kurmak, size verilen bilgileri ayıklayabilmek, sorular sorabilmek, kullanıcının aklına bile gelmemiş kolaylıklar düşünmek durumundasınız. İlişkide olacağınız müşteri grubu her kültürden, her eğitim düzeyinden olabilir; buna göre iletişim kurmanız gerekecektir. Gerekli verileri topladıktan sonra artık kendi kabuğunuza çekilebilir, sanatınızı icra edebilirsiniz. Bu sanatınız görücüye çıkacak, kullanıcı beğenmişse işe yarayacaktır. Kullanıcının karşısına sık sık çıkmanızı sağlayacak çevik yazılım metodolojilerine ilgi duyunuz. Çevik süreçler yazılım dünyasında çok şey değiştirdi, mutlaka öğreniniz. On beş-yirmi iş günlük iterasyonlar sonunda, kullanıcıya işine yarayan bir özellikler kümesi teslim ederek, kodlarınızın gereksinimleri karşılamasını garantilemiş olursunuz. Çalışmayan/istenenin dışında çalışan kod kimsenin işine yaramaz. Demek ki işe yarar bir sanat üretiyorsunuz, teslim etmeniz gereken bir tarih var, o halde aklınıza gelen her harika fikri değil, öncelikle kullanıcının isteklerini karşılayacak olanları uygulamalısınız.

Bu dengeyi kavramışsanız, size bu piyasada “iyi yazılımcı” derler.

O zaman, hadi bakalım kolay gelsin.

 

*Bu yazıyı ilk olarak şurada yayınladım :

https://biryazilimciolarakyasamak.wordpress.com/2012/07/27/yazilim-muhendisligi-adaylarina/

Betül Doğru Özmen

Posts

No Comments

Be the first to start the conversation.

Yorum yapmak için