Главная проблема, как мне кажется, что программы пишут программисты, которые не представляют себе сам процесс и тонкости проектирования.
Тоже соглашусь с этим. Никто лучше проектировщика не скажет какой должна быть программа, чтобы она была для него полезна и удобна.
caliper, а как Вы себе сами представляете то что хотите сделать?
Следуя из выше написанного, я вижу это так:
1. Специалисты, заинтересованные в программе, говорят, что необходимо реализовать
2. Я выступаю в роли исполнителя - реализую в программе, то что было предложено
3. Специалисты берут программу в тестирование, смотрят, что реализовано и высказывают новые требования (возвращаемся к пункту 1)
Таким образом постепенно, итерация за итерацией мы получим работоспособное приложение.