Software Project Management (Proje Yönetimi Genel Bilgi)

Management

Yönetim, insanların, kaynakların ve zamanın belirli hedeflere ulaşmak için tutarlı ve verimli bir şekilde kullanılmasını sağlayan mekanizmadır. Kaynakların olumlu, sistematik ve başarılı kullanımı hakkında bir bilim olduğu kadar bir sanattır. Yönetim Sanatı, işleri başkaları aracılığıyla yapma eylemidir.

Yönetim Bilimi, sistemin planlanması, düzenlenmesi ve kurum / işletme fonksiyonları ile ilgili faaliyetlerin kontrol edilmesidir.

Proje yönetiminde, gerekli bilgileri elde etmeye hazırlanmadan önce durum analizi yapmak, problemleri çözmek ve önerilen eserlerin amaçlarını tanımlamak için gerekli prosedürleri belirler.

Bir projenin başarılı olması için proje yönetimi çok önemlidir. Bu, çeşitli yönetim alanlarının bir karışımından oluşur.  Bu alanlar;

  1. Entegrasyon Yönetimi (Integration Management), Proje kalemlerinin koordinasyonunu sağlayan süreçler tanımlanır.
  2. Zaman Yönetimi, Projenin zamanında tamamlanmasını sağlayacak süreçler tanımlanır. İşlerin tanımını, zaman tahminlerini, zaman çizelgelerinin geliştirilmesini ve kontrolünü içerir.
  3. Kapsam Yönetimi(Scope Management) Kapsam tanımı, kapsam planlaması, kapsam doğrulaması, kapsam değişikliği kontrol yöntemleri uygular.
  4. Kalite Yönetimi, Projenin ihtiyaçlarını karşılayacak süreçler tanımlanır. Kalite planlama, kalite güvence ve kalite kontrol yöntemleri uygulanmaktadır.
  5. Maliyet Yönetimi, Projenin onay bütçesidir ve projenin tamamlanması için gereken süreçler tanımlanır. Maliyet planlama, maliyet tahmini, bütçe ve maliyet kontrol yöntemleri uygulanmaktadır.
  6. Proje ile ilgili işgücünün daha etkin kullanılması için İnsan Kaynakları Yönetimi süreçleri tanımlanmıştır. Organizasyonel planlama, personel alımı, ekip oluşturma yöntemleri uygulanır.
  7. İletişim Yönetimi, Proje bilgilerinin zamanında ve uygun şekilde üretilmesi, derlenmesi, dağıtılması, depolanması ve düzenlenmesi süreçlerini tanımlar. İletişim planlaması, bilgi dağıtımı, performans raporlama yöntemleri uygulanmaktadır.
  8. Risk yönetimi için risk yönetimi süreçleri, proje risklerinin belirlenmesi, çözümlerin analizi ve uygulanması tanımlanmaktadır. Risk belirleme (identification), risk belirleme (determination), risk planlama ve risk azaltma (mitigation) kontrol yöntemleri uygulanmaktadır.

Proje yöneticisi, bir projeyi yönetmek için atanan kişidir ve projeyi mümkün olan en yüksek verimlilik, en düşük belirsizlik ve riskle yürütmekten sorumludur. Projeyi yürütürken proje ekibini oluşturmak ve projeye rehberlik etmekle sorumludur. Diğer sorumluluklar ise:

  • Takımın niteliklerini belirlemek,
  • Görev ve sorumluluklarını rapor etmek,
  • Ekibin gerekli kaynaklara ulaşmasını ve gerekli eğitimi almasını sağlamak,
  • Ekibin proje ile ilgili görevlerini yerine getirmesini sağlamak,

Contract Management and Technical Project Management

Kurum içi projeler, kurumun ihtiyaçları doğrultusunda kullanıcıların ve geliştiricilerin işbirliğinden kaynaklanan projelerdir. Kurumlar genellikle bu tür projelerde sözleşme programcılarından yararlanırlar. Kurum ve geliştirici yazılım şirketi arasında bir sözleşme imzalanır. Ayrıca, kurumlar hem sözleşmeyi kontrol edebilecek hem de proje için teknik kararlar alabilecek bir kişiyi “proje yöneticisi” olarak belirler. Bu şekilde geliştirilen proje müşteri gereksinimlerini karşılamaya, zamanında ve bütçeye uygun olarak tamamlanmaya çalışılmaktadır. Bir yazılım projesi sadece geçerli yazılım yazmakla ilgili değildir. Ancak, bir yazılım uygulaması önceden paketlenmiş bir program olarak satın alınabilir. Bu yazılımla ilgili satın alınacak faaliyetlerin ve özelliklerin incelenmesi ve gerekli altyapı çalışmalarının yapılması da bir yazılım projesi olarak değerlendirilebilir.

Activities Under Software Project Management

Genel olarak, yeni bir sistem geliştirmenin üç temel adımı vardır:

  1. Fizibilite çalışması,
  2. Planlama,
  3. Proje Yürütme

1- Fizibilite çalışması

-Proje çalışmasına başlanmasına karar verilen bir ön çalışmadır.

-İhtiyaçlar toplanır, yeni sistemin geliştirme ve işletme maliyetleri ile iadeleri belirlenir.

-Gereksinimleri ortaya çıkarmak ilk başta karmaşık ve zor olabilir.

-Çalışma, yazılım geliştirmenin gerekliliklerinin ve önceliklerinin belirlendiği stratejik bir planlama gibidir.

-Büyük sistemlerde fizibilite çalışması ayrı bir proje gibi yürütülmektedir.

2-Planlama

-Fizibilite çalışması projenin uygulanabilir olduğunu gösteriyorsa, planlama çalışmaları başlatılır.

-Büyük bir proje için en başından detaylı planlama yapılmaz, proje bu aşamalara ulaştığında ayrıntılı planlama yapılır. Bunun nedeni, daha doğru ve ayrıntılı bilgilerin yalnızca proje aşamaları için başlangıç aşamasına ulaşıldığında elde edilmesidir.

3-Proje Yürütme

-Planlama aşamasının ardından projenin uygulanmasına başlanır.

-Projenin yürütülmesi, tasarım ve uygulama alt aşamalarını içermektedir.

-Planlama ve tasarım arasındaki fark: Planlama, ürünler için gerçekleştirilecek faaliyetleri içerirken tasarım, kullanıcı arayüzü, iç mimari gibi dış yüzü içerir.

-Ayrıntılı bir tasarım kararları planlama kararlarını etkilediğinden bu iki kavram karıştırılır.

ISO 12207 SOFTWARE DEVELOPMENT CYCLE

  • Gereksinimlerin analizi (Requirement Analysis)
  • Şartname (Specification)
  • Tasarlamak (design)
  • Kodlama
  • Doğrulama ve onaylama (Verification and Validation)
  • Kurulum (Installation)
  • Bakım ve Destek (Maintanence and Support)

Gereksinimlerin analizi:

Gerçekleştirilmesi planlanan projedeki kullanıcı sistemi beklentileri tanımlanır.

Analiz önce bir fizibilite çalışması gerektirebilir.

Yazılımın hizmetleri, sınırlamaları ve hedefleri belirlenir.

Kullanıcı ihtiyaçlarını belirlemek için farklı yaklaşımlar kullanılabilir.

Örneğin, kullanıcıların tüm ihtiyaçlarını karşılamayan, ancak tüm gereksinimlere uyan yüksek maliyetli bir çözüm karşılaştırılabilir.

Şartname(Specification)

Sistemden yapılması beklenenlerin ayrıntılı bir belgesidir. Yazılım projelerinde, projenin amaçları 3 farklı kavramla tanımlanır:

  1. Fonksiyonel Gereklilikler: Projeden elde edilecek nihai ürünün ne yapması gerektiği tanımlanmıştır. Bu tanımlar için çeşitli sistem analizi ve tasarım yöntemleri kullanılmaktadır.
  2. Kalite Gereksinimleri: Sistemin ne yaptığına değil, nasıl çalıştığına ilişkin uygulama özellikleri vardır. Bunlar hala kullanıcılara açık taraflardır. (Sistem yanıt süresi, kullanım kolaylığı vb.)
  3. Kaynak Gereksinimleri: Kuruluşun sisteme ne kadar harcamak istediğini gösterir. Bu, sistemin tamamlanma süresi ile ters orantılıdır.

Tasarım

Bir tasarımın tanımları tamamen karşılayan çizgileri belirlenir. Tasarımın iki aşaması vardır:

  1. Uygulamanın görünümü ile ilgili dış tasarım veya kullanıcı arayüz tasarımı.
  2. Veri ve yazılım modüllerinin dahili olarak yapılandırıldığı fiziksel tasarım.

Doğrulama ve onaylama

Yazılımın mevcut uygulama için geliştirilmiş olsun veya olmasın, sistemin gereksinimleri karşılayıp karşılamadığını görmek için bir test gereklidir.

Her aşamanın sonunda yapılan testlere doğrulama denir. Projenin sonunda, ürünü müşteriye teslim etmeden önce yapılan teste doğrulama denir.

Plans Methods and Methodologies

Bir faaliyet için bir plan yapılacaksa, çalışma yönteminin amacı esas alınmalıdır.

Örneğin; bir yazılımı test etmemiz istendi ve test edilecek yazılım hakkında hiçbir şey bilmiyoruz. Böyle bir durumda, bu test prosedürünü gerçekleştirmek için aşağıdakiler gereklidir;

  • Yazılım gereksinimlerinin analizi,
  • Her gereksinimin karşılanıp karşılanmadığını kontrol etmek için test senaryoları yazma ve düzenleme,
  • Her test senaryosu için beklenen sonuçların ve test kodlarının oluşturulması,
  • Beklenen sonuçların gerçek sonuçlarla karşılaştırılması ve anlaşmazlıkların belirlenmesi.

Yöntem genellikle bir tür faaliyetle ilgilidir, plan ise bu yöntemi alır ve gerçek faaliyetlere dönüştürür. Ayrıca her etkinlik için; başlangıç ve bitiş tarihi, kimin fark edeceği, hangi araç ve malzemelere ihtiyaç duyulacağı. Bir yöntemin çıktısı başka bir yöntem için girilebilir.

Yazıyı burada sonlandırıyorum bir sonraki yazıda görüşmek üzere.

Bir cevap yazın

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