Sosyal Yazılım Geliştirme

09.06.2008

Okuyucu : 759
Günlük Okuyucu : 10,4

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

  • Kod ve Unit Testlerin Güvenli Ortamda Olması, Yani upload edilen kodların güvenli şekilde çalıştırılması,
  • Proje geliştirici ana ekibin işini yapabiliyor olması,
  • Sistemin verimli şekilde sadece belli dillerde çalışabilecek olması. Muhtemelen en verimli diller .NET ve Java olacaktır,
  • Bir sistemi bir defa tasarlamak pek mümkün olmadığından ana iskeletteki tasarım değişikliklerini ve revizyonların getireceği 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.

Yorumlar

RSS Bu makalenin yorumlarını RSS ile takip et!

çok güzel bir proje. En büyük sorunun kod güvenligi olaibilecegini düsünüyorum. ama yinede son kontrol eden kisiler bunu dikkatli sekilde yaparsa en aza indirebilirler..

bir iki öneride ben sunayim..
>>süre olabilir. belli bir süre içinde gerekli modülü bitirene ekstra puan verilebilir.
>>ayni projede birden fazla modül bitirene yine ekstra puanlar verilebilir..

Aslinda bunun gibi pek çok öneri getirebilirim geitirileebilir getirilecektirde zaten :) simdilik sadece kabataslak anlatmissiniz. insALLAH proje hayata geçirilme asamasina geldiginde fikirlerimizi de paylasma firsati verilir :)

Selametle Kalasin abi.

Erdem TUZEN [ # | 10.06.2008 ]

güzel bir fikir. bir zamanlar ucundan birazi buna benzeyen bir proje fikrim vardi. Fakat bende senin gibi oldugum için projeyi hayata geçirememistim. Umarim birileri bu yaziyi okur ve projeyi hayata geçirmeye çalisir.

Semih TURNA [ # | 10.06.2008 ]

Tabi bunda oncelikle standardlar da belirtilmeli, kodda kullanilacak degisken isimlendirmelerinden tutun da izlenecek metodolojilere kadar. Bu isin bu sekilde yapilmasi bana biraz zor gorunuyor bilmiyorum, kismet :)

Tuna Toksoz [ # | 10.06.2008 ]

Tabi bunda oncelikle standardlar da belirtilmeli,
Standardlar belirlenebilir ama bence gerkli degil, obje disariya dogru hareket ettikten sonra herkes mutlu olacaktir, kendi icerisinde degiskenler A,B,C olsa bile. Ama zaten ayni zamanda baska birisi hemewn o fonksiyona atlayip (wiki gibi) direk kodu degsitirip yeni bir versiyonunu gonderebilir.

Ferruh Mavituna [ # | 10.06.2008 ]

"Bir sistemi bir defa tasarlamak pek mümkün olmadigindan ana iskeletteki tasarim degisikliklerini ve revizyonlarin getirecegi sorunlar."

Aslinda sanirim bu madde üzerinde düsündügünü gösteriyor, ama yine de, proje sonrasi ürünün bakim(maintenance) faaliyetleri (bug'lar, lokalizasyonlar vs ..) baska ekipler tarafindan mi yürütülecek ?

Bu konuda bende çok tecrübeli sayilmam, iyi ki böyle bir topic açmissin, bizlerde istifade ederiz insaallah.

Gurkan Senes [ # | 11.06.2008 ]

yada titan quest oyna?!

1 [ # | 11.06.2008 ]

baska ekipler tarafindan mi yürütülecek ?

Fikir daha cok kim isterse o yurutecek ama muhtemelen projenin tepesinde 3-5 tene ana kadro olmasi gerekir,

Ferruh Mavituna [ # | 11.06.2008 ]

titan quest
Onu oynayali cok oldu :)

Ferruh Mavituna [ # | 11.06.2008 ]

en iyisi fallout a kadar iyice çalismak, önümüzdeki aylara yatirim yapmak *;*

1 [ # | 11.06.2008 ]

eger yanlis anlamadiysam , ben .net te wordpress in plugin sistemine özenip buna benzer ama baya ilkel bisey yapmayi planliyordum ne zamandir, 1 ay önce yaptim, bana disaridan is yapan arkadaslara istedigim modülü tarif ediyorum onlar hazirliyor ve bana klasör halinde gönderiyorlar klasörü "modüller" klasörüne yapistirmam yeterli oluyor suan için veritabanina eklemelerde manuel oluyor, ama onuda güvenli bi sekilde query yaptirarak çözebilirsem sanirim ileriye dönük gelistirebilirim..
biseyler denemek isteyen arkadaslarla paslasabiliriz.

aslinda web tabanli bir orm yapabilirsek ve sonradan gelenler sadece yeni eklemeler yapabilse eskiler üzerinde degistirme yapamazsa kisa sürede çok güzel bir noktaya gelebilir bence

sinan [ # | 15.06.2008 ]

Yorum Ekle





Kullanılabilir Taglar : [<blockquote>] [<strong>] [<em>]

Sosyal Yazılım Geliştirme ile İlişkili Olabilecek Yazılar - Haberler

Weird My.Settings behaviour in Web Site Projects
Getting Real - Kitap Notları
Tekerleği Yeniden Keşfetmeyin
Wordpress Kurulumu ve Alınacak Dersler
Korsan Yazılımsız İki Yıl

Diğer Yazılar

Neredeyim ?

Ferruh.Mavituna » Haberler » Sosyal Yazılım Geliştirme

Ferruh Mavituna
© 2002-2007, Ferruh Mavituna

Sabit IP Adresi : 81.22.99.133, SSL Erişimi, Hakkında