Sosyal Yazılım Geliştirme

9-6-2008

OO (Object Oriented) programlamanın ve unit testing' in genel yazılım geliştirme pratiği olduğu, sosyal platformların patladığı ve RPG oyunlarına hasret olduğum şu günlerde aklımda yeni bir zihni sinir web projesi dolaşıyor.

Malum ben tembel adamım, konuşmasına konuşurum ama iş yapmaya gelince "işe gitmeyen" kişilerden biriyim. Bunu idrak etmem ile birlikte artık kendi kendime değerli olduğunu düşündüğüm ama eyleme geçirmedikten sonra hiç bir değeri olmayan fikirlerimi de daha hızlı şekilde buradan paylaşmaya çalışacağım. Bu da onlardan bir tanesi.

Ana Fikir

Bir yazılımın internet üzerinden sitenin üyeleri tarafından geliştirilmesi. Örnek olarak üyelerin birlikte bir "RSS Okuyucu" geliştirmesi. Her kişi bir metodu vs. geliştirecek ve daha sonradan bunların hepsi birleşince karşımıza kollektif olarak geliştirilmiş bir "RSS Okuyucu" çıkmış olacak.

Teknik İmplementasyon

Temel olarak bir kişi yazılım tasarımını mümkün olabilecek en detaylı şekilde tasarlar ve tüm OO iskeletini çıkartır. Bu iskeletten sonra her obje için yoğun şekilde Unit Test' ler geliştirilir. İşin bu kısmının bir kaç kişi arasında klasik açık kaynak kodlu yazılım geliştirme süreci gibi yapılması gerekebilir.

Bu adımdan sonra siteye giren üyeler istedikleri projeyi seçip herhangi bir bölümü kodlamaya başlayabilirler, daha sonradan kodlar siteye yüklenir veya direk orada yazılabilir. Bundan sonra eğer kodlar Unit Testlerin hepsini başarılı bir şekilde geçiyorsa onay aşamasına gelir.

Onayda bekleyen tüm kodlar gene başka kişiler tarafından onaylanır. Bu süreçlerin hepsindeki katılımcılar sitede deneyim kazanır. Site aynı bir oyun gibi "başarı - achievements" ve "experience - deneyim" puanları içermelidir. Dolayısıyla komüniti faktörü yüksek tutulmalıdır.

Bunun harici son implemantasyon ve geliştirme sürecindeki değişiklikler gene ana tasarımı yapan ekibin elinden geçmelidir, bundan sonra yazılımın son versiyonu hazır hale gelecektir. Bunlar harici sistem istenildiği gibi çalıştığı takdirde firmalar ticari olarak kendi projelerini gönderebilir ve her modüle fiyat koyabilirler. Bunun sonucu yazılımlarcılar site içerisindeki reytinglerine göre bu geliştirme işlerini yapabilir ve site üzerinden para da kazanabilirler.

Potansiyel Sorunlar

Ek olarak belirtmem gerekir ki bu fikir tamamen yeni değil, bu şekilde kurumsal yazılım geliştiren firmalar var ancak tüm çalışanları uzman ücretli geliştiriciler. Dolayısıyla OO iskeletini ve Unit Testleri tek merkezden geliştirip büyük gruplara outsource etmek zaten aktif olarak yapılan bir çalışma. (Bu konuda ünlü bir firma vardı ancak adını unuttum bilen varsa, bekliyorum).

Bunun yanında sisteme açık sosyal bir platform getirmek ve kendi içerisinde Ohloh tadında bir kültür oluşturmak hem eğlenceli olabilir hem de çok güzel çıktılar verebilir. Proje mevcut yazılımlara yeni bir eklenti ya da yeni özellikler eklemek için de kullanılabilir, dolayısıyla çok büyük projeler yerine ufak projeler de hızlı şekilde üretilebilir.

Recent Blog Posts

See all of the blog posts