Итак, выяснили, что проблема в элементарном недопонимании, а вовсе не в отсутствии профессионализма отдельно взятых сотрудников. Как бороться? Все документировать и писать ТЗ? Но, во-первых, оно устареет еще раньше, чем будет написано. А во-вторых, мне хочется, чтобы программисты участвовали в принятии решений и несли за них ответственность а не просто кодировали. Зря, что ли, мы собрали лучших программистов в СНГ.
Есть и другой вариант – высказывать свои сомнения, слушать, что говорят другие члены команды, задавать вопросы и пытаться разобраться в том, почему предлагается то или иное решение. Ведь если вдуматься, проблемы можно было бы избежать, если бы программист вместо «Надо – сделаю» сказал «Бред какой, не буду я это делать потому, что...». Или проектировщик потрудился удостовериться, что его правильно понимают, а услышав угрюмый тон не отмахнулся, а спросил «Что тебе не нравится? Давай обсуждать».
Теоретические «можно было бы, если бы» звучат неубедительно и банально. Поэтому, вот вам результаты живого неподдельного эксперимента.