Özgür Yazılım

10 Mar, 2009

Özgür Yazılım Proje Yönetimi - 2

Yazar: Hakan Uygun Kategori: teori

Bir önceki yazıda, özgür yazılım projeleri için topluluk yönetiminin öneminden bahsetmiştim. Bu yazıda devam ediyoruz.

Sürüm Yönetimi
Özgür yazılımın en önemli avantajlarından bir başkası ise sürüm yönetimindeki olası esnekliğidir. “Erken sürüm, sık sürüm” ilkesi ile kullanıcılar, uygulama üzerinde gerçekleşen en küçük değişiklikleri erkenden elde edebilirler. Benzer şekilde, modern yazılım yönetim modellerinden çevik süreçler de benzeri koşullar öne sürmektedirler.

Fakat burada dikkat edilmesi gereken önemli bir sorun bulunmaktadır. Uygulama türüne göre değişmekle birlikte, kullanıcısına sürekli kararlı olmayan sürümler veren bir proje kullanıcı kaybetmeye başlayacaktır. Unutulmamalıdır ki, kullanıcılar uygulamanızı kendi ihtiyaçlarını karşılaması için kullanırlar, uygulamanızın hata ayıklama sürecinin bir parçası olmak için değil. Dolayısı ile klasik alfa, beta, sürüm adayı, sürüm sıralamasını tamamen devre dışı bırakmamak gerekir.

Günümüzde otomatik derleme süreçleri, test süreçleri çeşitli olanaklar sunmaktadır. Dolayısı ile uygulamanızda bu olanakları sonuna kadar kullanarak farklı kullanıcı profillerine farklı ürünler sunabiliriz.

  • Geliştirici Sürümleri ( Günlük ya da haftalık )
  • Deneme sürümleri ( alfa, beta )
  • Kararlı sürüm

şeklinde ayrımlara gidilebilir.

Belgeleme
Bütün yazılım projelerinin problemleri arasında yetersiz belgeleme gelmektedir. Üretilen yazılım özgür olsun olmasın, geliştiricilerin motivasyonu ne olursa olsun hiç bir yazılım geliştirici yazdığı kod için belge yazmaktan hoşlanmaz. Belgeleme proje yönetiminin idari gücü doğrultusunda yapılacaktır.

Bu noktada belgelemeyi ikisi de çok önemli iki ana kısma ayırıp bakabiliriz: Geliştirici belgeleri, kullanıcı belgeleri.

Geliştirici belgeleri özgür bir yazılıma yeni geliştiricilerin katılması için çok önemli bir rol oynar. Uygulamanıza ilgi duyan bir geliştirici yazılmış olan kodları anlayabilmek için, yeni özellik eklemek ya da hata ayıklayabilmek için uygulamada neyin nerede nasıl yapıldığını hızla öğrenebilmesi gerekir. Bunun da en kolay yolu belgeleri okumaktan geçer.

Modern yazılım geliştirme araçları kod belgeleme için çeşitli yöntemler sumaktadır. Ama bunların kullanılıp kullanılmaması proje yönetiminin bu konudaki ısrarına bağlıdır.

Kullanıcı dokümantasyonu ise uygulamanızı kullanmak isteyen kullanıcılar için uygulamanın nasıl çalıştığını iyi bir şekilde anlatmalıdır. Uygulamanızın bir özelliği kullanıcının çok işine yarasa bile o özelliğin varlığını bilmeden kullanamayacaktır.

Geliştirici belgeleri doğal olarak geliştiriciler tarafından oluşturulurken, kullanıcı belgeleri için kullanıcı topluluğundan destek alınıyor olabilir. Böylece binlerce sayfalık belgeler ortaya çıkar, bunlar kullanıcı topluluğunun yapısına göre çeşitli dillere çevrilirler.

Araç Seti
Araç seti açısından bakıldığında, özgür yazılım projeleri açısından bence kritik önemde olan şey : Özgür yazılım geliştirmek için özgür araçlar kullanın!

Kullandığınız araç ücretsiz bile olsa özgür olmadığı sürece bir gün kullanım koşullarını değiştirebilir. Böyle bir durumda projeniz ciddi sıkıntılar yaşayacaktır. Özgür yazılım dünyası bunun örnekleri ile dolu, sanırım bu hikayelerin en meşhuru da Linux geliştirilmesi sırasında kullanılan sürüm takip sisteminin sonudur. Ücretsiz topluluk sürümü kullanılan yazılımın üreticisi firma, artık ürününü ücretsiz kullandırmak istemeyince Linux geliştirici ekibi kendi sürüm takip sistemlerini yazmak zorunda kaldılar.

Araçlar konusunda ikinci sırada ise her türlü yazılım projesi için geçerli olan kural geliyor “Doğru iş için doğru araçları seçin”.

Bir çok yazılım projesi, iş için hiç uygun olmasa da, o günlerde  yazılım topluluğunda moda olan dil ve teknolojilerle geliştirilmeye başlanıyor. Sadece 1 kişinin kullanacağı masa üstü uygulamasını kurumsal uygular için tasarlanmış uygulama sunucular üzerinde koşturmak ya da binlerce kişinin kullanacağı kurumsal web uygulamasını ANSI-C ile yazmaya çalışmak uç örnekler gibi görünüyor olabilir ama değiller.

Bu arada belirtmekte fayda var, doğru araç ve teknolojinin seçiminde, geliştirici topluluğunun bildiği ya da birikimi nediyle kolayca öğrenebileceği araçlar seçmekte, en az o araç ve teknolojinin yeteneği kadar önemlidir.

Ekosistem
Son sözü başta söyleyeyim : Özgür yazılımdan para kazanmak ayıp değildir!

Her türlü proje ama özellikle özgür yazılım projeleri ancak ekonomik destek varsa yaşarlar. Eğer uzun soluklu bir proje kurguluyorsanız, iş modelleri üzerinde düşünmeye başlamalısınız. Ekosistemi olmayan bir proje bir süre sonra geliştirici ve kullanıcılarını kaybetmeye başlar. Özgür yazılım depoları bu şekilde sonlanmış binlerce proje ile dolu.

Özgür yazılım ekositemi ve  iş modellerine dair, bu blogda daha detaylı çeşitli yazılar ve örnekler bulacaksınız…

İlgili yazılar:
  1. Özgür Yazılım Proje Yönetimi - 1 Bilişim projelerinin yönetimi, kendi iç dinamikleri nedeniyle başka projelerin yönetimine...

"Özgür Yazılım Proje Yönetimi - 2" için 1 yorum var

1 | okanakyuz

Nisan 3rd, 2009 at 12:34

Avatar

bence en önemlisi bu konuda GIT şuan en cok kullandığum dağıtım entegratörü versiyon kontrolörü svn bombacısı blabla kalkanı.

Yorum Girişi