Нерешаемых задач не бывает
Вопрос всегда лишь в ресурсах: денежных, временных, человеческих, и так далее.
К этой мудрости я пришёл после того, как ещё на начальных этапах своей карьеры иногда слышал от коллег-разработчиков такой ответ руководству: это невозможно сделать, а также после того, как и сам однажды реализовал то, что казалось невозможным, просто запретив себе думать в соответствующих категориях и приняв возможность как данность, к которой я просто должен прийти. Да и потому, что просто надо.
С годами уже убедился, насколько созидательным является переход из позиции "это невозможно" в "это возможно, но для этого потребуется X, Y, Z...", особенно когда уже сильно позже стал больше изучать архитектуру, но об этом чуть позже.
На поверхностно-бытовом уровне должно быть очевидно, насколько деструктивна и токсична позиция "это невозможно". Все мы хотели бы уметь решать любые задачи и проблемы, а с данной позицией мы словно засовываем голову в песок и запрещаем себе решать проблему. Но я не хочу превращаться в очередного инфо-цыгана с невероятными историями об успешном успехе и о том, как "поверить в себя". Напротив, я хочу описать данный феномен ближе к "земле", почему эта позиция непосредственно мешает и исполнителю, и заказчику.
Когда вам прилетает задача, которую "невозможно сделать", вы в первую очередь расписываетесь в собственной некомпетенции. Когда вы как заказчик ставите задачу, которую "невозможно" выполнить по мнению исполнителей, вы стопоритесь. Не мне, конечно, говорить от имени заказчиков, но я действительно не раз наблюдал ситуации, когда бизнес становился заложником собственных кадров, потому что они действительно своей харизмой и авторитетом убеждали его в невозможности тех или иных решений. Ведь как ни крути, исполнение той или иной задачи - это зона ответственности самих исполнителей, в том числе (и это ключевой момент) по части их квалификации и экспертизе в своей профессии, потому заказчик им и доверяет.
Но что на самом деле таится в наших ответах "это невозможно"? В большинстве случаев либо нежелание декомпозировать проблему на ресурсы в принципе (наша лень либо предубежденнность) - но это больше про бытовые "невозможности". Либо, что как правило происходит в корпоративной среде, осознаваемое явно или нет отсутствие ресурса на решение это задачи. Заказчик просит вас построить мост, а вы знаете, что у вас даже инструментов нет, поэтому вы с лёгкостью отвечаете, что это невозможно. Или у вас просто некому строить мост, вы тоже отвечаете "невозможно". Заказчик просит вас внедрить новую фичу, а вы понимаете, что она никак не вписывается в текущую архитектуру без костылей? Снова невозможно.
Но где здесь ошибка в мышлении, усложняющая нам жизнь и работу? Мы взяли на себя не свою ответственность. Мы зачем-то взяли на себя ответственность за ресурсы, необходимые на решение этой задачи. Или даже в каком-то смысле за заказчика решили, что у него таких ресурсов нет и не будет. Зачем? Ресурсы - это его головная боль (зона ответственности), не ваша. Ваша зона ответственности заключается только в вашей квалификации и навыках, в исполнении самой задачи и её оценке. В том числе оценке того, какие ресурсы нужны для её выполнения. Каким-то ресурсом уже являетесь вы сами: ваша квалификация - это тоже ресурс. Ваше время - это тоже ресурс. Всё остальное вы озвучиваете заказчику. Вы понимаете, что ваших навыков не совсем достаточно для решения задачи? "Конвертируйте" это тоже в ресурсы: вам нужно время для обучения недостающим навыкам, или вам нужны дополнительные люди с уже имеющимися навыками.
Выше я упомянул архитектуру, и это как раз про неё. Один из фундаментальных принципов в ней: принцип единственной ответственности (SRP). Никогда не берите на себя не свою ответственность :) По крайней мере самостоятельно, ни у кого не спросив и никому не сообщив об этом. Где начинается размытая ответственность, там начинается бардак и неразбериха.