Başarının sırrı artık çok çalışmak değil. Bizi amaçlarımıza ulaştıracak en doğru yolu seçerek planlı ve sistematik şekilde çalışmaktır.

Yazılım projeleri, kodlama aşamasına gelmeden önce dikkatli bir şekilde planlanmalıdır. Planlanma aşaması olmadan başlanan bir projede birçok sorunlar meydana gelecektir. Bu sorunlar, yazılım projesinin başarısız sonuçlanmasına sebebiyet verebilir.
Yazılım projeleri, gerekli ekipman, uygulamalar, hizmetler ve organizasyon içerisinde operasyon, yönetim, analiz ve karar verme işlevlerini desteklemek için bilgi sağlayan temel teknolojiler geniş bir kapsamda uygulanmaktadır.

Yazılım projelerinin planlanması için dünya genelinde kullanılan metotlar geliştirilmiştir ve her metodun uygulanış şekli farklıdır.

Başarılı proje yönetimi ile püf noktaları öğrenmek için yazının devamına göz atın. 👇

Proje nedir?

Okul ve iş hayatında oldukça sıkça duyduğumuz proje kavramı, başlangıç ve bitiş noktası önceden belirlenmiş, benzersiz bir ürün geliştirmek için yürütülen geçici bir girişim olarak tanımlayabiliriz. Bu aşamada, rutin faaliyetleri gerçekleştirmek için üstlenilen faaliyetler proje olarak kabul edilmez. Proje geliştirirken aşamalar detaylı olarak planlanmalıdır. Projenin aşamaları, proje yaşam döngüsünü oluşturur.

İyileştirilmiş bir iş süreci için yazılım geliştirme, bir bina veya köprünün inşası, bir doğal afet sonrası yardım çabası, satışların yeni bir coğrafi pazara doğru genişlemesi – bunların hepsi projedir.

Proje ve operasyon ise birbiriyle çokça karıştırılan iki farklı kavramdır. Operasyon, başlangıç ve bitiş noktası olmayan daha öncesinde tanımlanmış sürekli çalışmalardır.

Proje yönetimi nedir?

Proje yönetimi, proje gereksinimlerini karşılamak için proje faaliyetlerine bilgi, beceri, araç ve tekniklerin uygulanarak daha az sürede az hata ile kaliteli iş yapma olanağı sağlar.

Her zaman gayri resmi olarak uygulanmıştır, ancak 20. yüzyılın ortalarında ayrı bir meslek olarak ortaya çıkmaya başlamıştır. PMI’nin Proje Yönetimi Bilgi Bedenine Yönelik Kılavuz (PMBOK ® Kılavuzu) yinelenen unsurlarını tanımlar.

Proje yönetimi süreçleri beş gruba ayrılır: başlatma, planlama, yürütme, kontrol ve kapanış.

Her projenin hedefleri, kaynakları ve takvimi farklıdır, proje yönetimi de bu noktada şekillenen benzersiz bir odak noktası sağlamayı hedefler.

Proje yönetimi kullanmanın önemli avantajlarını sıralayacak olursak:

  • Projeler, çalışanların karar alma süreçlerine dahil olmasını sağlar.
  • Sistem mühendisliği yaklaşımı olan risklerle baş etme yöntemini belirler.
  • Şirketin stratejileriyle bağlantılı olarak bazı değişiklikler gerçekleştirmeyi sağlar.

Yazılım süreçlerinde proje yönetimi nedir?

Yazılım projelerini diğer projelerden ayıran en temel özellikler: görünmezlik, karmaşıklık, uygunluk ve esneklikdir.

Görünmezlik (Invisibility): Örneğin; bir inşaat projesi yapıldığı sırada gözlemlenebilir durumdadır, fakat bir yazılım projesi bu derecede görünür değildir. Yazılım proje yönetim süreçleri, görünürlüğü görünmezlik yapan bir süreç olarak ifade edilebilir.
Karmaşıklık (Complexity): Yazılım ürünleri doğası gereği diğer projelere göre daha karmaşıktır.
Uygunluk (Conformity): Yazılım projelerinde amaç, müşteri istekleri ile uygunluk durumudur.
Esneklik (Flexibility): Yazılım ürünlerinde kolayca değişiklik yapılabilmesi projenin esnekliğini sağlar.
Amerika’da Standish Group’u tarafından yapılan bir araştırmaya göre, yazılım projelerinin %33’ü bitmeden iptal edilmekte, %53’ünde maliyet tahminleri % 189 oranında aşılmakta,  proje süre aşımı ise ortalama % 222 oranındadır.
Bu durumun sebebi ise: hedeflerdeki belirsizlikler, kötü planlama, teknolojideki yenilikler ve proje yönetim yöntemi eksikliğinden kaynaklanmaktadır.

Yazılım Geliştirme Yaşam Döngüsü

Yazılım yaşam döngüsü süreçleri, birkaç temel aşamadan oluşur. Bu aşamalar: planlama, analiz, tasarım, gerçekleştirme ve bakım aşamalarıdır.
Sonuç olarak, yazılım projeleri analiz ve planlanmadan başlayarak kullanımı boyunca süren bir döngüdür denilebilir.

Planlama: Yazılım projesinin planlama ve görev dağılımı aşamasıdır.

Analiz: Yazılım proje süreci ve ne tür risklerinin olacağı belirlenir.

Tasarım: Projelerin sürdürülmesinin tasarlanması aşamasıdır.

Gerçekleştirme: Kodlama ve test kısmıdır.

Bakım: Yazılım projesi ürün olarak geliştirildikten sonra güncelleme, bakım işlemlerinin gerçekleştirilmesidir.

Yazılım yaşam döngüsün temel adımları çekirdek süreçler olarak isimlendirilir. Bu süreçlerin gerçekleştirilmesi için, yazılım belirtim yöntemleri ve yazılım süreç modelleri kullanılır.

Yazılım Belirtim Yöntemleri

Bu yöntemler, çekirdek sürece ilişkin fonksiyonları yerine getirmek amacıyla kullanılır.

Süreç Akışı İçin Kullanılan Belirtim Yöntemleri:  Süreçler arası ilişkilerin ve iletişimin gösterildiği yöntemlerdir. Örn: veri akış şeması, yapısal şemalar, nesne-sınıf şemaları.

Süreç Tanımlama Yöntemleri: Süreçlerin iç işleyişini göstermek için kullanılan yöntemlerdir. Örn: düz metin, algoritma, karar tabloları, karar ağaçları, anlatım dili.

Veri Tanımlama Yöntemleri: Süreçler tarafından kullanılan verilerin tanımlanması için kullanılan yöntemlerdir. Örn: nesne ilişkisi modeli, veri taban tabloları, veri sözlüğü.

Yazılım Süreç Modelleri

Yazılım süreç modelleri 9 tanedir: Kodla ve Düzelt Model Yaşam Döngü Modelleri, Çağlayan Yaşam Döngü Modeli, V Süreç Modeli, Evrimsel Geliştirme Süreç Modeli, Prototipleme Yaşam Döngü Model, Spiral Model, Formal Sistem Geliştirme Modeli, Yeniden Kullanıma Yönelik Geliştirme Modeli, Artırımsal Geliştirme Süreç Modeli.

Yazılım süreç modelleri ve yöntemlerini daha detaylı öğrenmek isterseniz sizin için hazırladığımız “En popüler yazılım geliştirme modelleri” blog yazımıza göz atabilirsiniz.

Projelerin Sınıflandırılması

Projeler, farklı teknik ürünleri oluşturmak üzere değişiklik gösterebilir. Bu nedenle, planlanmasına ve yönetilmesine bağlı olarak bir projenin özellikleri mutlaka tanımlanmalı.

Bu tanımlamayı yaparken aşağıdaki faktörleri göz önünde bulundurmak gerekir: kullanıcılara karşı sorumluklar, gömülü sistemlere karşı bilgi sistemleri ve ürüne karşı hedefler.

Projeler her biri birbirinden farklı özelliklere sahip oldukları için hepsini bir sınıf altında toplamak ve tek bir proje yönetimi uygulamak mümkün olmamaktadır. Projeler sınıflandırılırken belirli özellikler dikkate alınarak sınıflandırılmıştır.

Proje Tipleri

Karmaşıklık Derecesine göre; projeler karmaşıklık derecelerine göre yüksek, orta, düşük, çok düşük olarak sınıflandırılır.

Teknoloji Seviyesine göre; projeler pratik bilgi, mevcut teknolojinin en iyisi, ileri teknoloji ve buluş olmak üzere seviyelere ayrılır.

Risk Seviyesine göre; projeler risk seviyelerine göre tehlikeli, yüksek, orta, düşük ve çok düşük olmak üzere seviyelere ayrılır.

Proje Sürelerine göre; projeler 3 aydan daha kısa sürüyorsa kısa, 3 ile 9 ay arasında ise kısa-orta, 9 ile 18 ay arasında ise orta-uzun ve 18 aydan fazla projeler ise uzun projeler olarak adlandırılır.

 

Proje Yönetiminde Bilgi Alanları

Proje yönetimi, proje süreçlerindeki başarı oranını artırmayı hedefler. Projelerdeki başarısızlıkları ortadan kaldırmak ve engellemek için proje başlangıçtan itibaren farklı bilgi alanlarının proje yönetiminde kullanılması gerekmektedir.

Proje Entegrasyon Yönetimi

Proje yönetiminde bulunan tüm faaliyet, bilgi alanlarındaki alt süreçlerin ve parçaların eş zamanlı olarak yönetilmesidir. Proje entegrasyon yönetimi alt süreçlere ayrılmaktadır.

  • Proje Başlatma Belgesi Oluşturulması; projenin resmi olarak başladığı ve projenin faaliyete geçirildiği belgedir.

  • Proje Yönetim Planının Oluşturulması; projedeki çalışmaların nasıl yürütüleceğinin belirlendiği, projenin nasıl bir yol izleyeceğini tanımlayan belgedir.
  • Projenin Yürütülmesinin Yönlendirilmesi ve Yönetilmesi; proje yönetim planında planlanan faaliyetlerin plana odaklanarak yürütülmesi ve proje bitim tarihine kadar teslim edilmesini yönetir.

  • Proje Çalışmalarının İzlenmesi ve Kontrol Edilmesi; projedeki çalışmaların analizi ve değerlendirilmesiyle birlikte bilgi alışverişi yapılarak projenin daha verimli hale getirilmesi amaçlanır.

  • Bütünleşik Değişim Kontrollerinin Gerçekleştirilmesi; proje yönetim sürecinde planlamadaki değişimlerin kontrol edildiği süreçtir.

  • Projenin ve Proje Aşamasının Kapatılması; geniş kapsamlı projelerin planındaki faaliyetlerini kapsayan proje kapanış sürecidir.

Proje Risk Yönetimi

Proje süreçlerinde hedeflenen çıktılarda istenilen kaliteye ulaşılmayı engelleyen belirsizlik durumu proje risk yönetimi konusudur.
Proje risk yönetimi alt süreçlere ayrılmaktadır. Bu süreçler;

Risklerin Belirlenmesi Süreci; projede nelerin ters gidebileceğinin belirlendiği ve ortaya konulduğu kısımdır.

Niteliksel Risk Analizi; belirlenen risklerin aralarında önceliklendiriliyor olmasıdır.

Niceliksel Risk Analizi; belirlenmiş risklerin olasılıkları ve etkileri sayısal ifade ile belirtilir.

Risklere Cevap Stratejilerin Planlanması; projede ortaya çıkabilecek riskleri ortadan kaldırmak ya da etkilerini azaltmak için yapılacak faaliyetler belirlenir.

Risklerin İzlenmesi ve Kontrol Edilmesi; proje risklerinin izlenmesi, yeni riskler saptanması ve analizler yoluyla etkinliklerinin izlediği ve kontrol edildiği bölümdür.

Proje Kapsam Yönetimi

Projenin gerekli işlemlerini içeren ve proje kapsam belgesinin hazırlandığı süreçtir. Proje kapsam yönetimi alt süreçlere ayrılmaktadır. Bu süreçler;

Kapsamın Planlanması; projenin var olan paydaşları ile proje ihtiyaçlarının belirlendiği aşamadır.

Kapsamın Tanımlanması; projedeki ürün, hizmet ve çıktıların detaylarıyla belirlendiği süreçtir.

İş Kırılım Yapısının Oluşturulması; proje belgelerinin güncellenmesi, iş kırılım yapısının sözlüğünde düzenlemeler yapılmaktadır.

Kapsamın Doğrulanması; projenin adımları ilerlerken beklentileri karşılayıp karşılamadığını teknikler ile kontrol etme sürecidir.

Proje Kapsam Kontrolü; proje ve ürün kapsamlarını değerlendirerek kapsam kontrol aşamalarının takibini içerir.

Proje Zaman Yönetimi

Projelerin başarı ölçütlerinden biri de, projenin planlanan süre içinde tamamlanmasıdır. Proje zaman yönetimi alt süreçlere ayrılmaktadır. Bu süreçler;

Faaliyetlerin Tanımlanması; projede işlerin beklenilen ihtiyaçlar ve beraberinde gelen zaman doğrultusunda temel adımlara indirgenerek min. kaynak ve süre içerisinde ortaya çıkan etkinliklerin tanımlanma sürecidir.

Faaliyetlerin Sıralanmasını; proje içinde faaliyetler birbirleriyle ilişkili olduğundan dolayı, bunların doğru olarak sıralanması gereklidir.

Faaliyet Kaynakların Tahmin Edilmesi; proje içinde tanımlanan faaliyetlerin içerisinde gerekli olan araç-gereç miktarları tahmin edilir.

Faaliyet Sürelerin Tahmin Edilmesi; tüm proje sürecini etkileyebilecek olan faaliyetlerin süreleri gerçeğe yakın şekilde belirlenmelidir.

Zaman Çizelgesinin Geliştirilmesi; proje takvimi için faaliyet sürelerinin, kaynak ihtiyaçlarının ve zaman çizelgesi kısıtlamalarının belirlendiği aşamadır.

Zaman Çizelgesinin Kontrolü; proje yönetim planı ve zaman çizelgesi aşamalarının kontrolü sağlanarak projedeki hedeflenen nokta ile karşılaştırması bu aşamada yapılmalıdır.

Proje Maliyet Yönetimi

Proje maliyet yönetimi, proje için yapılacak harcamaların önceden tahmin edilmesini sağlar.
Proje maliyet yönetimi alt süreçlere ayrılmaktadır. Bu süreçler;

Maliyet Tahmini; projeye başlamadan önce projenin gereksinimlerinin tahminidir.

Maliyet Bütçelemesi; maliyet tahmini yapılan faaliyetlerde iş paketlerinin değerlendirilmesi sürecidir.
Maliyet Kontrolü; projenin başlangıcından bitimine kadar maliyet bütçelemesinin güncellendiği aşamadır.

Proje Kalite Yönetimi

Proje kalite yönetimi alt süreçlere ayrılmaktadır. Bu süreçler;

Kalitenin Planlanması; proje hedeflerini belirlemek amacıyla oluşturulan bölümdür.
Kalite Güvence Uygulamasının Yapılması; proje yönetiminde belirlenen kalite yönetim süreçlerinin verimli çalışmasını sağlayan süreçtir.
Kalite Kontrolünün Uygulanması; proje sonunda elde edilen çıktıların kalite standartlarına uyduğunun kontrol edilmesidir.