Yazılım Mühendisliği
Mühendislik
Tarihte değişik mühendislik dallarının gelişmesinde bazı ortak özellikler görünmektedir. Yeterli bir olgunluğa erişmiş bulunan inşaat, makina ve elektrik gibi mühendislik alanlarının başından geçenler bilgisayar ile ilgili konularda da tekrarlanmaktadır. Bu yüzden bazı ortak mühendislik özelliklerine değinmekte yarar vardır. Bunun yanında, yazılım mühendisliğinin bahsedilen ‘somut’ mühendisliklerden ayrı olan özellikleri de bulunmaktadır.
Mühendisler bilim ve matematiği kullanarak dünya problemlerine çözüm getirirler. Bunu yaparken bir çok parametreyi bir arada düsünmek, ve genelde bu parametrelerin istekleri birbirleri ile çelişeceğinden bir optimizasyon yapmak zorundadırlar. Sözü geçen parametrelerin en önemlileri işlev, maliyet, ve zamandır. Bunun yanında dayanıklılık, bakım kolaylığı, güvenlik, kullanım kolaylığı, satış kolaylığı gibi bir çok konunun da olduğu unutulmamalıdır. Bütün bu konular yazılım mühendisliği için de geçerlidir.
Temel programcılık, orta öğretim sevyesinde edinilmesi gereken bir yetenek haline gelmektedir. Program yazmak ile yazılım mühendisliği yapmak arasında farklar vardır. Programcılık mesleği bir sanat şeklinde ortaya çıkmış ve uzun zaman bu boyutlarda gelişmiştir. Bugün de yazılan programların sanat boyutu vardır. Gelişme sürecinde bilimsel katkı artmış ve mühendislik yaklaşımı da kazanılmıştır. Aslında diğer mühendisliklerin de kuruluş devirlerinde benzer bir tarih gözlenebilir. İnşaat mühendisliğinden bir örnek verilerek Avrupa’da erken çağlarda yapılan harika binaları ele alabiliriz. Meşhur olmuş bir kaç ustanın yaptığı katedraller bugün bile takdir edilen yapıtlardır. Bu ustalar akademik bir mühendislik eğitimi görmüş değillerdi. Aynı şekilde çok kabiliyetli bazı programcıların yeni yöntemler geliştirilmeden önce bayağı karmaşık kodları (programları) yazıp başarı ile çalıştırdıklarına da şahit olmuşuzdur. O zaman mühendislik bilgisi ve eğitimine gerek varmı şeklinde bir soru beyinlerimizi kurcalayabilir. Bu sorunun cevabı şartlıdır; eğer başarının tekrarlanabilir olmasını istiyorsak gerek vardır. Mühendislik öğretisi ile bir ‘metot’ uygulandığında, benzer sonuçları her zaman elde etme güvenliği vardır. Ayrıca büyük usta işten ayrıldığında projenin başkaları tarafından devam ettirilebilmesi, yapı bozulduğunda veya değişiklik gerektiğinde başkaları tarafından tamir ve bakıma elverişli olması gerekir.