Мысли, мешающие нам отправиться в бесконечное путешествие

Обсуждения являются фундаментальной частью разработки программного обеспечения, они необходимы для повышения масштабируемости. В ходе этих обсуждений можно выявить несколько закономерностей, которые позволяют нам выявлять проблемы на раннем этапе, когда они могут повлиять на качество результата. Одно из них - Правильное решение.

Правильное решение - это обычное выражение в разработке программного обеспечения. Он может принимать разные формы, такие как «лучшее решение», «делать правильно», «делать лучше» или «улучшать». Все они имеют одну и ту же основу:

Тот факт, что кто-то верит в лучший ответ, не означает, что это лучший ответ.

В большинстве программных проектов необходим интуитивный анализ проблемы, потому что более приемлемый ответ заключается в достижении наилучшего результата среди множества переменных (бизнес-требования, человеческие ресурсы, сложность кода, технический долг и т. Д.). Главный вопрос в том, что «лучшее» или «правильное» сложно измерить и зависит от каждого конкретного случая.

Так же, как разборчивость, правильное решение может быть субъективным или неточным, если к нему пришел один человек, потому что оно основывается на текущих знаниях и душевном состоянии этого человека. Однако при работе в команде шансы получить субъективные и неточные ответы ниже, хотя они по-прежнему ограничиваются уровнем знаний членов этой команды. Кроме того, два человека из одной команды могут предложить решение, которое будет выглядеть одинаково для сути текущей проблемы, но будет различным для крайних случаев в лучшую или худшую сторону.

Причина, по которой очень сложно (как индивидуально, так и в команде) найти правильное решение проблемы, заключается в том, что человеческие знания во всех областях слишком обширны. Даже если бы мы могли держать в кармане текущие знания всего человечества, нам еще многое предстоит открыть. Единственный способ действительно придумать правильное решение - это знать все, включая то, что неизвестно, и использовать это как попытку выработать наилучший возможный и измеримый результат.

Единственный способ действительно придумать правильное решение - это знать все, включая то, что неизвестно, и использовать это как попытку выработать наилучший возможный и измеримый результат.

К сожалению, возможность измерить что-либо в этой отрасли - проблема сама по себе. Каждое конкретное обстоятельство динамично. Переменные часто меняются, и мы не можем эффективно предсказать результат, используя, например, эффективные модели, такие как научный метод. Знать все (в том числе и неизвестное) - утопия.

Разумно заключить, что правильное решение - заблуждение. Этого невозможно достичь.

Если мы понимаем, что правильное решение недостижимо, мы можем, по крайней мере, попытаться подойти к нему как можно ближе, учитывая текущие знания или обстоятельства отдельного человека или группы. Даже если мы не можем найти правильное решение, которое будет одинаковым для всех ситуаций, мы все равно можем что-то поэкспериментировать, чтобы увидеть, работает ли оно в нашем контексте. Если он работает, это не означает, что он будет работать во всех случаях, но, по крайней мере, это означает, что он работает для бизнес-требований, человеческих ресурсов, сложности кода или технического долга, который у нас есть прямо сейчас.

Не существует такой вещи, как подходящее решение, есть только лучшее решение, которое мы можем придумать, учитывая текущие знания и обстоятельства.

Код уже является устаревшим на момент его попадания в основную ветвь, решение уже принято в момент, когда он поступает в производство. Единственное, что мы можем сделать, - это улучшить наши собственные возможности, чтобы в следующий раз они стали лучше.

Достижение правильного решения - это миф, который не означает, что мы должны прекратить использовать этот термин, просто он не должен мешать нам становиться все ближе и ближе к нему каждый день на пути к постоянному совершенствованию. Если мы поступим так, мы в конечном итоге достигнем состояния, в котором мы будем решать проблемы быстрее и лучше, чем то, что мы делали давным-давно.

Однако, если мы не чувствуем, что улучшаемся с каждым днем, это означает, что мы не приближаемся еще больше.

И это, друг мой, гораздо большая проблема.

Спасибо за прочтение. Если у вас есть отзывы, напишите мне в Twitter, Facebook или Github.