Yazılım Proje Yönetim Modelleri

Proje yönetimi, bir olayın belirli hedef ve amaçlarına doğrultusunda bitirilmesi için gerekli kaynaklarının planlanmasını, organize edilmesi ve tedarik edilmesi için yürütülen disiplin biçimidir.

Proje yönetimi denince akla inşaat mühendisliği veya endüstri mühendisliği alanları gelse de bu yazımızda yazılım proje yönetimine değineceğiz.

Dünya üzerinde yazılım sektörünün büyümesiyle bu geliştirme süreçlerini belirli akışlara oturmak için bazı metodolojiler ortaya çıkmıştır. Bu yöntemlerin kullanmasındaki temel amaç daha düşük maliyetle daha hızlı ve kaliteli projeler oluşturulması olmuştur.

Proje yönetim şekillerinin belirli standartlara oturması için Amerika merkezli Project Management Institute (PMI) kuruluşu çalışmalara öncülük etmektedir. Kuruluş verdiği Project Management Professional (PMP) sertifikası bu alanda çalışanlara artı katmaktadır.

Proje yönetimi altında Zaman Yönetimi, Maliyet Yönetimi, Kalite Yönetimi, Risk Yönetimi, Kaynak Yönetimi, Değişiklik Yönetimi, İletişim Yönetimi gibi alt konularda mevcut olsa da bu yazımda bu detaylara girmeyeceğiz.

Genel bir akışa değinmemiz gerekirse yazılım projeleri “Açılış -> Analiz -> Tasarım -> Geliştirme -> Test -> Kapanış” adımlarından oluşur. İhtiyaçlar doğrultusunda bu akışta belirli katmanlar eklenebilir veya döngülerle akış değiştirilebilir.

Yazılım geliştirme modellerinde dünyada standartlaşmış yöntemleri inceleyecek olursak aşağıdaki gibi yaklaşımlar karşımıza çıkmaktadır.

Agile Development Model

Waterfall Development Model

Prototype Development Model

Spiral Development Model

Rapid Software Development Model (RAD)

Iterative Development Model

Incremental Development Model

Bu yöntemlerin hepsinin belirli durumlarda artıları, belirli durumlarda eksileri bulunduğu kabul etmek gerekir. Bir yazılım projesinde geliştirmesinde kullanılacak olan yönteme ön analizler yapıldıktan sonra karar verilebilir. Günümüzde en popüler kullanılan yöntemler Agile ve Waterfall Development Model’dir.

Agile Development Model döngülü bir akışı temel alır. Sürekli değişen kapsamlarını yönetmek daha kolaydır. Daha kısa geliştirme adımlarından oluşur. Kısa döngülerle müşterinin önüne ürünü koyma ve geri dönüşlerle geliştirmenin akış belirlenir. Örnek bir akış verecek olursak aşağıdaki şekilde yazılım geliştirme safhalarını görebilirsiniz.

Analiz -> Plan ->

Tasarım -> Geliştirme -> Test” -> “Tasarım -> Geliştirme -> Test” ->  “Tasarım -> Geliştirme -> Test” -> ”…”

-> Kabul

Waterfall Development Model, projenin yol haritasını en baştan belirlemenin ve sabit bir kapsamda ilerlemenin mümkün olduğu projelerde uygulanır. Genel olarak daha basit bir yönetim şeklidir. Örnek bir akışı aşağıda bulabilirsiniz.

Analiz -> Plan -> Tasarım -> Geliştirme -> Test -> Kabul