Kurum İç Yazılım Geliştirme Risk Faktörleri

Yazar: | 31 Temmuz 2019

Kurumsal Mimari’nin temel sorumluluklarından biri olan uygulama portföy yönetimi konusunda daha önce değinmiştik. Bu yazıda ise, portföyünüzü yönetirken karşılaşmanızın muhtemel olduğu “yeniden kullanım prensibinin işletilememesi” sorununa değineceğim.

BT’ye gerek iş birimleri gerekse içeriden iletilen yeni yazılım geliştirme ihtiyaçlarının karşılanması konusunda üç temel yaklaşım mevcuttur :

  1. İhtiyacın mevcut uygulamalar üzerinde geliştirilmesi,
  2. Yeni bir uygulama satın alınması,
  3. Kurum içerisinde yeni bir uygulama geliştirilmesi.

Bu alternatiflerin hiç biri gereksiz değildir, fakat talebin karşılanması için işletilmesi gereken öncelik sırası yukarıda belirtiğim şekilde olmalıdır. Gelen talep önce hali hazırda kurumda mevcut olan bir uygulamada karşılanmaya çalışılır, bu mümkün değilse yeni bir uygulama alınması yoluna gidilir, eğer bu kabiliyete sahip pazarda hazır bir uygulama yoksa içeride geliştirme yapılır. Bu sıralama, Kurumsal Mimari olarak kurum içerisinde yaygınlaştırmanız gereken prensiplerin başında gelmelidir.

Üç alternatiften en tehlikeli olanı ise sonuncusudur ve ne yazık ki geliştirme ekiplerine bunu anlatabilmeniz çok kolay olmayacaktır. İlk alternatif genellikle kurumda bulunan uygulamalara ait kabiliyetlerin, tüm ekipler tarafından bilinmemesi nedeniyle ihmal edilir. Eğer etkin bir portföy yönetimi yapılmıyorsa, kuruma ait yüzlerce uygulamanın hangi fonksiyonlara sahip oldukları bilinmez, bilinse de bu bilgi kurum içerisinde yaygınlaşmaz. Dolayısıyla ihtiyaçların içeride mevcut bir uygulama üzerinde karşılanıp karşılanamayacağının net bir yanıtı verilemez.

İkinci alternatif olan yeni bir uygulama satın alınması ise, genellikle ekiplerin üçüncü alternatife olan yüksek eğilimi nedeniyle atlanmaktadır. Her şirkette, iletilen ihtiyaçları karşılamanın en doğru yönteminin içeride yeni bir uygulama geliştirmek olduğunu savunan BT yöneticileri ve yazılımcılar bulunur. Bu kişiler genelde şu gerekçeleri öne sürerler :

  1. Hiç bir kurumda olmayan çok özel isterlerimiz var
  2. İçeride geliştirmek, yeni bir ürün almaktan çok daha ucuza malolur
  3. Yeni teknolojilere hakimiz, en iyisini biz geliştiririz
  4. Uygulamayı biz geliştirirsek, yazılımcılar yeni şeyler üretme motivasyonuna sahip olur
  5. Uyulamayı geliştirince bize olan bağımlılık artar ve uzun süre iş garantimiz olur

Bu maddelerden her biri aşağıda sıraladığım büyük ve üstlenilmemesi gereken riskleri barındırmaktadır :

  1. Eğer hiç bir kurumda olmayan isterlerimiz varsa, muhtemelen bir şeyleri yanlış yapıyoruz demektir. Genellikle rutin ihtiyaçların karşılanması için piyasada kullanıma hazır olan çok fazla uygulama bulunabilir. İsterlerimize uygun bir uygulama geliştirmek yerine, hazır uygulamaların artık endüstri standartı haline gelmiş iş yapış şekillerini benimsemek, operasyonların yürütülmesi noktasında büyük kolaylık sağlayacaktır.
  2. Eğer geliştirilecek uygulamayı satarak gelir elde etme ihtimali yoksa; bu uygulamayı içeride geliştirmek genellikle hazır bir uygulama satın almaktan daha yüksek maliyete sahiptir. Geliştirilecek fonksiyon seti, hazır uygulamalarda bulunan setin çok daha kısıtlı bir hali olacak; her bir ek ister için ciddi analiz, geliştirme, test, operasyon eforlarına katlanmak zorunda kalınacaktır. İsterlerin doğruluğu ve kalitesi ise, isteri yapan kişilerin deneyim ve vizyonu ile kısıtlı kalacaktır. Bu riskle başa çıkarken, genellikle bütçeye yansımayan yazılım geliştirici ve iş birimi maaşları nedeniyle uygulamanın bedavaya malolduğu algısının ise doğru yönetilmesi gerekmektedir.
  3. Kurumların teknoloji uygulama kabiliyeti, genellikle ellerindeki kısıtlı yazılımcı kaynağıyla ve bu kişilerin bilgi birikimleriyle sınırlıdır. Bir uygulamanın geliştirilmesi için, takip etmekte zorlanacağınız kadar farklı teknoloji alternatifleri bulunmaktadır ve en önemli konulardan biri de bu alternatiflerden doğru olanları seçmek ve değişen teknolojilere zaman içerisinde adaptasyonu sağlamaktır. Eğer yazılımcılarınız güncel teknoloji trendlerine hakim değilse, teknoloji seçimleri muhtemelen en doğru olandan ziyade, kendi bildikleri ve kendilerini güvende hissettikleri yöntemden yana olacaktır. Tasarımı hatalı olan bir uygulamanın ise, sorunsuz ve uzun ömürlü olması düşünülemez. Bu işi tek sorumluluğu ürün geliştirmek olan firmalara bırakmak ve bizim için ar&ge yükünü üstlenmelerini beklemek daha akılcı bir çözüm olacaktır.
  4. Sıfırdan bir şeyler üretmek çoğu insan için motivasyon kaynağıdır, fakat BT yönetimi olarak çalışanlarınızın bu isteklerini kontrol altında tutmanız gerekmekte. Aksi durumda portföyünüz şimdiye kadar kurumda çalışmış olan tüm yazılımcılar için en az bir adet uygulama ile dolu olacaktır. Kurumların amacı insanların içgüdüsel isteklerini karşılamak değil, ayakta kalmaktır. Dolayısıyla kurumun çıkar ve standartları doğrultusunda hareket etmek her çalışanın asli görevi olmak zorundadır.
  5. Yazılımların yazılımcılara göbek bağıyla bağlı olması bireysel bakış açısıyla kulağa hoş gelse de, kurumsal anlamda riskli bir durumdur. Bu bağı oluşturmak hem iş sürekliliği açısından tehlikelidir, hem de kurumun elinin çalışan karşısında güçsüz olması sonucunu doğuracaktır. İçeride geliştirilen ve yalnızca birkaç yazılımcı tarafından destek verilebilen ürünlerden ziyade, piyasada geliştirici firma veya iş ortakları üzerinden destek alınabilecek ürünlere yönelmek stratejik açıdan önem arzetmektedir.

Bu saydığımız maddelerin neredeyse tamamına çözüm getirecek üç maddelik bir reçete ile yazımı sonlandırmak istiyorum :

  1. Etkin bir portföy yönetimi yapılması,
  2. Kurumun bulut bilişim stratejisinin oluşturulması,
  3. Kurumun açık kaynak stratejisinin oluşturulması.

Şimdiye kadarki yazılarda ilk maddeyi açıklamaya çalıştım, diğer maddelere ise sonraki yazılarda detaylı olarak değineceğim. Görüşmek dileğiyle..

Yazının orjinali : http://mustafaulus.com/2019/07/31/kurum-ici-yazilim-gelistirmenin-riskleri/

Bir cevap yazın