26 Mayıs 2011 Perşembe

Yazılım Mühendisliği Nedir?

Kısaca; ülkemizde Bilgisayar Mühendisi unvanı ile çalışanların birçoğunun yaptığı veya yapması gereken iştir.

Her şeye bir kusur bulmaya çalışanlar bu kısa tanıma da kusur bulacak ve adam yazılım mühendisliğini bilmiyor ki çamuruna yatacaklar ama olsun, ben burada ders anlatmıyorum kimseye. Ben 97 yılından beri içinde bulunduğum bir mesleği anlatmaya çalışacağım sizlere.
Bilgisayar mühendisliği okumaya başlayan öğrencilerin birçoğu bilgisayar mühendisliğini sadece kod yazmak olarak düşünür ve mesleği çok dar bir kalıba sokma cehaletini gösterir. Belki bu yüzdendir ki kodlamanın olmadığı veya içinde kodlama olmayan dersleri pek ciddiye bile almaz. Onun için varsa yoksa iyi program yazmak vardır. Programlamanın belki en sükseli alanlarından biri olan Pointerlar konusunu da kavradıysa, yerli yersiz dinamik bellek ayırmaya başladıysa değmeyin keyfine. Dünya yıkılsa umurunda olmaz, çünkü onun minik dünyasını doldurmaya pointer yeter de artar bile J

Aradan belli bir zaman geçer ve ham bir programcılığın tek başına işine yaramadığını görmeye başlar. Staj yapmaya gittiği yerlerde gerçek dünyayı gören, bilgisayar dünyasının kaç bucak olduğunu göre öğrenci afallar. Ama benim öğretmenlerim böyle dememişti demeye başlar J. Hayat acımasızdır ve gerçeklerle doludur…

Yazılım mühendisliği tam bu noktada imdada koşar. Bir bilgisayar mühendisini bir programcıdan ayırt etmeye yardımcı olacak ipuçları sunar. Gerçek dünyadan bir problemin nasıl ele alınacağını, nasıl modelleneceğini, hangi adımlarda kodlanacağını, problem parçaları arasında nasıl bir bağ kurulacağını ve nasıl dokümantasyon yapılacağını en önemlisi kaliteli bir yazılımın nasıl yapılacağını hep yazılım mühendisliği anlatır bize.

İlk kod yazmaya başlayan kişilerin ortak bir sorunu vardır; acelecilik. Biraz gençlik biraz da bilgisizlik nedeni ile hızlı kod yazan her zaman kendini üstün zanneder. Bu çok önemli bir yanılgıdır. Hızına güvenen tavşanın kaplumbağanın gerisinde kaldığı gibi hızlı yazılımcı da genellikle kurallara uyarak giden yazılımcıdan geride kalır.

Hatta enteresandır, bazen kişiler kendi yazdıkları programları bile bir daha baktıklarında anlamazlar. Bunun bir üst modeli kendi yazdığını anlar ama bir başkası onun yazdığını anlamaz. Bu problemin çözümü belki de basit bir dokümantasyon ile dahi çözülebilecekken işi bilmeyen kişiler gereksiz yere enerjilerini öldürürler.


Değerli dostlarım, yazılım mühendisliği sizi amele olmaktan kurtarıp sizi en iyi ustalardan biri yapabilir. Tercih sizin. Bir yazılım projesinde %10’dan fazlası olmayan kod yazma konusunu işin tamamı zannederek kendinize kötülük etmeyin. Yazılım mühendisliği; sizi programcı değil mühendis yapar. Daha ne duruyorsunuz. Lütfen yazılım mühendisliği kavramları ile geç olmadan tanışın.

Hidayet Takcı