Как-то мне задали вопрос:
«Что, если ты спроектируешь интерфейс так, что его будет слишком сложно разработать на выбранном стеке? Что делать разработчикам, которые могут сделать в десять раз быстрее, проще и дешевле, но у тебя в документации сказано, что надо по-другому? Тратить лишнее время и деньги?»
Отвечаю. Во время проектирования я плотно общаюсь с заказчиком. Есть некоторые вещи, настолько важные именно в том виде, в котором их ожидает заказчик (и, соответственно, бизнес), что их нужно сделать именно так, как указано в проектной документации.
Для таких вещей я даже не ленюсь и иногда делаю пометки для разработчиков. Например: «Здесь мы решили сделать такую финтифлюшку, потому что это важно каждому второму клиенту заказчика». Чтобы разработчики понимали, по какой такой причине им иногда приходится делать довольно нелогичные штуки, и почему не стоит злиться на «недалёких» проектировщиков.
А есть вещи, от которых требуется лишь их наличие. А как именно они будут сделаны — уже не важно.
Чем больше я делаю проектов, тем лучше сам разбираюсь, где как и что будет проще или сложнее разработать. И поэтому всё реже получаю претензий от программистов.
Но иногда я встречаюсь с какими-то вещами впервые и совершенно в них не разбираюсь. И если эти вещи попадают в категорию «не важно как, лишь бы работало», — я специально пишу комментарий для разработчиков. Например, такой: «Я не уверен, что спроектировал здесь оптимальное решение. Если вы видите, как сделать лучше и быстрее — сделайте».