476 Okuma / 1 Yorum

15 Haziran 2017

Özellikle kamu kurum ve kuruluşlarımızı zor durumda bırakan bir kaosun kaynağı ve bilinmezlik dünyasıdır, bu yazılım meselesi.

Aslında, kurum ve kuruluşlarımızın büyük çoğunluğu yeni yazılım temin faaliyetlerinin kamu kaynaklarının kaybına neden olduğunu tecrübe etmiş ve bu konuda bir geri besleme sağlanmıştır. Birçoğunun iç mevzuatında, yazılım temin işlemlerinin  bilgi işlem merkezleri veya bilgi işlem personeli eliyle tek merkezden yürütülmesi hususu açıkça emredilmiştir.

Her kamu kurum veya kuruluşumuzda teşkil edilmiş bilgi işlem merkezleri veya istihdam edilen bilgi işlem personeli bulunmaktadır. Ne var ki bu yazılım meselesi, bir şekilde kamu kaynak kayıplarının bir nedeni olmaya devam etmektedir.

Yazılım meselesinin kamu kaynak kayıplarına yol açmasının önemli nedeni, bilgi işlem personelinin, kurumun veya kuruluşun çeşitli fonksiyonel görev alanlarındaki prosedürleri çok iyi bilememesi ve buna bağlı olarak temin edilen yazılımların o fonksiyon alanında tanımlanmış görevlerin veya sistemin ihtiyaçlarını tam olarak karşılayıp karşılamadığını kestirememesi; o fonksiyon alanındaki mevzuata tam olarak hâkim olamadığından, dışardan hazır alınan bir yazılımın içerdiği sistem ve prosedürlerin mevzuata uygun olup olmadığını ya da ne kadarına uyduğunu anlayamamasıdır.

Yazılım temininin sorun olmasının bir başka önemli nedeni de yönetici ve kullanıcıların yazılım geliştirme teknik ve metodolojisinden haberdar olamamasıdır. Yazılım temininde çoğunlukla gerçekleşen senaryo şudur: Kurum ve kuruluşlarımız tarafından, acil bir ihtiyacın giderilmesi için gereken ve aslında başka kurum ve kuruluşlar için daha önceden geliştirilmiş olan bir yazılım, bilgi işlem personelinin de onayı ile alelacele satın alınır. Belirli ücretler karşılığı ileriye dönük işletme, bakım, geliştirme sözleşmeleri yapılır. Ancak bir süre sonra, alınan yazılımın ihtiyaçları tam olarak karşılayamadığı veya ilave modüller gerektiği anlaşılır ve yeni masraf kapıları açılır. Bu kez talep edilen ücret doğal olarak ikiye-üçe katlanır. Açıkça, kamu zararları başlar.

Bize olmaz gibi gelen bu senaryo, aslında yazılım şirketlerinin iş modelidir. Bir kurum veya kuruluşa, kodlarına sahip olunan bir yazılım satılır. Artık, o alanda ilgili kurum veya kuruluş bağımlı kılınır. Her defasında daha yüksek ücretlerle kuruma sözde hizmet götürmeye devam edilir.

Sadece bununla kalsa iyi. Dışarıdan alınan hazır yazılım, mevzuatın ve kamunun dilini, kurum kültürünü de yansıtmaz. Kurum veya kuruluşun personeli yıllardır kullandığı ve alışkın olduğu dili, formları, sistemi bırakır. Yeni yazılımın dayattığı dili,  formaları ve sistemi öğrenmeye çalışır. Şayet bu yeni yazılım kamu mevzuatına da uymuyorsa ki çoğunlukla uymuyordur, işte o zaman tam bir kaos ortaya çıkar. Ancak, geri dönüşü olmayan bir yola da girilmiştir bir kez. Etkililik, ekonomiklik ve verimlilik adına sarf edilen çabalar, bilgisizlik nedenliyle, bu prensiplerin bir biri ardına yıkılmasına sebep olur.

Tüm kamu kurum ve kuruluşlarımızın yöneticilerinin ve bilgi işlemcilerinin şunu çok iyi anlamaya ihtiyacı vardır. Her fonksiyon alanındaki görevler; o kurum veya kuruluşa özel sistemlerin, iş akış süreçlerinin kurulması ve eksiksiz işletilmesi, zaman içerisinde geri besleme ile geliştirilmesi sonucu tam olarak başarılabilir. Bir başka kurum için hazırlanmış tip yazılımlar her kurumun bünyesine başarıyla uygulanamayabilir. Merkezi yönetim tarafından dikte edilmediği sürece, dışarıdan hazır yazılım almak, her zaman verimsizliğe ve kaynak kayıplarına neden olur.

Etkililik, ekonomiklik ve verimlilik adına bir yazılımın geliştirilerek kullanıma sunulması için üç aşamalı bir çalışma yapılır, yapılmalıdır. Bu aşamalar sırasıyla;

1.   Sistemin geliştirmesi,
2.   Yazılımın geliştirmesi,
3.   Test sürecinin geçilmesidir.

Sistem Geliştirme

Kamu kurum ve kuruluşları için “sistem geliştirme” demek, her bir fonksiyonel görevin yerine getirilmesi için gereken iç mevzuatın hazırlanmış ve yetkili organlar tarafından onaylanmış olması demektir. Kamu kurum ve kuruluşlarında, tanımlanmış fonksiyonel bir görevin yerine getirilebilmesi için belirlenen sistem ve standart uygulama prosedürleri, üst norm mahiyetindeki kanun, yönetmelik, tebliğ, tüzük vb. ne varsa tamamına uygun olmalıdır. O halde kamu kurum ve kuruluşlarımızda sistem geliştirme aşamasının tamamlandığından emin olabilmek için, o fonksiyonel görev için gereken sistem ve standart uygulama prosedürü iç mevzuat kapsamında hazırlanacak Yönetmelik, Yönerge veya Talimatlar ile netleştirilmelidir.

Sistem geliştirme görevi aslen kamu kurum veya kuruluşunun kendisine aittir. Gerçekte önemli olan sistem geliştirmektir. Sistem geliştirildiğinde yazılım için gereken algoritma zaten ortaya konmuş olacak ve yazılımcıların işi son derece kolaylaştırılmış olacaktır.

Yazılım geliştirme ve test süreci aşamalarına geçilmeden önce sistem geliştirme süreci tamamlanmış, bu kapsamda gereken sistem ve standart uygulama prosedürlerini kapsayan Yönetmelik, Yönerge veya Talimatlar yazılmış, onaylanmış, bir süre uygulanarak gereken geri beslemeler sağlanmış olmalıdır. Yazılım belirlenmiş sistemin ihtiyaçlarına göre geliştirilir. Bunun tersi olamaz.

Yazılım Geliştirme

“Yazılım geliştirme” demek, fonksiyonel görevlere ait verilerin bilgi işlem sistemleri üzerinden işlenebilmesi, iş süreçlerinin takip ve kontrol edilmesi ve yerine getirilmesi için, sistem geliştirme sürecinde hazırlanmış ve yetkili organlar tarafından onaylanmış iç mevzuat kapsamında netleştirilmiş sistem ve standart uygulama prosedürlerinin mühendislik prensipleri çerçevesinde, yazılım sistem ve prosedürlerine dönüştürülmesi ve geliştirilmesi demektir.

Algoritma başarıyla izah edilebilirse, yazılım geliştirme görevi yazılımcılara aittir. Yazılımcıların buradaki temel görevi kurum ve kuruluşların Yönetmelik, Yönerge veya Talimatlar ile netleştirdikleri sistem ve standart uygulama prosedürlerini iyi işleyen bir yazılıma dönüştürmektir.

Test Süreci

Yazılım geliştirme çalışmaları belirli aşamalara geldikçe, geliştirilmekte olan yazılım sırası ile bazı yazılım testlerine tabi tutulur. Yapılan testlerin her biri bir önceki sistem geliştirme aşamasında geçilen sıralı adımları sondan başa doğru yeniden doğrulama ve gerçekleştirme işlemidir.

Önce genel sistemin alt sistemleri olarak kabul edilen birim prosedürlerinin ayrı ayrı yazılımı tamamlanır ve Birim Prosedür (Modül) Testleri uygulanır. Daha sonra, ayrı ayrı tamamlanan ve test edilen birim prosedür yazılımları bir araya getirerek birlikte işlerliği sağlanır ve bunu test etmek üzere Bütünleştirme (Entegrasyon) Testi uygulanır. Sistemin alt sistemlerine ait yazılımlar ve bütünleştirme testleri tamamlandığında, ayrıca bir de Tam Sistem (Kara Kutu) Testi uygulanır ve yazılım uygulamasını kullanıcıların önüne koymadan önce tüm prosedürlerin işlerliği onaylanır.

Geliştirilmekte olan yazılımla ilgili buraya kadar yapılan testlerin sorumluluğu yazılımcılara ait iken bundan sonraki aşama testleri yazılımı alacak olan yönetici ve kullanıcılara aittir. Çünkü artık kullanıcı kabulü için bir test yapılacaktır. Kullanıcı Kabul Testinin amacı, Yönetmelik, Yönerge veya Talimatlar kapsamında üzerinde anlaşmaya varılan kullanıcı ihtiyacı sistem ve prosedürlerin işlerliğini, intranet ve/veya internete açık ve gerçek bir test ortamında, baştan sona denemek ve kabul etmek üzere onaylamaktır. Bu teste başlamak için önceki tüm testlerin başarı ile geçilmiş olması şarttır. Önceki testlerin geçildiğine dair sertifikasyonlar aranmalıdır.

Bu aşama kurum ve kuruluşlar için hayati önemi haizdir. Yazılımcılar, o kurum veya kuruluş için gereksiz olan tecrübelerini hazırladıkları yazılıma dâhil etmiş olabilirler. Başka bir kurum veya kuruluş için hazırladıkları yazılımı getirmiş olabilirler. Ayrıca, kurum veya kuruluşun son kullanıcıları da Yönetmelik, Yönerge veya Talimatlar kapsamındaki sistem ve prosedür ihtiyaçlarını yazılımcılara tam ve etkin bir şekilde iletememiş olabilirler. Sonuçta hazırlanan yazılım aslında kurum veya kuruluşun ihtiyaçlarını tam olarak karşılayamayabilir.

Kullanıcı Kabul Testi sıradan ve basit bir iş değildir. Bu test tamamlandıktan ve yazılımın kabulü yapıldıktan sonra geri dönülemez bir yola girilmiş olacaktır. Bu nedenle, Kullanıcı Kabul Testine tüm son kullanıcıların aktif olarak katılımı sağlanır ve katılanların tamamının yazılım hakkında görüş, teklif ve/veya onayladıklarına dair imzaları alınır.

Önemi nedeniyle Kullanıcı Kabul Test süreci başarıyla yönetilmelidir. Test için aşağıdaki iş sırası uygulanır.

1.       İç mevzuat ve yazılım üzerinden bilgi toplama işlemleri gerçekleştirilir
          a.       İş ihtiyaçları, görevler belirlenir ve listelenir
          b.       Uygulama mimarisini ortaya çıkarılır
          c.       Uygulamanın özellikleri ve bağlantıları belirlenir ve listelenir
          ç.       Kritik görev fonksiyonları, kilit elemanlar ve bunların görevleri belirlenir
2.       Toplanan bilgiler analiz edilir
          a.       İç mevzuat ve yazılım mimarisi, prosedür ve formları karşılıklı kontrol edilir.
          b.       Testin çerçevesi çizilir, ölçekleri belirlenir, yeterlilik limitleri saptanır
          c.       Testin tipi belirlenir, süresi saptanır
          ç.       Testte görev alacak çalışanlar, elemanlar ve kullanılacak araçlar belirlenir
3.       Bir test planı hazırlanır
          a.       Kritik görevleri içeren test senaryosu hazırlanır
          b.       Testin zamanı belirlenir
          c.       Test edilecek hususlar ve test etme zamanları belirlenir ve listelenir
          ç.       Test faaliyetleri senkronize edilir
          d.       Yapılan planlama ilgililere duyurulur
4.       Test uygulanır
          a.       Test senaryosu uygulamaya konulur
          b.       Belirlenen hususlar sırasıyla test edilir
          c.       Gerekirse senaryo güncellenerek, ilave hususlar yeniden test edilir
          ç.       Sonuçlar kayıt altına alınır
5.       Sonuçlar Raporlanır
          a.       Sonuçlar analiz edilir, yetersizlik kaynakları belirlenir
          b.       Tavsiye ve teklifler hazırlanır

Kullanıcı Kabul Testini geçen yazılım için kabul işlemleri, varsa güncellemeler yapılır. Satın alma sözleşme ve şartnamelerine, Kullanım Testleri devamınca ihtiyaç duyulabilecek düzeltmelerin yazılımcılar tarafından yapılacağı ve gizlilikle ilgili hususlar dâhil edilir ve yazılım temin süreci sonlandırılır.

Sonuç olarak, daha fazla etkililik, ekonomiklik ve verimlilik adına bir yazılıma sahip olma düşüncesi yerindedir. Ancak başka bir kurum için önceden hazırlanmış bir tip yazılım almak kamu zararlarına yol açabilir. Özellikle kamu kurum ve kuruluşlarımız, bu baştan kolay gibi görülen ve zararları sonradan ortaya çıkan yöntemi terk etmeli ve bu yazıda açıklanan usulleri uygulamaya koymalıdır. Önce manuel sistem ve standart uygulama prosedürleri belirlenmeli, kurum ve kuruluşun kendisine ait Yönetmelik, Yönerge veya Talimatlar haline getirilmeli, uygulama ile test edilmeli, yine önce Yönetmelik, Yönerge veya Talimatlar geliştirilmeli, birkaç yönetim döngüsü sonrasında, mükemmele ulaşıldığından emin olunduğunda sistemler yazılıma dönüştürülmelidir.

Evet, rasyonel yollardan yazılım temin ve kullanma çalışmalarına devam edelim, ama şunu unutmayalım. Şimdilik en önemli eksikliğimiz yazılım meselesi değildir. Maalesef biz henüz sistemlerimizi ve standart uygulama prosedürlerimizi bütüncül bir anlayışla yazılı prosedür (Yönetmelik, Yönerge veya Talimat) haline getirebilmiş ve uygulamaları tam olarak oturtabilmiş değiliz. Karşımıza çıkan her işi manuel olarak mükemmel bir biçimde yapıyormuşuz da, daha fazla etkililik, ekonomiklik ve verimlilik için tek eksikliğimiz otomasyonmuş gibi davranmayalım.