Son birkaç yarıyılda bazı yazılım tasarım dersleri alıyorum ve biçimciliğin birçok faydasını görürken, programın kendisi hakkında hiçbir şey söylemediğini hissediyorum:
- Programın neler yapabileceğini tartışsa da, Programın Kullanım Durumu spesifikasyonundan nasıl çalışacağını söyleyemezsiniz.
- Kalite gereksinimleri içermesine rağmen, kullanıcı deneyimi hakkında gereksinimler belgesinden hiçbir şey anlatamazsınız.
- Sekans diyagramları, yazılımın çağrı yığını olarak nasıl çalıştığının iyi bir açıklamasıdır, ancak çok sınırlıdır ve genel sistemin oldukça kısmi bir görünümünü verir.
- Sınıf diyagramları, sistemin nasıl kurulduğunu açıklamak için mükemmeldir, ancak yazılımın ne olması gerektiğini anlamanıza yardımcı olmak için tamamen işe yaramaz.
Sonuçta bu biçimciliğin neresinde: program nasıl görünüyor, çalışıyor ve nasıl bir deneyim sunuyor? Bundan tasarım yapmak daha anlamlı değil mi? Programın bir prototip aracılığıyla nasıl çalışması gerektiğini ve bunu gerçek anlamda uygulamak için nasıl çaba sarf etmesi daha iyi değil mi?
Muhtemelen teorisyenler tarafından mühendislik öğretilmekten acı çektiğimi biliyorum, ama şunu sormam gerekiyor, bunu sektörde yapıyorlar mı? İnsanlar programın gerçekte ne olduğunu, neye uyması gerektiğini nasıl anlar? İnsanlar çok fazla prototip mi yapıyorlar, yoksa çoğunlukla UML gibi resmi araçları kullanıyorlar mı ve henüz onları kullanmadım mı?