Yazılım Geliştirme: Sadece Bir Oyun mu? | sıcak çevrimiçi

Adanali

Active member
Yazılım geliştirme için birçok metafor vardır. İlk başta bunu bir oyun olarak görmek saygısızlık gibi görünüyor. Bununla birlikte, daha derine inerseniz, bir takım paralellikler ortaya çıkar.


“Oyun” terimi eğlence anlamına gelir. Ancak yazılım geliştirme eğlenceli değildir; genellikle ciddi iş hedefleri ve genellikle büyük bütçeler gerektirir. Bu bir oyun değil.

Bununla birlikte, oyun teorisi, oyunlar ve diğer karar verme durumları için stratejilerle ilgilenen, bilimsel olarak kabul görmüş bir teoridir. Bu teorinin birçok uygulaması vardır. Savaşlar veya ekonomik prosedürler bile oyun teorisi kullanılarak incelenir ve bu şekilde daha iyi stratejiler geliştirilir.

Oyunlar bile sıradan geliyor. Sonuçta, çocuklar zaten oynuyor. Ancak burada bile, daha yakından incelendiğinde işler farklı. Bazı profesyoneller tüm hayatlarını satranç veya Asya go oyunu gibi oyunlara adarlar. Evrendeki atomların sayısından (yaklaşık 10^80) çok daha fazla akla gelebilecek Go konumu (yaklaşık 10^170) vardır. Bu önemsiz olmaktan çok uzak.

Yazılım geliştirme projelerini oyun olarak görmek bazı içgörülere yol açar:

  • Kazanmak için oynuyorsun. Bir yazılım projesini bir oyun olarak anlarsanız, kazanma koşulları hakkında soru ortaya çıkar. Bu da genellikle gözden kaçan sorulara yol açar: Tam olarak ne geliştirilmelidir? Gereksinimlere ek olarak, kalite hedefleri de bir rol oynar. Sistem özellikle güvenli mi olmalı? Veya kullanımı kolay mı? Sistem yeterince güvenli veya kullanımı yeterince kolay olduğunda zafer koşulları ne kadar doğrudur? Kazanmanın en kolay yolu nedir – gereksinimleri karşılamak için minimum çaba nedir? Neyi dışarıda bırakabilirsin? Bunlar, bir yazılım projesini gerçekten karlı bir şekilde uygulamak için iyi yaklaşımlardır.
  • Bir oyundaki her hamle zafere doğru çalışmalıdır. Yazılım projelerinde her aktivite aynı zamanda amaca katkı sağlamalıdır. Bu açık bir ifade olsa da, yazılım projeleri karmaşıktır. Sonuç olarak, önlemin değerli olup olmadığına karar vermek bazen o kadar kolay olmayabilir. Ve sonra öncelik var. Somut adımlar gerçekten bizi hedefimize en az çabayla yaklaştıran adımlar mı?
  • Bir oyunda, oyunun durumu her an tahtada takip edilebilir. Ne yazık ki, yazılım sanaldır, ancak testlerden, müşterilerden veya izlemeden alınan geri bildirimler, yazılımın durumunu gösterir. Yazılımın durumunu bilmek ve daha iyi geri bildirim almak, başarılı bir yazılım projesinin en önemli ön koşullarından biridir.
  • Sonuçta, yazılım geliştirme işbirlikçidir. Projede yer alan tüm insanlar hedefe doğru birlikte çalışır. Herkesin farklı bir rolü ve farklı becerileri vardır. Bu tam olarak Pandemic gibi işbirlikçi oyunların senaryosudur. Bu oyunun amacı, küresel bir vebanın patlak vermesini önlemektir. Her oyuncu farklı bir karakteri canlandırıyor: doktor özellikle zaten enfekte olanları iyileştirmede iyi, lojistikçi diğer karakterleri dünyayı dolaştırmada özellikle iyi. Öyleyse lojistikçi doktoru etrafa göndermeli mi – yoksa daha da acilen seyahat etmesi gereken başka karakterler var mı? Bu şekilde oyuncular, karakterler arasındaki sinerji yoluyla oyunu kazanmak için sürekli olarak koordine olurlar. Bir yazılım projesinde de benzer olmalıdır: dahil olan herkesin belirli becerileri ve içgörüleri vardır. Proje, yalnızca biri bunları mümkün olan en iyi şekilde birlikte kullanırsa başarılı bir şekilde sona erecektir. Tıpkı bir oyunda olduğu gibi, yaratıcılık da önemli bir rol oynar: çeşitli olasılıklar ve sinerjilerden ustaca yararlanılmalıdır.
tl; doktor


Oyunların zafer koşulları vardır. Her aktivite zafer koşullarına katkıda bulunmalı ve işbirliği yapmalısınız. Bu aynı zamanda yazılım geliştirmeye yardımcı olur.


Makalenin önceki bir versiyonuna yaptıkları yorumlar için meslektaşlarım Hanna Prinz, Tobias Erdle ve Sonja Scheungrab’a çok teşekkürler.


()



Haberin Sonu
 
Üst