1

Kurumsal uygulama ?

Herkese merhaba,

Bu yazımda kurumsal uygulama , genele bakıldığında ise kurumsal yazılım üzerine konuşuyor olacağız.Kurumların ihtiyaç duyabileceği yazılımlar , bunların geliştirilemesi gibi konuları ele alacağım.

Kurumsal yazılım nedir ?

Martin Fowler a göre , kurumsal uygulamalar, iş süreçlerinin otomasyonunu gerçekleştirmek ve desteklemek için geliştirilen ve genelde büyük miktarda ve karmaşık ilişkileri olan verinin görüntülenmesini (monitoring), işlenmesini (manipulation) ve saklanmasını (storage) sağlayan uygulamalardır.

Kurumsal kelime itibari bireysel olmayı değil , bir topluluğu ve organizasyonu ifade eder.Bu nedenle kurumsal uygulamalar bireysel kullanımdan daha çok organizasyonel ihtiyaçlara cevap veren ve bunlara odaklanan yazılımlardır diyebiliriz.

Kurumsal uygulamaların ortak özellikleri ;

  • Veri miktarının fazlalığı ,
  • Karmaşık veri ilişkileri ,
  • Belirlenmiş bir iş alanı,
  • Dağıtık bir sistem ve diğer sistemler ile entegrasyon,
  • Eş zamanlı erişim ,
  • Kullanıcı grupları için çoklu arayüz

Kimler tarafından geliştirilir ?

Belirlenmiş bir iş alanında uzmanlaşmış yazılım firmaları tarafından geliştirilir ve pazara sunulur.Tüketici firmalar tarafından satın alınan yazılım ürününün desteği yine geliştirici firma tarafından verilir ve ücretlendirilir.Eğer geliştirici firmaya bağlı olmak istenmiyorsa kaynak kodu da satın alması gerekir.Tabi satın alınan kod üzerinde özelleştirmelerin ve hataların giderimi için yeni bir geliştirici takıma ihtiyaç vardır.Artık küçük,orta veya büyük ölçekli her şirketin kendine ait bilgi teknolojileri departmanı vardır.Eğer bu departmanlar da kendi kurumsal yazılımlarınızı kendiniz geliştirmek istiyorsanız bunun için yazılım altyapı takımına ihtiyaç vardır.

Yazılım şirketlerin de ya da yazılım departmanlarını yaptıkları işe göre ikiye ayırabiliriz.Altyapı takımı sıfırdan geliştirilen kurumsal bir yazılım ürünü ortaya koyar.Ortaya çıkan bu yazılım ürünü iş kollarına ait yazılım ekibi tarafından devir alınır ve bu ekipler iş kolundan gelen istek ve hata bildirimlerini gidermek ile sorumludur.Burada asıl yazılım geliştirmedeki çekirdek ekip altyapı geliştirm ekibidir.

Belirli bir iş ihtiyacı için yazılım geliştirirken ;

  • Yazılım mühendisleri : yazılımsal isteklerini yerinde getiren ,
  • Yazılım mimarları / danışmanı : geliştirilecek yazılımın her seviyede tasarımını yapan ve ilişkileri belirleyen kişi,
  • Proje yöneticisi : proje planlama,zamanlama maliyet gibi unsurların kontrol edilmesi ve yönetilmesinde sorumlu kişi,
  • İş alanı uzmanı / danışman : iç(internal) veya dış(external) kaynak olarak projeye dahil edilebilecek belirlenmiş iş alanında deneyimi olan  istek ve ihityaçları kavramış kişiler

gibi kişiler tarafından geliştirilir.

Bu takımda yer alacak yazılım mühendisleri diğer bir deyişle yazılımcılar sadece kodcu olmamalıdır.Yazılım methodolojilerinden haberi olan, ortak bazı tasarım problemlerin çözümü için kullanılan tasarım desenlerini bilen ve daha çok yazılım disiplini hakkında bilgisi olan ve bu düşüncede yazılım geliştiren kişiler seçilmelidir.Özellikle yazılım geliştiriciler kod yazarken hiç bir şeyi varsaymamalı ve değişme olasılığı olan her şeyi paramterik hale getirmelidir.Yazılım geliştiriciler sadece yazılım ürününü geliştirmek le değil yazılım geliştirmek için gerekli ortam ve araçların hazırlanmasından da (altyapı) sorumludur.Bunun la ilgili daha önce şirketlerde yazılım geliştirme organizasyonu başlıklı bir yazı yazmıştım buradan ulaşabilirsiniz.

Kurumsal uygulama kategorileri ?

  • Müşteri ilişkileri yönetimi (CRM- Customer Relationship Management)
  • Kurumsal kaynak planlama (ERP- Enterprise Resource Planning)
  • Kurumsal kimlik yönetimi
  • Çağrı merkezi ve müşteri destek yazılımları (Call center and customer support)
  • Hastane yönetim bilgi sistemleri
  • Üniversite öğrenci işleri bilgi sistemleri
  • Otomatik faturalama sistemleri
  • Finansal uygulama yazılımları
  • Kurumsal içerik yönetimi yazılımları
  • İş süreçleri yönetimi (Business process management)
  • iş zekası yazılımları (Business Intelligence)
  • Kurumsal mesajlaşma ve işbirliği yazılımları (Messaging and collaboration systems)
  • Döküman yönetim sistemi
  • İnsan kaynakları yazılımları (HR- Human resources management)
  • İntranet için Portal

Kurumsal uygulama geliştirme problemleri

  • Transaction problemleri
  • Fiziksel katman problemleri
  • İş ve veri yapılarının uyumu
  • Modüler yapının gerçekten modüler şeklide tasarlanmaması, aşırı modül bağımlılık
  • Thirdpart bileşenlerde oluşan sorunların tüm sistemi etkilemesi , thirdpart bileşenlerin her zaman çalışacağının varsayılması ve bu bileşenlerin gerektiği gibi tasarlanmaması
  • Multi-Threading problemleri
  • Proje geliştirilirken herşeyin varsayılması (hardcoded içerikler , parameterik yapılmayan kontroller)
  • Yazılım tasarımında ve mimarideki hatalı tasarımlar …

Soru ???

Küçük ve orta seviyeli bir yazılım şirketinin ihtiyaç duyacağı tüm yazılımlar open source gücü ile karşılanabilir mi ?

Poster : Enterprise uygulama geliştirme atlası (Bonus)

Bu poster kurumsal yazılım geliştirirken maliyeti azaltmak, geliri arttırmak ve yeni pazarlar yakalamak için doğru araçları seçmeye yardımcı oluyor ve bunu 2 sayfalık bir pdf de topluyor.Bence çıktısını alıp masanızın bir köşesine koymalısınız 😀 .Kendi blogum da bunu duyurmuştum ve ana ve altbaşlıklar halide yazmıştım.

poster_1

Posteri hakkında bilgi için http://www.appdeveloperatlas.com adresini ziyaret edebilirsiniz.

Kaynaklar

  1. http://www.webopedia.com/TERM/E/enterprise_application.html
  2. http://en.wikipedia.org/wiki/Enterprise_software

Bu yazımından da bu kadar başka bir yazıda görüşmek üzere…

Yunus Emre Keskin

One Comment

Bir Cevap Yazın