Elektronik

4. Yazılım Projesi Kavramı

BİLGİ SİSTEMLERİ PROJE YÖNETİMİ
4. Yazılım Projesi Kavramı

4. Yazılım Projesi Kavramı

Özlü Söz

Kötü yönetim yazılım maliyetini diğer tüm faktörlerden daha hızlı arttırır.

 

 

Kazanımlar

1. Proje yönetimi ile yazılım proje yönetimi arasındaki farkları öğrenebilir.

2. Yazılım proje geliştirme aşamalarını kavrayabilir.

3. Yazılım geliştirme ilkelerini öğrenebilir.

4. Yazılım geliştirme modelleri konusunda bilgi sahibi olabilir.

5. Yazılım projesinin önemli unsurlarını öğrenebilir.

 

Birlikte Düşünelim

1. Yazılım projelerinin diğer projelere göre avantajları/dezavantajları nelerdir?

2. Yazılım projelerinin yönetilmesini zorlaştıran unsurlar nelerdir?

3. Bir yazılım yöneticisinde teknik/idarî hangi özellikler bulunması gereklidir?

4. Yazılım proje yönetiminde yazılımın hangi stratejiler ile geliştirildiğinin ne gibi bir önemi vardır?

5. Yazılım projesi geliştirilirken takip edilmesi gereken ilkeler nelerdir?

 

 

Başlamadan Önce

Önceki bölümlerde proje kavramının günümüzde her konuda ve alanda kullanılan bir kavram olduğundan bahsedilmiştir. Belirtmek gerekir ki günümüzde projelerin en çok kullanıldığı ve en çok önemsemdiği alanlardan birisi yazılım ve bilişim sektörüdür. Günümüzde teknolojik gelişmelerle birlikte müşterilerin ihtiyaçları değişmekte, bu değişimlere ayak uyduramayan işletmeler zamanla rakipleri ile rekabet edemez duruma gelmektedir dolayısıyla yazılım geliştirme ve yazılım proje yönetimi kavramlarının önemi her geçen gün artrmaktadır. Bu bölümde yazılım projesi kavramı açıklanacak, yazılım projelerinin özellikleri, diğer projelerden farkları, yazılım proje geliştirme aşamaları ve yazılım geliştirme ilkeleri açıklanmaya çalışılacaktır ayrıca uluslararası proje yönetim standartlarından bahsedilecek ve yazılım pojelerinin günümüzdeki önemi açıklanmaya çalışılacaktır.

 

 

4. 1. Yazılım Projesi Kavramı

Yazılım projesi temelde bir proje olmakla ve projelerin klasik özelliklerini taşımakla beraber bazı özellikleri ile diğer projelerden farklılık göstermektedir. Bu özellikler aşağıdaki gibi ifade edilebilir:

Yazılım projelerinde ortaya çıkan ürünün fiziksel bir varlığı ve görünürlüğü mevcut değildir: Bina, köprü gibi bir inşaat projesi yapıldığı sırada görünürdür ancak bir yazılım projesi görünür değildir. Bu da bir yazılım projesinin durumunun, izlenmesinin, ilerlemesinin, maliyet ve zaman gibi kriterlerin ölçülememesi anlamlarına gelmektedir.

Yazılım geliştirme süreci standart değildir: Birçok diğer projede işlerin nasıl yapılacağı hangi boyutta malzemelerin kullanılacağı vb. hususlar çeşitli standartlar, yönetmelikler, yönergeler ile belirlenmiştir ancak bir yazılımın nasıl geliştirilmesi gerektiği ile ilgili herhangi bir standart bulunmamaktadır. Yazılım proje geliştiricileri arasında belli büyüklüğün altındaki yazılımların prosedürel programlama ile üzerindeki yazılımların nesneye yönelik programlama ile geliştirilmesi; prosedürel programlama kullanıldığında C, Fortran vb nesneye yönelik programlama kullanıldığında C++, Java vb. programlama dillerinin kullanılması, yine belli büyüklüğün altındaki şelale gibi doğrusal modellerle, üzerindeki yazılımların çevik modellerle geliştirilmesi değişken adlarının küçük harfle, sınıf adlarının büyük harfle başlaması gibi bazı alışkanlıklar bulunsa da bunlar ancak öneri seviyesinde kalmaktadır ve yazılım süreçleri kurumdan kuruma, zamandan zamana, kişiden kişiye farklılık göstermektedir.

Hızlı teknolojik değişiklikler proje yöneticisinin deneyimini geçersiz kılar: Yazılım projesi dışındaki proje türlerinde proje yöneticisinin konu ile ilgili ne kadar tecrübeli olduğu projenin başarısını doğrudan etkileyen bir husustur ancak yazılım projelerinde çok hızlı teknolojik gelişmeler yaşandığı için bir proje yöneticisinin projede kullanılan tüm teknolojiler hakkında tecrübe sahibi olması mümkün değildir diğer bir deyişle bir proje yöneticisi bir teknoloji hakkında bilgi ve tecrübe sahibi olana kadar genellikle o teknoloji eskimektedir.

Yazılım projeleri karmaşıktır: Yazılım ürünlerinin belirli standartları bulunmadığı için diğer projelere göre daha karmaşık bir yapıya sahiptir. Örneğin diğer projelerde kimin hangi cihazı kullanabileceği belli iken yazılım projelerinde iş bölümü bile tam olarak belirlenemeyebilir.

Yazılım projelerinin kuralları müşterilere bağlıdır: Yazılım projeleri dışındaki projelerde yapılacak işlemler belirli kurallara bağlı iken yazılım projeleri müşterini ihtiyaç ve isteklerine fazlasıyla bağımlıdır ve büyük oranda müşteri isteklerine göre geliştirilir.

Diğer projelere göre daha esnektir: Yazılım ürünlerinde kolayca değişiklik yapılabilmesi esneklik sağlar. Yanlış yapılan bir bina kısmını değiştirmek mümkün değilken yazılımlarda sürekli olarak değişiklik yapılabilir.

4. 2. Yazılım Projesi Geliştirme Aşamaları

Yazılım projelerinin geliştirilme aşamaları temelde:

• Başlangıç ve Genel Planlama

• İhtiyaç Analizi

• Tasarım

• Gerçekleştirme

• Test

• Devreye Alma

şeklinde ifade edilebilir. Görsel 4.1’de bir yazılım projesi geliştirme aşamaları görülmektedir.

Görsel 4. 1. Yazılım Projesi Geliştirme Aşamaları

Planlama: Yazılım projesi yazılımla giderilecek bir ihtiyacın ortaya çıkmasıyla başlar. Ardından kapsam belirlenir ve planlama yapılır. Buna göre faaliyet anlamındaki ilk aşama planlama aşamasıdır. Yeni bir projenin başladığını fark etmek, gerekli kaynakları ayırmak açısından çok önemlidir. Planlama ise genel olarak proje hedeflerine ulaşmak için belirlenmiş süre ve malî kısıtlarını dikkate alarak izlenecek yöntem, yapılacaklar, kullanılacak kaynaklar ve süre takvimlerinin belirlenmesidir. Yazılım, temel bir ihtiyaç etrafında şekillenir. Temel ihtiyacın ortaya çıkmasını takiben kapsam belirleme ve planlama süreci başlar. İstekler ve ürün özellikleri ayrıntılara bölünerek yapılacak görevler ortaya çıkar. İhtiyaç duyulan kaynakları belirleme, tedarik etme ve görevlendirme işlemleri bunu takip eder ayrıca projenin hedef kitlesi olan kullanıcılar da belirlenmelidir. Müşteri veya üst yönetimin istediği süre içinde projeyi tamamlamak esastır.

Analiz: Paydaş ihtiyaç ve beklentilerinin ayrıntılı şekilde tanımlanmasıdır. İhtiyaç veya beklenti, müşteri tarafından sistemin gerçekleştirmesi istenen temel görev veya fonksiyonlardır. Bu ihtiyaç aşağıdaki özellikleri taşımalıdır:

• Gerçekleştirebilme: Bir ihtiyaç; mevcut insan, malzeme ve mali vb. kaynaklarla yapılabilir olmalıdır.

• Doğrulanabilme: Bir ihtiyaç tarafsız ve ölçülebilir kriterlerle yapılabilir olmalıdır.

• Mananın tam anlaşılması: Bir ihtiyaç açıklanırken belirsiz ve birden fazla manaya gelebilecek ifadelerden kaçınılmalıdır.

• Tutarlılık: Bir ihtiyaç diğer ihtiyaçlarla tezat teşkil etmemelidir.

• Çözümleri değil istekleri ifade etme: Bir ihtiyaç herhangi bir sorunun çözümünün yanında müşteri, kullanıcı ya da proje ekibi tarafından istenen isteklere de hedeflenmelidir.

• Seviyesi veya yeri doğru olmalı: Bir ihtiyaç sistem hiyerarşisinde doğru yerde tanımlanmalıdır.

Tasarım: Tasarım, yapılan analizin yazılım geliştirme araçlarının imkân, kural ve sınırları dahilinde geliştirilecek yazılımın üst seviye modeline dönüştürülmesi işlemidir. Tasarım için ilişkisel veri modeli, nesne modeli, UML şeması, iş akış şeması gibi birçok farklı yöntem kullanılır. İhtiyaç analizinde yön ihtiyacı anlamaya, tasarımda ise çözüme dönüktür. Analiz esnasında yazılım geliştirme araçlarının kapasite, kural ve bir anlamda sınırları düşünülmemelidir. Proje yöneticisi, analiz bitmeden tasarıma geçilmesini veya iki aşamanın kontrolsüzce birleştirilmesini önlemelidir. Analiz ve tasarım için ayrı kişiler görevlendirmek, muhtemel sorunları oluşmadan engeller.

Gerçekleştirme: Gerçekleştirme aşamasında müşteri talepleri için tasarlanan model, yazılım geliştirme araçları vasıtasıyla yazılım ürününe dönüştürülür. Bu aşamada;

• Veri tabanı dosyaları

• Kodlar

• Bileşenler

• Kod kütüphaneleri

• Kullanıcı arayüzleri

• Raporlar

gibi unsurlar oluşturulur.

Gerçekleştirme aşamasında da belli ölçüde tasarım yapılır. Prototip veya sunum sürümü temel fonksiyon ve arayüzlerin sistemi açıklama amacıyla kısmen geliştirilmesi ve proje paydaşlarına gösterilmesi gerekmektedir. Prototip geliştirirken görsel sunuma yönelik çizim ve metin yazılımı kullanmak yerine hızlı uygulama geliştirme aracı da kullanılabilir.

Birçok kullanıcı, istemiş olduğu sistemin bilgisayarda nasıl geliştirileceğini ancak görerek anlayabilir ve isteğinin karşılandığına prototip sayesinde karar verir. Kullanıcı ihtiyacının anlaşılması, iletişim ve ortak mutabakat sağlama görünen arayüzler sayesinde kolaylaşır ve hızlanır. Projenin tüm kodlaması tamamlanmadığından değişiklik ve geri dönüşler bitmiş halden çok daha kolay olacaktır.

Test: Yapılanların kontrol edilmesidir. Bu kontrol esnasında işlemlerde yapılanlar ve yapılması gerekenler (hedef) arasındaki uyumluluk incelenir. Bu sırada aşağıdaki sorulara cevap verilmeye çalışılmaktadır:

• Müşteriler tarafından belirtilen istek ve ihtiyaçlar doğru anlaşılmış mı?

• Geliştirilen ve/veya tasarlanan ürünler doğru ve olması gerektiği gibi çalışıyor mu?

• Mevcut durumda herhangi bir sorun var mı?

• Mevcut durumun performansı (hız, verimlilik, güvenlik, kullanışlılık) ne durumda?

Bu işlem sırasında yapılanların istekleri karşılayıp karşılamadığının onaylanması ve düşünülenin yapılıp yapılmadığının doğrulanması gerekir. Doğrulama, genellikle yazılım ekibinin kendi içinde yaptığı testlerle gerçekleştirilir. Bunlar arasında metot veya nesne seviyesinde yapılan birim testi, bileşenler arası entegrasyon testi, bütünleşik sistem testi, performans ve yük testi sayılabilir. Bu testler neticesine göre yazılımın tasarım ve kodunda değişiklikler yapılabilir. Onaylama, kullanıcı ile müşterinin dahil olduğu sunum ve testlerle belirlenir. Bu aşamada kişisel bakış açıları geçerlidir. Kişisel memnuniyeti sağlamak gerekir ki bu oldukça zordur. Bu test neticesinde ihtiyaç analizi değişebilir. Yapılan çalışmanın, yapan kişi dışında ekibin diğer üyeleri veya ekip harici kişiler tarafından kontrolüne gözden geçirme denir. Testten farklı olarak yapılanın çalışmasından ziyade kalitesine odaklanılır.

Gözden geçirme;

• Denetim

• Kod teftişi

• Genel gözden geçirme

• Müşteri veya üst yönetim gözden geçirmesi

gibi yöntemlerle yapılır. Gözden geçirme hatayı çözmekten çok oluşmasını önlemeye odaklanır.

Devreye Alma: Test aşaması tamamlandıktan sonra kullanıcı eğitimi, pilot kurulum ve nihaî proje kurulumu yapılarak proje devreye alınır. Devreye aldıktan sonra proje destek çalışmaları başlar. Artan kullanıcı ve veri sayısı performans sorunu oluşturabilir. Devreye alım anında tüm proje ekibi sistemi dikkatle izlemelidir. İlerleyen zamanlarda da sistem sürekli izlenir ve destek anlaşmasına göre varsa yeni istekler gerçekleştirilir.

4. 3. Yazılım Projesi Geliştirme İlkeleri

Yazılımın kalitesi belli temel ilkelere dayanır. Geliştirme için hangi yöntem kullanılırsa kullanılsın bu ilkelere dikkat edilmelidir. Bu ilkeler hem ortaya çıkacak ürünle hem de ürünün geliştirildiği süreçle ilgilidir. Proje yöneticileri geliştirilen projelerde bu hususlara dikkat edilmesini sağlamakla vazifelidir. Basitlik yazılımda gereksiz karmaşıklıktan kaçınmak olarak tanımlanabilir. Yazılımın basit ve kolay anlaşılır olması planlama açısından da önemlidir. Maddeler halinde ifade etmek gerekirse:

• Gereksiz zorluklar için para ve zaman gibi kaynaklar israf edilmez.

• Planlama da kolaylaşır çünkü plan yapılacakların bir yansımasıdır.

• Kişiler tasarımı daha kolay anlayabilir.

• Kişilere atanan görevler basitleşir ve daha kolay gerçekleştirilebilir.

Bir yazılım geliştirirken en çok aranan özellikler aşağıda özetlenmiştir.

Tekrar Kullanılabilirlik: Yazılımı oluşturan kod, nesne ve bileşenlerinin tekrar kullanılabilir şekilde tasarlanması, orta-uzun vadede zaman ve maliyet kazancı sağlar. Nesneye yönelik tasarım, web servis, servis ve bileşen tabanlı mimari gibi mimariler tekrar kullanılabilirliği artıracak şekilde gelişmektedir. Denge ihtiyacı tekrar kullanım için de söz konusudur.

Aşırıya kaçmamak gerekir. Sadece kod ve nesneler değil, yöntem ve planlar da tekrar kullanılabilir ancak her yazılım projesinin kendine özgü şartları vardır dolayısıyla bir plan hiç değiştirilmeden başka bir projede tekrar kullanılamaz.

Süreklilik: Yazılım ürünü sistemin çökmesine yol açabilecek hatalardan arındırılmış olmalıdır ayrıca artan kullanım ve kullanıcı sayısı karşısında performanslı çalışabilmelidir. Sürekliliğinde problem olan bir yazılım, yazılım ekibi için önemli bir bakım ve destek yüküdür.

İzlenebilme: Geliştirme süreci ve bu süreçte olgunlaşan yazılım teknik ekip, yönetici ve müşteri tarafından performans ölçümleriyle izlenebilecek parçalara bölünmelidir. Görev tanımı basit ve anlaşılır, görev,çıktı ve bitiş kriterleri net olmalıdır. Müşterinin süreci izleyebilmesi çok önemlidir çünkü yazılım geliştirme sadece bilim adamlarının anlayabileceği özel bir alan değil müşteriye hitap eden bir mühendisliktir. Yazılım ürününü izlenebilecek bir yapıda tasarlamak, proje planında kabul kriter ve kontrol noktaları oluşturulmasına katkı sağlar. Gelinen noktada ürünün ne kadarının geliştirildiğini bilmek, geleceğe yönelik süre ve maliyet tahminini de kolaylaştırır.

Güvenlik: Yazılımın önemi ve yazılıma emanet edilen bilgi miktarındaki artış güvenliğin önemini de arttırmaktadır. Güvenlik iki aşamalı ele alınabilir:

• Geliştirme sürecinin güvenliği: Kod ve üretilen diğer belgeler, sadece yetkili kişilerin erişebileceği güvenli bir ortamda saklanmalıdır.

• Geliştirilen yazılımın çalışma anındaki güvenliği: Yazılım, müşteri verilerine yetkisiz erişimlere izin vermeyecek ve özellikle internet üzerinden gelecek saldırılarla çökmeyecek şekilde modellenmelidir.

4. 4. Uluslararası Proje Yönetimi Standartları

PMI Proje Yönetimi Enstitüsü

Proje yönetimi ile ilgili en etkili ve yetkili kuruluşlardan biri PMI’dir. (Project Management Institute – Proje Yönetimi Enstitüsü) PMI’nin proje yönetimi konusunda getirdiği yaklaşımlar ve yöntemler Avrupa’da ortaya çıkan IPMA (International Project Management Association – Uluslararası Proje Yönetim Derneği) ve İngiliz Hükümeti tarafından da kullanılan PRINCE2 gibi yaklaşım ve yöntemlere göre daha fazla tercih edilmektedir. PMI’nin farklı sektör ve firmalarda deneyimleri olan kurucuları projelerin yönetilmesinin bilimsel bir yoldan geçmesi gerektiği konusunda hemfikirdi. Proje yönetimi konusunda ileri derecede uzmanlaşmayı geliştirip yayarak organizasyonel başarıların artmasını amaçlayan PMI yayınları ve eğitimleri ile proje yönetim disiplininin daha da yaygınlaşmasını sağlamakla birlikte PMI tarafından verilen sertifikalar tüm dünyada geçerlilik kazanmıştır. Günümüzde “proje yöneticiliğinin” bir meslek haline gelmesinde PMI’nın önemli katkıları bulunmaktadır. Sertifikasyon sınavına giriş için başvuru işlemleri doğrudan PMI’ya yapılmakta ve yaklaşık iki-üç haftada tamamlanmaktadır. Başvuru tarihinden önceki son sekiz sene zarfında ön lisans mezunları 7.500, lisans diplomasına sahip olanlar ise 4.500 saatlik süre ile proje görevlerine önderlik etme, yol gösterme ve projelerde takım üyesi olarak yer alma tecrübesinin olması gerekir. PMI Proje Yönetimi Enstitüsü proje yönetimi konusunda ortak dili yakalamak için terminoloji desteği sağlamayı hedefleyen PMBOK’u (Project Management Body of Knowledge–Proje Yönetimi Bilgi Tabanı) geliştirmiştir. PMBOK “Proje Yönetimi Bilgi Birikimi Kılavuzu” projelerde genel kabul gören süreçleri detaylı olarak ele alır ve metot sunarak projelerin yönetilmesine yol gösterir. “Proje yönetimi uzmanlığını” hedefleyen bir kişinin temel alması gereken en önemli kaynaktır.

IPMA Uluslararası Proje Yönetimi Derneği

IPMA 1964, dünyanın en eski proje yönetimi kuruluşudur. IPMA Avrupa, Asya, Avustralya ve Amerika kıtalarında 58 üye ülke ve 120 bin sertifikalı proje yönetim profesyoneliyle dünya çapında kabul gören İsviçre kökenli bir kuruluştur. Türkiye‘ yi IPMA’da Proje Yönetim Kurumu temsil etmektedir. IPMA’da proje yönetimi ile ilgili temel kavramlar 42 (28 ana + 14 ek) başlık altında toplanmıştır. Bu başlıklar altında detaylı bilgiler bulunmamakta, sadece birkaç paragraf ile kavramlar açıklanmaktadır. IPMA farklı seviyelerde dört ayrı Proje Yönetim Sertifikası tanımlamıştır.

APM Proje Yönetimi Derneği

APM, (Association for Project Management – Proje Yönetimi Derneği) 21.000’in üzerinde bireysel ve 550 kurumsal üye kayıtlı bir yardım kuruluşudur ve Birleşik Krallık’ta, proje yönetimi ve program yönetiminin profesyonel disiplinlerini bir program aracılığıyla geliştirmeyi ve teşvik etmeyi amaçlayan en büyük meslek kuruluşu haline gelmiştir.

PRINCE2 Kontrollü Ortamlarda Projeler

PRINCE2 (Projects In Controlled Environments – Kontrollü Ortamlarda Projeler) İngiltere Hükümetinin geliştirmiş olduğu ve dünyada en geniş olarak kullanılan proje yönetimi standardıdır ve herkesin kullanımına açık, süreç tabanlı bir proje yönetim yaklaşımıdır. İngiltere tarafından standart olarak kabul edilen bu yöntem, tüm dünyada birçok uygulayıcıya sahiptir. Bu yöntem proje boyutundan bağımsız olup her büyüklükteki projeye göre ölçeklenebilir ve uyarlanabilir. 1989 yılında geliştirilen PRINCE2, kamuya açık olmakla beraber patenti İngiliz Hükümeti’ne aittir. PRINCE2 metodu bir projede neyin, kim tarafından ve ne zaman yapılması gerektiğini belirten bir yapı sunar. İki aşamalı bir sertifikasyon sistemi uygulayan bu standartta temel bilgiler PRINCE2 Foundation‖ sınavı ile ölçülmekte, bu sertifika kazanıldıktan sonra standardın önerdiği yöntemlerin kavramsal olarak anlaşılmasını ve projelerde kullanılmasını içeren PRINCE2 Practitioner Sertifikası edinilmektedir.

AIPM Avustralya Proje Yönetimi Enstitüsü

AIPM (Australian Institute of Project Management – Avustralya Proje Yönetimi Enstitüsü), Avusturalya bölgesindeki en büyük profesyonel proje yönetim enstitüsüdür. AIPM, IPMA’nın ikinci en büyük Üye Derneği olup proje yönetimi ile ilgilenen kişilerin yeterliliklerini dört seviyeden birinde göstermeleri beklenir bunlar: CPPE, (Certified Practising Portfolio Executive – Sertifikalı Uygulama Portföy Yöneticisi) CPPD ,(Certified Practising Project Director – Sertifikalı Uygulama Projesi Direktörü) CPPM, (Certified Practising Project Manager – Sertifikalı Uygulamalı Proje Yöneticisi) ve CPPP’dir. (Certified Practising Project Practitioner – Sertifikalı Uygulayıcı Proje Uygulayıcısı)

ITIL Bilgi Teknolojisi Altyapı Kütüphanesi

ITIL (Information Technologies Infrastructure Library – Bilgi Teknolojisi Altyapı Kütüphanesi) İngiltere Ticaret Bakanlığı tarafından 1987’de oluşturulmuştur. ITIL yönetim standardı, bilgi teknolojileri servislerini eksiksiz ve en iyi kalitede yönetmek için geliştirilmiştir. Günümüzde ITIL ISO 20000 ile günlük hayatta sık sık uygulamalarına rastlanır bir hal almıştır. Servis yaklaşımı ile kurumların sağladığı servisleri, sağlayan açısından öneminin kullanıcı açısındansa sağladığı değerlerin dikkate alınmasını öneren ITIL son yıllarda ülkemizde de hızla uygulanma alanını genişletmektedir.

ISO 21500 Proje Yönetimi Kılavuzu

İngiltere ‘nin teklifiyle ISO tarafından ISO 21500 uluslararası standardının geliştirilmesine Ekim 2007 tarihinde başlanmıştır. Dünyanın dört bir yanından 50’den fazla temsilci katılan bu toplantıda BSI British Standards, ISO 21500‘ü geliştirmek için kurulan yeni bir proje komitesine (ISO/PC 236) Londra‘daki açılış toplantısında ev sahipliği yapmıştır. Toplantının amacı temel prensipleri belirlemek, proje yönetiminde iyi uygulamaları neyin teşkil ettiğini açıklamak ve genel rehberlik sağlamaktı. Katılımcı ülkeler: Avusturalya, Avusturya, Belçika, Brezilya, Kanada, Finlandiya, Fransa, Almanya, Gana, Hindistan, İsrail, Japonya, Hollanda, Norveç, Portekiz, Güney Afrika, İspanya, İsveç, Birleşik Krallık, ABD; gözlemci ülkeler ise İrlanda, Pakistan ve Romanya’dır.

ISO/IEC 29110 Uluslararası Standardı

Küçük kapsamlı kuruluşlara veya projelere Sistem ve Yazılım Yaşam Döngüsü Profilleri ve Yönergeleri, Uluslararası Standartlar ve Teknik Raporlar sunan bir proje yönetimi standardıdır. Genellikle en fazla 25 kişiye sahip bir kuruluş veya organizasyonda kullanılan bu standart sistem ve yazılım mühendisliği alanındaki projelerde yaygın kullanılmaktadır. ISO/IEC 29110 standardı Uluslararası Standartlar Teşkilatı ve Uluslararası Elektroteknik Komisyonunun Teknik Komitesinin çalışma grubu tarafından geliştirilmiştir. ISO/IEC 29110, hedef kitle tarafından ürün veya hizmet kalitesini artırmak ve performansı işlemek için geliştirilmiştir.

 

Bölüm Özeti

•  Yazılımlar birçok yönü ile diğer projelerden farklılık gösteren projelerdir. Bu özellikleri yazılımların farklı şekillerde yönetilmesini gerekli kılar. Yazılım proje yönetimi, çoğunlukla klasik proje yönetimlerinden daha hassas, daha fazla teknik bilgi gerektiren, daha özen isteyen bir konudur. Yazılım projelerini yönetebilmek için o yazılımın özelliklerini, geliştirilme şekillerini, stratejilerini, yazılımda kullanılacak donanımları vb. bilmek gereklidir.

• Bir yazılım projesi geliştirilirken tek bir seferde geliştirilmez ve belli aşamalardan geçmesi gereklidir. Bu aşamalar birbirini ardı sıra takip eden aşamalar olabileceği gibi bazı aşamaların eşzamanlı olarak yürütülmesi de kaynaklar doğru bir biçimde planlanırsa mümkün olabilir.

• Bir yazılım projesi geliştirilirken aşağıdaki aşamaların mutlaka bulunması gerekmektedir.

▶ Planlama: Yazılım projesi yazılımla giderilecek bir ihtiyacın ortaya çıkmasıyla başlar. Ardından kapsam belirlenir ve planlama yapılır. Buna göre faaliyet anlamındaki ilk aşama planlama aşamasıdır.

▶ Analiz: Paydaş ihtiyaç ve beklentilerinin ayrıntılı şekilde tanımlanmasıdır.

▶ Tasarım: Yapılan analizin yazılım geliştirme araçlarının imkan, kural ve sınırları dahilinde geliştirilecek yazılımın üst seviye modeline dönüştürülmesi işlemidir.

▶ Gerçekleştirme: Gerçekleştirme aşamasında müşteri talepleri için tasarlanan model, yazılım geliştirme araçları vasıtasıyla yazılım ürününe dönüştürülür.

▶ Test: Yapılanların kontrol edilmesidir.

▶ Devreye Alma: Test aşaması tamamlandıktan sonra kullanıcı eğitimi, pilot kurulum ve nihaî proje kurulumu yapılarak proje devreye alınması işlemidir.

• Herhangi bir proje geliştirilirken uyulması gereken bazı ilkeler ve kurallar olduğu gibi yazılım projelerinde de çeşitli ilkeler ve kurallar mevcuttur. Bu ilke ve kurallara dikkat edildiği takdirde çok daha başarılı, uzun süreli, verimli, işe yarar yazılımlar geliştirmek mümkün olabilecektir. Bu ilkeler kısaca şu şekildedir:

▶ Tekrar Kullanılabilirlik: Yazılımı oluşturan kod, nesne ve bileşenlerinin tekrar kullanılabilir şekilde tasarlanmasıdır.

▶ Süreklilik: Yazılım ürünü sistemin çökmesine yol açabilecek hatalardan arındırılmış olmasıdır.

▶ İzlenebilme: Geliştirme süreci ve bu süreçte olgunlaşan yazılım teknik ekip, yönetici ve müşteri tarafından performans ölçümleriyle izlenebilecek parçalara bölünmesidir.

▶ Güvenlik: Yazılımın ve yazılıma emanet edilen bilginin güvenli olmasıdır.

 

Kaynakça

Barutçugil, İ. (2008). Proje Yönetimi. Kariyer Yayınları.

Goldratt, E. M. ve Cox, J. (2006). Amaç. Optimist Yayın Dağıtım.

Naghizade, K. ve Erkollar, A. (2020). Yazılım Projelerinde Kullanılan Proje Yönetimi Standartları ve Karşılaştırmaları.4th International Student Congress – 4. Uluslararası Öğrenci Kongresi, Sayfa 483 – 489.

Project Management Institute (2017). A guide to the Project Management Body of Knowledge (PMBOK guide).

Türkan, Y. S. (2015). Proje Yönetiminde Planlama ve Kontrol Teknikleri. Doğu Kütüphanesi Yayınevi.

 

Comments