Yazılım

Yazılım Geliştirme Süreçleri

Bu yazıma yazılım dünyasına büyük katkıda bulunan Winston Walker Royce’u (1929 – 1995) anarak başlamak istiyorum. Yazılım geliştirme süreçleri 1970 yıllarında ortaya çıkmış ve yazılımın bir mühendislik etkinliği olarak uygulanmasında rol oynamıştır. Amerikalı bir bilgisayar bilimcisi olan Winston Royce Geliştirme sürecini ilk olarak bir yaşam döngüsü şeklinde ifade eden kişi olmuştur ve önerdiği modele ‘Şelale’ (Waterfall) adını vermiştir. Waterfall metodunda yazılım geliştirme süreci “analiz, tasarım, kodlama, test, sürüm ve bakım” gibi safhalardan oluşur ve aşağıya doğru süreçler devam eder. Daha önce bir metodolojik yaklaşım eksikliği bulunan yazılım mühendisliği için bu ilk deneme tek yol olarak kabul görmüş, ve ilkliğin verdiği kaçınılmaz hataları yüzünden çok eleştirilmiştir. Daha sonra diğer yaşam döngü modelleri ortaya atılmış ve onlar da kabul görmüş, hatta günümüzde proje ve kuruluşa özel, yeni isimlendirme ile ‘Süreç Modelleri’ geliştirmek yaygın bir yöntem olmuştur.

Waterfall Methodologies

Bu modelin çok eleştirildiğini yukarda bahsetmiştim. Şimdi buna başlıca sebep olan problemleri irdeleyelim.

  1. Bir safha bitmeden diğer safhaya geçilememesi müşterinin tüm gereksinimlerini ilk aşamada tanımlamayı gerektirir. Yazılımcıların büyük çoğunluğunun tecrübe ettiği gibi; proje başlangıcında müşteriler, tam olarak ne istediklerinden yüzde yüz emin değildirler. Dolayısıyla tüm gereksinimlerin en başta tanımlanıp daha sonra geri dönülememesi prensibi ürün geliştirme sürecinde oluşabilecek her türlü değişikliği göz ardı etmek demektir.
  2. Müşterinin talebinin anlaşılması ve tüm gereksinimler için detaylı dokümanların oluşturulması, yazılımcının bunları okuyup uygulaması, test aşamasında oluşabilecek herhangi bir hatada her şeyin sil baştan yapılması; projenin hayata geçme süresini uzatacaktır.
  3. Başlangıçta yapılan hataların tespiti çok uzun zaman alabilir. Bu hataların giderilmesi maliyeti yükseltecektir.

Agile Methodologies

Günümüzde ise en yaygın olarak kullanılan proje ve yazılım geliştirme süreci, benim de şu an iş hayatımda kullandığım ‘Çevik’ (Agile) metodudur. Agile dünya üzerinde kabul edilen yöntemler arasında en hızlı ve güvenli proje geliştirme yaklaşımıdır. Şu anda dünyada irili ufaklı birçok şirket tarafından yoğun bir şekilde kullanılmaktadır.

Şimdi de bu modelin yaygın olarak kullanılmasına sebep olan yönlerini sıralayalım.

  1. Bireyler ve etkileşimi, süreç ve araca tercih etmek.
  2. Çalışan bir yazılımı, detaylı belgelendirmeye tercih etmek.
  3. Müşteri ile işbirliğini, sözleşmedeki kesin kurallara tercih etmek.
  4. Değişiklere uyum sağlayabilmeyi, belirli bir plana tercih etmek.

Bu modelde en çok kullanılan frameworke “Scrum” diyebiliriz. Scrum, ilk bakışta çok basit kuralları olan bir yönetimsel modeldir. Scrum Master, Scrum takımlarını yönetir aradaki bağlantıyı sağlar. Kendi iş hayatımdan örnek verirsem, iş günlerinde her sabah belirli bir saatte kısa bir toplantı gerçekleştirilir. Böylelikle proje ekibini ortaya çıkan aksaklıkları çözümleyerek sürekli iyileştirme yapması yönünde motive eder.


Bu yazımda yazılım geliştirme süreçlerinden kısaca bahsetmeye çalıştım. Umarım faydalı olmuştur. İyi çalışmalar 🙂

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir