İnternet kullanımının tüm hayatımızı kapsaması ve artık her işimizi gerek bilgisayarlarımız gerek mobil cihazlarımız üzerinden yapmamız sonucunda, yazılım mühendisliği, günümüzün en revaçta mesleklerinden biri haline geldi.
Peki, yazılım mühendisliği nedir?
Yazılımla ilgilenen bir bilim dalı olan yazılım mühendisliğinin orijinal ismi Software Engineering’dir. Bu mesleği icra eden kişiler öncelikle kullanıcı ihtiyaçlarını belirler, ardından bu ihtiyaçlara uyumlu yazılım gereksinimlerini tespit ederler. İhtiyaçlara ve gereksinimlere uyumlu yazılım dilinin belirlenmesinin ardından, bir işlevi yerine getirmek üzere planlanan yazılımın oluşturulması süreci başlar. Ancak yazılım mühendisliği sadece yazılımın oluşturulması aşamasında etkin olan bir bilim dalı değildir. Yazılım mühendisliği, kullanıcı ihtiyaçlarının belirlenmesinden yazılım dilinin seçilmesine, yazılımı oluşturacak ekibin seçilmesinden son kullanıcı testlerinin yapılmasına kadar her aşamada etkindir.
Yazılım mühendisi, bu bilim dalının temsilcidir. Öncellikli amacı, kullanıcı odaklı bir yazılımı meydana getirmektir. Son kullanıcı odaklı olarak yeni yazılımlar oluşturmak ya da hali hazırda var olan yazılımların geliştirilmesini sağlamak yazılım mühendisin görev tanımları arasındadır.
İlk paragrafta da söz ettiğimiz gibi, günümüzde hemen hemen her işimizi bir yazılım yardımıyla gerçekleştiriyoruz. Akıllı telefonlarımızın kendi içlerinde yazılımları var, bir yerden bir yere gitmek için navigasyon yazılımlarını kullanıyoruz, çeşitli uygulamalarla gün içinde attığımız adımları sayıyor ya da bilgisayarımızda virüs olup olmadığını denetlerken anti-virüs yazılımlarından destek alıyoruz. Tüm bunların arka planında, yazılım mühendisliği bulunuyor.
Yazılım Mühendisliği Maaş Aralığı
Yazılım mühendisi, sadece kod yazan kişi değildir. Bir yazılım oluşturulmasının her aşamasında etkin rolü vardır. Maaş aralığı belirlenirken de, pek çok farklı faktör değerlendirilir.
Yazılım mühendisinin hangi kodlama dilini kullandığı, hangi sektörde hizmet verdiği, hangi yazılımları oluşturduğu ve kompleks algoritmalar yaratmadaki becerisi, bu kişinin maaş aralığını belirler. Tecrübe ve sektörde daha önce ortaya koymuş olduğu çalışmalar da mühendisin maaşını belirleyen etkenlerdendir. Yazılım mühendisinin maaş aralığının 3.000 TL ile 20.000 TL arasında değişen bir değerde olacağı söylenebilir.
Bir yazılım mühendisinin iş hayatını oluşturan süreçler:
Planlama: Kullanıcıların ihtiyaçları göz önünde tutularak nasıl bir yazılım algoritması oluşturulması gerektiği planlanır. Donanım gereksinimleri belirlenir.
Çözümleme: Bu aşamada bir veri analizi yapılır. Veri analizi yapılırken analistten destek alınabilir. Öncelikle yazılımın hangi amaçla kullanılacağı, sonra da müşterilerin nasıl beklentileri olduğu değerlendirilir. Kodlama diline karar verilir. Senaryo diyagramları çizilir.
Tasarım: Gereksinimlere karşılık verecek yazılım, her yönüyle tasarlanır. Aynı zamanda yazılımın kullanıcı deneyimini de belirleyecek olan görsel tasarım planlanır. Bu arada grafiker ya da art-direktörden destek alınır. Yazılım mühendisinin yaptığı tasarım mantıksaldır. Yazılımın nasıl çalışacağını belirler.
Gerçekleştirim: Bu aşamada yazılım tamamlanır. Kodlaması yapıldıktan sonra testleri yapılır. Kodlamayı yazılımcılar, testleri ise test uzmanları yapar. Kullanıcı deneyimi testi için temel bilgisayar bilgisi olan bir kitleden destek istenebilir.
Bakım: Bu aşamada hatalar giderilir, kullanıcı taleplerine bağlı olarak güncelleştirmeler yapılır. Yazılımın kullanıldığı süre boyunca bakım aşaması asla bitmez. Her yeni güncellemede yeni testler yapılması gerekir.
Yazılım mühendisi, bu aşamaların her birinde etkin görev alır. İşyerindeki konumuna bağlı olarak projede görev alacak test uzmanını, analisti ya da grafikeri görevlendirmek de yazılım mühendisinin yetkileri arasında olabilir. Mühendis maaşı, yazılımda ne kadar etkin rol aldığına bağlı olarak değişebilir. Özellikle kullanıcı deneyimini göz önünde bulundurmak ve gerekli güncellemeleri yapmak, yazılım mühendisliğinin en önemli görev tanımları arasındadır.