Yazılım Proje Danışmanlarının Yazılım Kalitesinin Artırılmasındaki

advertisement
YKGS2008: Yazılım Kalitesi ve Yazılım Geliştirme Araçları 2008 (9-10 ekim 2008, İstanbul)
Yazılım Proje Danışmanlarının Yazılım Kalitesinin Artırılmasındaki Rolleri
The Roles of Software Project Consultants In Improving Software Quality
Ercan, Karasu
Savunma Teknolojileri
Mühendislik ve Ticaret A.Ş.,
Ankara
Meryem, Şahin Tütüncü
Savunma Teknolojileri
Mühendislik ve Ticaret A.Ş.,
Ankara
[email protected]
[email protected]
Özet
Yazılım proje danışmanları, projelere mühendislik bilgi
ve deneyimlerini aktararak, başarılı olmalarında önemli
katkılarda bulunurlar. Proje beklentilerine, aşamalarına
ve çıktılarına uygun olarak farklı roller üstlenebilen
yazılım proje danışmanlarının misyonlarından biri de,
projelerde yazılım standartları, süreç modelleri ve genel
kabul görmüş uygulamalara uyulmasını teşvik etmektir.
Bu yolla genel bir yazılım mühendisliği kültürünü
yaygınlaştırırken, beklentileri karşılayan kalitede
yazılımların geliştirilmesini de sağlarlar.
Kurumsal düzeyde verilen yazılım danışmanlık
hizmetlerinin ülkemizdeki en önemli temsilcilerinden
biri olan Savunma Teknolojileri Mühendislik ve Ticaret
A.Ş. (STM A.Ş.), savunma sanayinde yürütülen
projelere önemli danışmanlık hizmetleri sunmaktadır.
Bu bildiride yazılım proje danışmanlığı hizmetlerinin
detayları verilecek, bu hizmetlerden elde edilen
kazanımlar ve bu kazanımların yazılım kalitesine etkisi
incelenecektir.
Abstract
By transfering their domain knowledge and
experiences, software project consultants provide
distinct contributions to projects’ success. One of the
missions of software project consultants (who may have
different roles in accordance with project expectations,
phases and outputs) is to promote conformation to
software standards, process models and common
implementations. While disseminating a general
software engineering culture with this mission, they
also provide assistance for developing quality softwares
meeting the expectations.
Savunma Teknolojileri Mühendislik ve Ticaret A.Ş.
(STM A.Ş.), one of the major companies of
organizational software consultancy services in Turkey,
provide important consultancy services to the projects
implemented for defense industry. In this paper the
details of the software project consultancy services are
provided while the benefits earned from these services
and the effects of these benefits to software qualities are
inspected.
1. Giriş
Yazılım projelerinde nesnel ve tarafsız bir paydaş
olarak görev yapan yazılım proje danışmanları,
mühendislik bilgi ve deneyimlerini kullanarak
projelerin başarılı olmasında önemli roller üstlenir.
Bu bildiride yazılım proje danışmanlığı kavramından,
ürün-süreç kalitesinin artırılmasındaki işlevlerinden,
proje danışmanlığının ülkemizdeki önemli kurumsal
temsilcilerinden biri olan Savunma Teknolojileri
Mühendislik ve Ticaret A.Ş.’deki (STM A.Ş.)
danışmanlık uygulamalarından ve yazılım proje
danışmanlığı kapsamında hizmet verilen projelerde
sıklıkla karşılaşılan problemlerden söz edilecektir.
2. Proje Danışmanlığı
Danışmanlık; bir uzmanlık alanında yürütülen
faaliyetlerde iyileştirme fırsatlarını ve problemleri
belirlemek, bunları tanımlayarak araştırmak, sorunların
giderilmesi için uygun çözümler üretmek ve bu
çözümlerin uygulanmasını kolaylaştırmak esasına
dayanan bir yardım işlevidir [10]. Kişi ve kuruluşlara
bilgi ve deneyim eksenli hizmet sunan danışmanlığın
kapsamı, problemin yer aldığı alana göre farklılıklar
gösterir.
Bu
nedenle
danışmanlığın,
insan
kaynaklarından
şirket
yönetimine,
bilgi
teknolojilerinden Avrupa Birliği’ne kadar birçok
uygulama alanı vardır.
Danışman; sahip olduğu bilgi ve becerileri belirli bir
problem üzerinde yoğunlaştırarak onu analiz eden ve
giderilmesi için uygun çözümler sunan kalifiye
uzmandır [11]. Bu görev tanımıyla danışman;
•
Özel bilgi ve uzmanlık,
•
Farklı ve tarafsız bakış açısı
ihtiyaçlarını karşılar [1].
YKGS2008: Yazılım Kalitesi ve Yazılım Geliştirme Araçları 2008 (9-10 ekim 2008, İstanbul)
Proje danışmanlığı ise çoğunlukla proje öncesinde ve
proje yürütülürken, yapılabilirlik analizinden, müşteri
beklentilerinin
karşılandığının
doğrulanmasına;
yönetsel problemlerin belirlenmesinden, tanımlı
standartlara
uygunluğun teyidine kadar farklı
ihtiyaçları karşılamaya yönelik bir danışmanlık
türüdür. Temel amacı projelerin başarılı bir şekilde
yürütülerek tamamlanmasını ve ara/nihai ürünlerin
beklentileri karşılamasını sağlamaktır. Çoğunluka
projenin müşterisi (alıcısı) tarafından talep edilen proje
danışmanlık hizmeti, özellikle belirsizliklerin ve
risklerin çok olduğu, özel uzmanlık kaynaklarının
yeterli olmadığı projelerde, proje yürütücüleri
tarafından da istenebilmektedir.
Proje danışmanlığı, konularına göre farklı alt
danışmanlık gruplarına ayrılabilir. Bunlardan en temel
olanları proje yönetim danışmanlığı, akademik/bilimsel
danışmanlık ve mühendislik danışmanlığıdır.
•
Projeler için
değerlendirilir.
•
Sözleşme çalışmalarına destek verilir.
•
Beklentileri karşılayan
geliştirilmesini,
başarılı
yazılımların
•
Geliştirme faaliyetleri için ayrılan kaynakların
daha verimli kullanılmasını,
•
Genel ve geçerli bir yazılım
kültürünün yaygınlaştırılmasını
mühendisliği
sağlamaktır. Yazılım proje danışmanları, müşteri adına
mühendislik bilgi ve deneyimlerini kullanırken,
projelerde üretilen bilgilerin kalıcı olacak şekilde
dokümante edilmesini sağlayarak üretilen bilgilerin
diğer projelerde kullanılabilirliğini artırmaya yardımcı
olurlar.
Yerine göre gözlemci, yol gösterici veya müşterinin
hakkını savunan avukat rollerini üstlenebilen
danışmanların [2] yürüttükleri çalışmaların niteliği
proje aşamalarına göre değişebilmektedir.
Proje başlamadan önceki aşamalarda;
•
Yazılımların yapılabilirlik (fizibilite) analizleri
gerçekleştirilir.
•
Müşterinin talep ettiği yazılım için teklife çağrı,
bilgi istek dokümanları hazırlanır.
yaptıkları
teklifler
Proje başladıktan sonraki aşamalarda ise;
•
Yazılım
gereksinimlerinin
tanımlanması sağlanır.
•
Yapılan
yazılım
doğrulanır.
•
Yazılım testlerinin, gereksinimlerin karşılandığını
doğrulayacak şekilde tanımlanması sağlanır.
•
Test ve kabul faaliyetlerine nezaret edilir.
•
Yazılım kalite temini, yazılım konfigürasyon
yönetimi, proje yönetimi, risk yönetimi süreçleri
izlenir ve iyileştirme önerileri sunulur.
•
Mühendislik değişiklik teklifleri değerlendirilir,
buna bağlı olarak sözleşme değişikliğinin uygun
şekilde yapılması sağlanır.
•
Yazılım mühendisliği ve teknolojileri ile ilgili
konular veya problem çözümleri araştırılır.
2.1. Yazılım Proje Danışmanlığı
Yazılım proje danışmanları, yazılım geliştirme
projelerine veya içinde yazılım parçaları geliştirilen
sistem projelerine mühendislik danışmanlık hizmetleri
sağlar. Amaçları;
firmaların
uygun
tasarımlarının
şekilde
uygunluğu
Yazılımın kodlanması aşamasında, doğrudan bir
danışmanlık katkısı olmamakla birlikte, projelerde
belirli kodlama standartlarına uyulması bekleniyorsa;
bu beklentinin karşılandığının testler sırasında
doğrulanması için gerekli yönlendirmelerin yapılması
yine danışmanların görevleri arasındadır.
Yazılım proje danışmanları belirtilen fonksiyonları
yerine getirirken, yazılım mühendisliği alanındaki bilgi
ve deneyimleri ile projelerde uyulması gereken
IEEE/EIA 12207 [3], Mil-STD-498 [4] gibi yazılım
standartları ve CMMI (Capability Maturity Model
Integration) [5] gibi süreç modellerini de birer referans
olarak kullanılırlar. Bu nedenle, proje isterlerine
yazılım proje danışmanlarının hakim olması ve
projelerdeki uygulamaları izlemesi önemli bir
yükümlülüktür.
2.1.1. Yazılım Proje Danışmanları ve Kalite Güvence
Sorumluları
Amaçları, çalışma yöntemleri ve başvurdukları
referanslar (standartlar, süreç modelleri vb.) dolayısıyla
danışmanlar ile kalite güvence sorumlularının işlevleri
bazı durumlarda karıştırılabilmektedir.
Benzerlikler açısından ele alırsak; her iki görevi
yürütenler, dahil oldukları projelerin başarıya ulaşması
YKGS2008: Yazılım Kalitesi ve Yazılım Geliştirme Araçları 2008 (9-10 ekim 2008, İstanbul)
için tamamlayıcı destek görevi yürüten paydaşlardır.
Proje çıktılarına, ürünlerine, süreçlere nesnel ve
eleştirel gözle bakarak, olanla olması gereken
arasındaki farkı ortaya koyarlar. İşlerini yaparken
ulusal ve uluslararası standartları, modelleri, genel
kabul görmüş uygulamaları ve projelerin sözleşmelerini
referans alırlar.
İlgili görevlerin farkları ise kapsam, içerik ve
yetkilerinden kaynaklanır.
•
•
•
Kapsam açısından fark: Kalite güvence sorumlusu,
projelerde kalite politikasının ve kalite planının
uygulanıp uygulanmadığının doğrulanması ile
sorumludur. Proje danışmanının görev kapsamı ise
daha geniştir. İşini yaparken bir kalite yönetim
sistemini referans alabilir ama bununla sınırlı
kalmaz. Detaylı çalışmaların yanısıra işini
gözlemlere dayalı genellemelerle de yapar.
beklenen sonuçları verebilmesi için kalite temin ve bilgi
yönetimi süreçleri ile desteklenmesi gerekir. Kurumsal
yazılım proje danışmanlığı kapsamında bir projeye
birden fazla danışman tahsis edilebileceği gibi, bir
danışman birden fazla projeye hizmet verebilmektedir.
Simülasyonlardan, veritabanı uygulamalarına, gömülü
yazılımlardan, test yazılımlarına kadar birçok yazılım
türünün farklı platformlar için geliştirildiği projelerde
verilen yazılım danışmanlık hizmetinin kapsamı da
projeden projeye değişebilmektedir. Bu değişkenlik,
projede sadece yazılım, ağırlıklı olarak yazılım veya
sistem içinde yazılım geliştirilmesi hedefine de
bağlıdır.
Yazılım proje danışmanlığı hizmetinin daha iyi
anlaşılabilmesi için danışmanlık şirketleri gibi bilgiyoğun organizasyonlarda önem arzeden kalite ve bilgi
yönetimi süreçlerinin üzerinde durmak gerekir.
İçerik açısından fark: Danışman hizmet verdiği
konuda alan bilgisi ve tecrübesini kullanarak, işin
teknik uzmanlığına yönelik katkı yapar. Kalite
güvence sorumlusunun ise böyle bir alan bilgisi ve
deneyimine sahip olması gerekmez. Kalite
yönetimi ve standartları konusunda yetkin olması
ve bunların uygulanmasında proaktif bir tutum
sergilemesi görevini başarı ile yapması için
yeterlidir. Bir örnek ile anlatmak gerekirse; kimya
alanında hizmet veren bir danışman, projede
uygulanacak proseslerle istenilen malzemenin
üretilemeyeceği düşüncesinden yola çıkarak farklı
yöntemler kullanılmasını önerebilir. Kalite
güvence sorumlusu ise böyle bir seçimin
prosedürlerde tanımlanmış olan karar alma
süreçlerine uygun olarak yapılmasını isteyebilir.
2.2.1. Kalite Yönetim Sistemi
Yetki açısından fark: Kalite güvence sorumlusu,
üretilen/geliştirilen nihai ürün veya ara ürünlerin
beklentileri
karşılayıp
karşılamadığının
doğrulanması ve geçerlenmesi aşamasında denetim
görevi yürütür. Olumsuz bir durum karşısında
düzeltme mekanizmasının devreye girmesini
sağlar. Müşterisinin hakkını savunduğu durumları
ayrı tutarsak, danışman, teknik uzman olarak yol
gösterici olduğu projelerde uygunsuzlukları tespit
ederek tavsiyeler verebilir ama kalite güvence
sorumlusunun sahip olduğu bağlayıcı yetkilere
sahip değildir.
Tüm hizmetlerde olduğu gibi yazılım proje
danışmanlığı hizmetinde de müşterinin kalite algısı
önemli olmaktadır. Kaliteli hizmet almadığını düşünen
bir müşteriye, teknik olarak ne kadar iyi bir içerik
sağlansa da, danışmanlık hizmetinin nihai hedefi olan
müşteri memnuniyeti tam olarak karşılanamaz.
Yazılım alanında danışmanlık müşteri kalite algısı
(DHKA) aşağıdaki formül [6] ile ifade edilebilir:
2.2. Kurumsal Yazılım Proje Danışmanlığı Hizmeti
Belirli sayıda danışmandan oluşan organizasyonların
süreç bazlı olarak verdikleri yazılım proje danışmanlığı
hizmetleri, kurumsal nitelik taşıyan hizmetlerdir. Bu
tür organizasyonlarda, danışmanlık hizmetlerinin
Danışmanlık hizmeti veren organizasyonların personel
sayısı ve yapılanması, danışmanlık hizmetinin, belirli
kurallar ve prosedürlere bağlı kalınarak verilmesini
gerektirir. Her ne kadar danışmanlık, özünde analitik
düşünme, yaratıcılık gibi kişisel özellikler gerektiren
bir iş olsa da [11], organizasyonların, verdikleri
danışmanlık hizmetlerini, bireyselliğin sağladığı
esnekliği bozmadan ve danışmanlığı süreç ağırlıklı bir
uğraş haline getirmeden kurumsal kimlikleriyle
yapılandırması gerekir. Danışmanın içinde bulunduğu
organizayonun profesyonel hizmet vermesine katkı
sağlayabilmesi için danışmanlık sürecinin danışmanlık
politikasından
başlayarak
oluşturulması,
görev
tanımlarının yapılması ve tüm bunların kalite yönetim
sistemi ile ilişkilendirilmesi önemlidir.
DHKA=Teknik Kalite x İşlevsel Kalite x Müşteri Onayı
(1)
Bu formülde,
•
Teknik Kalite; danışmanlık çıktılarının (rapor,
görüş, öneri, bilgi vb.) yazılım mühendisliği
açısından teknik kalitesini,
•
İşlevsel Kalite; danışmanlık çıktılarının sağlanma
sürecindeki hizmet kalitesi,
YKGS2008: Yazılım Kalitesi ve Yazılım Geliştirme Araçları 2008 (9-10 ekim 2008, İstanbul)
•
Müşteri Onayı; çıktıların müşteri tarafından kabul
edilme derecesini gösterir.
Buradan da görüldüğü gibi yazılım proje danışmanlık
hizmetlerinin
başarısı
için
danışmanlık
organizasyonunda kalite anlayışının belirli bir
olgunlukta olması gerekir. Ayrıca müşterinin onayını
etkileyen en önemli faktörlerden biri de, danışmanın
müşteri ile kuracağı etkilişimin profesyonellik (işlevsel
kalite [12]) düzeyidir .
olarak yer almayı ve şirketlerin (yüklenicilerin)
istenilen ürün ve sistemleri başarı ile geliştirmelerine
(müşteri bakış açısıyla) yardım etmeyi içerir.
STM A.Ş. tarafından danışmanlık hizmeti sağlanan
yazılım projeleri;
•
Uygulama alanına göre: komuta kontrol,
simülasyon, görev planlama, elektronik harp, uçuş
kontrol, silah sistemi, haberleşme ve sensör
sistemleri,
•
Nihai amacına göre; kontrol, eğitim, karar destek,
ölçüm, hesaplama, analiz, test, veri yönetimi,
prototip ve altyapı yazılımları
2.2.2. Bilgi Yönetimi
Müşterilerin kurumsal düzeyde verilen danışmanlık
hizmetlerinden beklentileri, münferit olarak verilen
danışmanlık hizmetlerinden daha yüksektir. Bunun
nedeni, olası farklı uzmanlık alanlarındaki bilgi
ihtiyacının kurumsal danışmanlık hizmeti veren
organizasyonlardan daha kolay sağlanması, ekip olarak
verilen danışmanlık hizmetlerinde müşterinin farklı
danışmanlardan
tamamlayıcı
faydalar
sağlayabilmesidir. Bu organize olmuş bilgi beklentisi
beraberinde, bilginin uygun şekilde üretilmesi,
çoğaltılması,
saklanması
ve
paylaşılması
sorumluluğunu getirir. Danışmanların bu yapı içinde
aradığı bilgiyi hangi kaynaktan, hangi şartlarda, ne
zaman alabileceğini bilmesi önemlidir. Çünkü
kurumsal düzeyde veriliyor olsa da, danışmanlık
hizmeti kapsamında müşterinin ilgili olduğu taraf yine
kişiler
yani
birebir
düzeyde danışmanlardır.
Organizasyonel hizmet gücü bireysel düzeyde
danışmanların performansları ile ortaya konur.
2.3. STM A.Ş. ve Kurumsal Proje Danışmanlık
Faaliyetleri
STM A.Ş., 1991 yılında Savunma Sanayi İcra Komitesi
kararıyla, Türkiye’nin savunma alanında milli
altyapısının oluşturulmasında Türk Silahli Kuvvetleri
(TSK) ve Savunma Sanayi Müsteşarlığı’na (SSM)
mühendislik ve danışmanlık hizmetleri vermek üzere
kurulmuştur. Kalite yönetim sistemi ISO 9001:2000
[7], AQAP-160 [8] ve ISO/IEC 27001 [9] gereklerine
uygun olarak yapılandırılmış olan STM A.Ş.,
faaliyetlerini CMMI Seviye-3’e uygun olarak
yürütmektedir.
Danışmanlık hizmetlerini savunma sanayi projelerinde
yoğunlaştıran STM A.Ş., proje öncesinde ve proje
yürütülürken
olmak
üzere
Savunma
Sanayi
Müsteşarlığı’na farklı aşamalarda ihtiyaç duyduğu
danışmanlık desteğini sağlamaktadır. Bu destek,
Savunma Sanayi Müsteşarlığı’nın sektörde faaliyet
gösteren şirketlere verdiği projelerde alan uzmanı
grupları altında toplanabilir.
Projeler için STM A.Ş. bünyesinde görevlendirilen
danışmanlar teknik faaliyetlerini, şirket danışmanlık
sürecinde tanımlı kurallar çerçevesinde ve projede
üretilen
çıktıların
özelliklerini
göz
önünde
bulundurarak yürütür. Örneğin bir projede üretilen
yazılım gereksinim dokümanı hakkında görüş
oluştururken, danışman kendi bilgi birikimini kalite
sisteminde yer alan kılavuzlardaki yönlendirici
bilgilerle birleştirir ve ilgili rapor şablonuna uygun
olarak raporunu hazırlar. Bu rapor bir veya birden fazla
gözden geçirme süreci ile olgunlaştırıldıktan sonra
müşteriye iletilir. Danışmanlık yapılan projelerde,
yüklenicilerin üretebilecekleri iş ürünleri, önem ve
kapsamına göre de sınıflandırmıştır. Buna göre
hazırlanacak bir fizibilite raporu ile görüş verilecek bir
yazılım tasarım dokümanının gözden geçirme
süreçlerine farklı düzeylerde katılımcılar dahil olur.
Müşteriden işin alınmasından danışmanlık hizmetinin
tamamlanmasına kadar olan süreçte, şirket bünyesinde
farklı sorumluluklar ve roller bulunur. Örneğin işin ilk
alınması ve danışman tarafından yapılarak teslim
edilmesi
noktalarında
danışmanlık
hizmet
koordinatörleri, müşteri ile gerekli temasları
sağlamakla yükümlüdür. Bu yolla belirli bir olgunlukta
ve danışmanlardan bağımsız bir hizmet etkileşiminin
sağlanması hedeflenir.
Kurumsal danışmanlık hizmetinin gereği olan bilgi
yönetimine STM A.Ş. bünyesinde verilen önem,
ISO/IEC 270001 standardına uygun bilgi güvenliği
politikası ile desteklenmektedir. Farklı projelerde elde
edilen danışmanlık deneyimlerinin paylaşımını
artırmak amacıyla geliştirilmiş olan bir portal ile de
danışmanlar arasındaki bilgi akışı hızlandırılmıştır.
YKGS2008: Yazılım Kalitesi ve Yazılım Geliştirme Araçları 2008 (9-10 ekim 2008, İstanbul)
müşteri isterlerinden yazılım gereksinimlerine
geçiş sürecinde işlev kaybı olması (unutulan,
gözardı
edilen
fonksiyonel
ihtiyaçlar),
gereksinimlerin tanımlanma çalışmasına tüm ilgili
tarafların dahil edilmemesi, gereksinim sayısının
fazla olduğu projelerde (uygun) gereksinim
yönetim araçları kullanılmaması.
Yazılım ve sistem mühendisliği alanlarında sağlanan
bu
hizmetlerin
iyileştirilmesi,
farklı
süreç
modellerinden faydalanılarak sürdürülmektedir.
2.4. Danışmanların Görev Aldıkları Yazılım
Projelerinde Sıkça Tespit Ettikleri Problemler
Yazılım proje danışmanlığı hizmeti verilen savunma
sanayi projelerinde karşılaşılan problemlerin, ağırlıklı
olarak projelerin kapsamlarından ve yüklenici
firmaların iş yapma yöntemlerinden kaynaklandığı
görülmektedir. Bu bölümde belirtilen problemler,
savunma sanayinde yürütülen farklı projelerden elde
edilen veriler doğrultusunda gruplanmıştır.
•
Yazılım Tasarımı: Gereksinim ile tasarım
unsurları arasında izlenebilirliğin kurul(a)maması,
tasarımda statik ve dinamik ilişkilerin tam olarak
ortaya konamaması, tasarım diyagramlarının açık
olmaması/dokümantasyon ile desteklenmemesi,
modelleme dilinin (UML gibi) etkin olarak
kullanılmaması, tasarımın kodlama için yeterli
bilgi içermemesi, kodlama aşamasında değiştirilen
tasarımın ilgili dokümanlara yansıtılmaması,
mimari tasarım aşamasında detay tasarım
çalışması yapılması.
•
Kodlama: Projelerde kodlama standartlarına
uyulmaması, kabul aşamasında kaynak kodda teste
yönelik ifadelerin bulunması/unutulması.
•
Yazılım Testi: Gereksinimlerin tam olarak test
edilmemesi, test tanımlarının açık ve anlaşılır
olmaması, test durumları ile gereksinimler
arasında izlenebilirliklerin doğru kurulmaması,
kalifikasyon yöntemlerinin (gösterim, analiz vb.)
doğru belirlenmemesi, bütünlük korunumu için
regresyon testlerinin yapılmaması, performans
gereksinimlerinin detaylı test edilmemesi.
•
Proje Yönetimi: Risklerin yeterli seviyede ve
detayda tanımlanmaması ve izlenmemesi, kaynak
planlamasının iyimser tahminler doğrultusunda
yapılması, proje takviminin dinamik olarak
güncellenmemesi ve yeni planlamanın zamanında
yapılmaması, çok paydaşlı/taraflı projelerde
verimli iletişim kanallarının kurulumaması.
•
Yazılım Konfigürasyon Yönetimi: Kaynak kod
sürüm kontrolünün dikkatli yapılmaması.
•
Yazılım Kalite Temini: Projelerin taahhüt edilen
tarihlerde bitirilebilmesi için kalite temin planının
takip
ve
uygulanmasında
aşırı
esneklik
gösterilmesi, firmaların yazılım mühendisliği süreç
ihtiyaçlarına cevap veren kalite yönetim
sistemlerine sahip olmaması, kalite güvence
sorumlularının yazılım standartları konusunda
yeterli bilgiye sahip olmaması, proje iş ürünlerinin
değerlendirmesinde (doküman gözden geçirme vb.)
gerekli kalite katılımların sağlanmaması, kalite
yönetim sistemlerinin bağımsız kişiler tarafından
2.4.1. Proje Kapsamı ile İlgili Problemler
Proje kapsamı ile ilgili problemler aşağıdaki başlıklar
altında toplanabilir:
•
Proje başlarken
olması,
•
Proje başladıktan
değişmesi,
proje
kapsamlarının
sonra
müşteri
belirsiz
isterlerinin
•
Proje kapsamına ve kaynaklara göre iyimser
takvim öngörülmesi,
•
Yüklenici firmaların proje kapsamına giren
konularda proje öncesinde herhangi bir deneyimsiz
olmaması.
2.4.2. İş Yapma Yöntemleri ile İlgili Problemler
Bu gruptaki problemler daha çok proje başlangıcında ve
proje yürütülürken ortaya çıkan problemlerdir. Müşteri
isterlerinin alınmasından başlayarak geliştirilen
yazılımın kabul aşamasına kadar olan birçok ara
faaliyet ve iş çıktısında ortaya çıkarlar.
•
•
Müşteri
İsterleri:
Müşterinin
geliştirilecek
yazılımdan
beklentilerinin
tam
olarak
anlaşılmaması.
Gereksinim Analizi ve Yönetimi: Müşteri isterleri
sistem
ve
yazılım
gereksinimlerine
dönüştürülürken gerekli analiz çalışmalarının
yapılmaması, gereksinimlerin uygun şekilde
oluşturulmaması
(gereksinimlerin
atomik,
anlaşılır,
test
edilebilir,
doğrulanabilir/geçerlenebilir
vb.
olmaması),
projenin başından sonunda kadar ara çıktılar
arasında
gereksinim
izlenebilirliklerinin
kurul(a)maması, gereksinim analizi aşamasında
tasarım
yapılması,
işlevsel
olmayan
gereksinimlerin uygun şekilde yönetilmemesi,
YKGS2008: Yazılım Kalitesi ve Yazılım Geliştirme Araçları 2008 (9-10 ekim 2008, İstanbul)
denetlenmemesi, projelerde yazılım iş çıktılarına
yönelik metriklerin toplanmaması, yazılım test
faaliyetlerinde proje ekibine nesnel ve eleştirel
katkılar yapılmaması, proje çalışanlarına süreçler,
standartlar, kılavuzlar hakkında gerekli bilgi ve
eğitimlerin verilmemesi.
3. Tartışma
Proje çıktılarının kalitelerini artırmada önemli roller
üstlenen
danışmanlık
firmalarının
verdikleri
hizmetlerin
başarımını artırmak
için
kendi
organizasyonlarında uygun bir kalite yönetim sistemi
ile çalışmaları gerekir. Ancak kurumsal düzeydeki
danışmanlık şirketlerinin bu amaçla kullanabileceği
bir süreç modeli veya bir standart bulunmamaktadır.
Bu nedenle danışmanlık şirketleri hizmet politikalarını
oluştururken kendilerine özgü süreçler tanımlayarak
faaliyetlerini bu süreçlere göre yürütmektedir. Ancak
her şirketin ilgili süreçleri yetkin bir biçimde
oluşturma kabiliyetine sahip olmadığı göz önünde
bulundurulduğunda, danışmanlıkta referans olarak
kullanılmak üzere genel kabul görmüş bir süreç
modeline ihtiyaç olduğu değerlendirilmektedir.
4. Sonuç
Ülkemizde birçok firma yazılım mühendisliği alanında
faaliyet göstermektedir. Çoğu yazılım geliştiren bu
organizasyonların başarımları, kurmuş oldukları kalite
yönetim sistemlerinin etkinliği ile doğru orantılıdır ve
projelerde sağladıkları başarılar yazılım geliştirme
yaklaşımlarına sıkı sıkıya bağlıdır. Yazılım proje
danışmanları, mühendislik alanındaki deneyimleri ve
nesnel bakış açılarıyla projelerdeki bu yaklaşımları
izler. Problem yaşanan veya yaşanması muhtemel
konularda tavsiye yolu ile projelerin başarıya
ulaşmasına katkıda bulunur.
Projelerde görev yapan kalite güvence sorumluları ile
yazılım proje danışmanlarının işlevleri birbirine
paralellik taşır ve tamamlayıcıdır. Paralellik açısından
bakıldığında; kalite güvence sorumluları ve yazılım
proje danışmanları nesnel bakış açılarını koruyacak
şekilde projelere belirli bir mesafede durup eleştirel,
tarafsız bir tutum içinde projelerde aksayan yönlerin
düzeltilmesi için görev yaparlar. Tamamlayıcılık
açısından bakıldığında ise; kalite güvence sorumluları
projelerdeki ürün ve süreç kalitesinin temininde kritik
rol oynarken, danışmanlar, genel resme hakim olarak
yazılım mühendisliği ve proje yönetimi alanlarında
etkin olur.
STM A.Ş.’nin Savunma Sanayi Müsteşarlığı’na
verdiği yazılım danışmanlık hizmetlerinde, projelerin
çeşitli alan ve aşamalarında farklı problemlerle
karşılaşılmaktadır.
Gereksinimlerin
tanımlanmasınadan, yazılım testlerinin sağlıklı bir
şekilde yapılmasına kadar birçok süreçte belirlenen bu
problemlerin giderilmesinde yönlendirici olan yazılım
proje
danışmanları
geliştirilen
yazılımların
kalitelerinin artırılmasında önemli işlevler üstlenirler.
5. Kaynaklar
[1] Wood, P., Critical Consulting, Blackwell Business, 2002,
p. 58.
[2] Nadler, L., Bell and C. R., Clients & Consultants, Gulf
Publishing Company, 1985, p. 74.
[3] IEEE 12207-2008, Systems and Software Engineering–
Software Life Cyle Processes, 2008.
[4] MIL-STD-498 Software Development and
Documentation,USA DoD, 1994
[5] CMMI For Development v1.2, Software Engineering
Institute, 2006.
[6] Alvesson, M., Management of Knowledge Intensive
Companies, Walter de Gruyter, 1995, p 68.
[7] ISO 9001:2000 Quality Management System, 2000.
[8] AQAP-160 NATO Integrated Quality Requirements for
Software Throughout The Life Cycle, 2001.
[9] ISO/IEC 27001 Information Security Management
Standard, 2005.
[10] Stroh, L.K., Johnson H.H., The Basic Principles of
Effective Consulting, Lawrence Erlbaum Associates,
2005, p. 3.
[11] Aytar, D., Danışmanlık Nedir, Ne Değildir?, Rota
Yayınları, 1998, p. 33-34
[12] Brow, S.W., Gummesson, E., Edvardsson, B.,
Gustavsson, B., Service Quality-Multidisciplinary and
Multinational Perspectives, Lexington Books,1998, p.
11
Download