8 Ağustos 2009 Cumartesi

Open Source for the Enterprise - Ya Da - Ehline Helaldir, Naehle Haram - Bölüm 3

Bu bölümde yazar, bir kurumun açık yazılım kullanmak için sahip olması gereken yeteneği irdelemiş. Hangi olgunluk seviyesindeki açık yazılımı kullanmak için hangi yeteneklere ihtiyaç var? Elemanlarınızın yetenek seviyesini ve alabileceğiniz riskin büyüklüğünü nasıl tespit edersiniz? IT departmanınızın açık yazılım yeteneklerini nasıl geliştirirsiniz?

Yazar harika bir örnek vermiş: Yönetime açık yazılım kullanmak için başvuran yazılım ekibini, ailesinden eve yavru köpek almasını isteyen çocuğa benzetiyor. Aile "bakacaksan olur tabii" diyor. Çocuk hevesini alıp acı gerçekleri fark edince hayvancağızla ilgilenmeyi kesiyor, pisliği temizlemek de anne babaya kalıyor. Bu kabusu yaşamamak için yazılım ekibinizin yetenek seviyesini belirlemeniz gerekiyor.

AÇIK YAZILIM YETENEK SEVİYELERİ


Yukarıdaki grafikten anlaşılacağı gibi, en büyük azınlığı yenilikçi dahiler oluşturuyor. Başka bir azınlıksa statükocular. Toplumun genelinin kafa yapısını da yansıtan bir grafik olduğunu fark ettiniz mi?

Şimdi bu seviyeleri kısaca inceleyelim:
  1. Başlangıç Seviyesi
    1. Açık yazılım paketlerinin kurulumu ve bu kurulumda kullanılan araç-gerecin (compiler, rpm, vs.) kullanımı hakkında yüzeysel bilgi sahibidir.
    2. Kullanılan işletim sistemi ve network sisteminden bihaberdir. Armut piş, ağzıma düş diyerek bu tür işleri operasyon ekibine yükler.
    3. Yazılım ayarlarından sadece temel olanlarıyla ilgilenirler: loglama konumunun belirlenmesi, portların seçimi, vs.
    4. Programın çalışması esnasında da sadece temel kontrolleri yapabilirler: program düzgün çalışmaya devam ediyor mu, donanım kaynakları yeterli mi, vs.
    5. Birden fazla açık yazılım birarada çalışıyorsa bunların arasındaki bağlantıyı sağlayabilir.
    Bu seviyedeki kullanıcılar bile açık yazılım kullanımı konusunda sıradan bilgisayar kullanıcısından epey öndedirler. Temel Linux, Apache, MySQL ve Mozilla Firefox bu seviyedeki kullanıcıların baş edebileceği seviyede örnekler...

  2. Orta Seviye: Bu seviyedeki kullanıcının başlangıç seviyesinin üstünde sahip olması gereken yetenekler şu şekilde:
    1. Kurulum sırasında derleme yapabilir.
    2. Programın ayarları için gerekirse koda girerek temel değişiklikler yapabilir. Bu değişikliğin ardından kodu tekrar derleyip kurulumu yeniler.
    3. Açık yazılım community'sine aşinadır. Forumlarda etkindir, soru da sorar cevap da verir.
    Bu seviyeden sonra bir çıta var; bu çıtayı yukarıdaki grafikte de görebilirsiniz. Ne mutlu "Ben bu çıtayı atladım" diyene.

  3. İleri Seviye: Çıtayı atlayan yazılımcının meziyetleri:
    1. Proje kodunun herhangi bir yerinde değişiklik yapabilir. Örneğin Linux çekirdeğine dalıp kafasına göre takılabilir.
    2. Proje kodunu, işletim sistemini, donanım kaynaklarını ve network'ü en iyi performans için evirip çevirebilir.
    3. Programın çalışması esnasında her türlü incelemeyi yapar, gerekirse çakılmaya karşı programlar yazar. Programın çalışmasına tamamen hakimdir.
    4. Kullanılan açık yazılımın kullandığı tüm framework'lere ve diğer açık yazılım araçlarına tamamen hakimdir. Gerekirse başka yazılımlarla beraber çalışması için koda kanca takar.
    5. Açık yazılımın yazıldığı programlama dilini adı gibi bilir. Ufak bug-fix'ler yapar, kodda istediği değişikliği yapar. Rahattır.
    6. Community'de kilit adamlardan sayılır. Açık yazılım camiasından güzel çevre yapmıştır, icabında uzman arkadaşlarından anında yardım alır.
    Bu kadar donanımlı bir adamı kadrolu çalıştırmanın ciddi bir tehlikesi var: işten çıkarsa göt gibi ortada kalırsınız. Yazarın bu tehlikeye karşı önerdiği çözüm bu seviyedeki yazılımcıları sadece kiralayarak, dış-kaynak olarak kullanmak.

  4. Uzman: Açık yazılım dünyasının yıldızları olan bu zatların donanımını anlatmaya pek gerek yok. Uzman işte. Ünlü oluyorlar genellikle.

Şimdi ekibinizdeki yazılımcılara bakın, yeteneklerini belirleyin; bir de kullanacağınız açık yazılımın olgunluğuna bakın. Mümkün görünüyor mu?

YETENEK VE RİSK


Açık yazılım kullanarak geliştirdiğiniz yazılımın kaldırabileceği risk seviyesi de kararınızda etkili olmalı. İşte risk toleransına göre projeler:
  1. Deneysel: Uçuş serbest. Dilediğiniz gibi bozun yapın.
  2. Düşük Öncelik: Kullanılan sistemlerdir fakat uzun süreli çakılmalar pek önem taşımaz. Proje yönetimi için kullanılan Wiki siteleri bu sınıfa örnek gösterilmiş.
  3. Bu Sınıfa İsim Bulamadım, Kitapta Operational Diyor: Bu uygulamaların 1-2 saatten fazla çakılı kalmaya tahammülü yoktur.
  4. Kritik: Mesela bankaların ATM sistemleri bu sınıfa giriyor. En küçük çakılmaya tahammülü yoktur. Kullanılan açık yazılımda risk varsa bu sınıf için pek de makul bir seçim olmaz.

AÇIK YAZILIM YETENEĞİNİN GELİŞTİRİLMESİ


Bu mesele bir gecede olacak iş değildir. Eğitimi de zaman ve emek yatırımıdır. Ticari yazılıma para yatırırsınız, açık yazılıma zaman yatırırsınız; yani yine para yatırırsınız. Para para para. Demir ustası demiri döve döve öğrenir. Yazılımcı da yapa boza öğrenir. Ticari yazılıma yatırımla kıyaslandığında daha avantajlıdır, şöyle ki, açık yazılım konusunda kendini eğiten bir IT ekibinin yeni açık yazılım projelerini benimseme süresi gitgide azalır. Açık yazılım eğitimi bir şirket politikasıdır, bir düşünce biçimidir. Sevgiler.

Hiç yorum yok:

Yorum Gönder