Я лично думаю, что разработчики никогда не должны взаимодействовать с клиентами. Поэтому у Вас есть команда Q/A. Они получают требования, вручают их разработчикам, обсуждают любые вопросы, планируют встречи прогресса разработки. Если у разработчиков есть вопросы, движение персоналу Q/A, ответственному за требования и документацию. Разработчики являются инженерами, не продавцами или посредниками. Им нужно дать среду для разработки стабильного, рабочего кода, не будучи отвлеченным клиентскими телефонными вызовами. Это - то, сколько компаний имеет дело с клиентами независимо от размера компании. В конце Ваши возможности завершения проекта вовремя выше чем тогда, когда Вы звонки клиента и решают изменить требования или запрашивают функцию. Который, вероятно, означал бы, что необходимо возвратиться несколько повторений и изменить что-то, что может повредить все завершенное мимо той точки.
Это двумерная задача упаковки бина (что NP сложнее) с дополнительными ограничениями. Я слышал, что имитированный отжиг довольно хорошо работает для схемотехники / микросхем.
Я на самом деле ищу реальные тестовые данные по проблеме упаковки больших бинов для Drools Planner .