Bilişim projelerinin yönetimi, kendi iç dinamikleri nedeniyle başka projelerin yönetimine öre farklılık göstermektedir. Bu farklılıkların en önemlisi sanırım teknoloji ve ihtiyaçların çok hızlı bir şekilde değişiminden kaynaklanmaktadır.
Bilişim projelerinin, özelde ise yazılım projelerinin yönetim ve geliştirme modelleri üzerine son yıllarda çok ciddi araştırmalar yapılmaktadır. Bu konuda internet üzerinde yeterince kaynak bulabilirsiniz.
Bu yazının içeriğini ise genel olarak bilişim projelerinin yönetim sorun ve teknikleri değil, Özgür Yazılım Projelerin’in klasik anlamda bilişim projelerinden farklılıkları oluşturacaktır.
Geliştirme Modeli
Özgür yazlım geliştirme modelleri kabaca ikiye ayrılabilir kapalı ve açık geliştirme.
Bazı özgür yazılım projeleri, özellikle bir şirket tarafından yürütülen yazılım projeleri, kapalı geliştirme modelini tercih edebilmektedirler. Bu model de geliştirme süreci, sürüm takip sistemi v.b. kaynaklar sadece geliştirici ekip tarafından erişilebilir durumdadır. Ürün aşamasına gelindiğinde, ortaya özgür yazılım çıkar. Bu model özellikle geliştirme sürecinde çok fazla gürültü istenmediği durumlarda tercih edilmektedir.
Alternatifi açık model de ise geliştirme süreci dileyen herkese açıktır. Geliştirici tartışmaları, sürüm takip sistemi, test ve derleme süreci açık olarak çalışmaktadır. Bu durum özgür yazılımın en önemli avantajını oluşturmaktadır. Projenize normal şartlarda dahil edemeyeceğiniz iş gücü ve kaynaklar bu geliştirme modeli ile projenize dahil olabilirler.
Topluluk Yönetimi
Yukarıda sayılan modellerden hangisi tercih edilirse edilsin, bir özgür yazılım projesi eninde sonunda bir topluluğa dayanacaktır ve başarısını da bu topluluğun yönetimi belirleyecektir.
Projeniz ister yerel ister küresel olsun, proje çevresinde bir topluluğun oluşabilmesini projenin ve proje yönetiminin erişilebilir olması sağlayacaktır. Dolayısı ile projenize teknolojinin sağladığı her türlü iletişim olanağını dahil etmelisiniz. Projenin bir web sitesi, hata giriş sistemi, tartışma forumu, e-posta listeleri, sosyal ağlar üzerinde grupları v.b. olmalıdır.
Bir özgür yazılım projesinin çevresinde, yönetim koşul ve dinamikleri farklı iki temel topluluk oluşacaktır : geliştirici topluluğu ve kullanıcı topluluğu.
Geliştirici topluğu
İyi bir geliştirici topluluğu tesadüfen oluşmaz. Proje yönetiminin bu konuda çaba sarf etmesi gerekir. Projede yer alan her geliştirici aynı kapasitede değildir. Herkesten aynı işi aynı kalitede yapması beklenemez. Projeye dahil olan yeni geliştiricilerin projede daha etkin olabilmesi için bir eğitim ve yardımlaşma ortamı sağlanmalıdır. Projenin büyüklüğüne göre belkide usta - çırak modelleri kullanılabilir.
Proje içerisinde yetki ve sorumluluklar paylaşılmalıdır. Bir kişi her türlü kararı alamaz ve her işi yapamaz. Fakat bu özellikle tartışmalı konularda en son kararı bir kişinin vermesi gerekliliğini değiştirmez.
Projenin kurucusu proje lideri olmak zorunda değildir. Proje liderliği özgür yazılım projelerinde diğer proje yönetimlerine göre daha fazla önem teşkil eder. Başarılı bir lider olamayan bütün projelere bir müddet sonra geliştirici topluluğunu kaybedecek ve ölü özgür yazılım projelerinden biri haline gelecektir.
Özgür yazılım projeleri de benzer başka sosyal gruplarda olduğu gibi zaman zaman topulukla birlikte çalışmaya yatkın olmayan kişileri çeker. Bu noktada yarattığı tartışmalar, gerginlikler, ekibin enerjisini boşa harcanması ile topluğa faydadan çok zarar vermeye başlayan geliştiricileri projeden uzaklaştırmak, fazla yüklerden kurtulmak özgür yazılım projeleri için büyük önem taşır.
Zaman zaman projeler geliştirici topluluğundaki tartışmalar ( teknik, politik v.b. ) çözülemeyeceği aşamaya gelebilirler. Böyle durumlarda sadece özgür yazılım projelerine özgü bir durum ortaya çıkar : Fork - Çatallama.
Geliştiriciler için burada söylenebilecek tek şey var, mümkün ise yapmayın. Çünkü bir fork geliştirici topluluğunu bölecek ve geliştirme sürecini aksatacaktır. Çoğu durumda oluşan iki projeden biri ölür. Buna rağmen her zaman olumsuz bir durum olarak da düşünülmemelidir.
Bu arada fork ihtimali proje yönetimi için de önemli tehtit unsurudur. Çoğu zaman fork yapmaya gerek kalmadan problemlerin çözülmesini sağlayabilir.
Kullanıcı Topluluğu
Özgür olsun ya da olmasın bir yazılım projesinin başarısı, ne kadar çok kullanıcının o yazılımı kullandığı ile ölçülecektir. Özgür yazılım projesi açısından bakarsak ne kadar çok kullanıcı yazılımınızı kullanıyor ise proje topluluğunuzu o kadar hareketli olacak, o kadar fazla geliştirici projenizle ilgilemeye başlayacaktır.
Kullanıcı topluluğunun davranış biçimi ise geliştirici topluluğundan çok farklıdır. Bir kullanıcı topluluğu için akıldan çıkarılmaması gereken bir kaç şey var :
- Kullanıcı, ihtiyacını sizden daha iyi bilir!
- Kullanıcılar uygulamanızı işlerini görmek için kullanırlar, uygulamanızı test etmek için değil
- Kullanıcılar teknik kişiler değildirler,
- Kullanıcılarla aynı dili konuşmak sizin sorumluluğunuzdur.
Tüm bunlara rağmen kullanıcılar özgür yazılım projelerine çok şey katarlar.
- Uygulamanın gelişimi için çok önemli olan bilgilerini ve ihtiyaçlarını paylaşırlar
- Bir birlerine yardım ederek uygulamanın etkin kullanımını sağlarlar
- Hata ayıklama süreçlerinde rol alırlar
- Dokümantasyon ve test süreçlerinde aktif rol almaya başlarlar
- Hatta bir kısmı bir süre sonra geliştirici bile olabilirler
Bir sonraki yazıda sürüm yönetimi, belgeleme, ekosistem başlıklarıyla devam edeceğiz…