Архитектурные решения: воинственный противник и правило трех

Вот несколько простых правил, которые очень помогли мне в годы моей работы архитектором программного обеспечения.

Правило трех

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

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

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

Правило трех

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

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

Воинственный противоположный

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

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

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

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

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

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

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

Правило трех

И поскольку мы говорим о правиле трех, я не могу упустить возможность упомянуть о правиле трех на уровне проектирования: дублирования не будет, пока у вас не будет трех копий одного и того же кода или логики.

В третий раз, когда вы пишете один и тот же фрагмент логики, вы можете оценить, стоит ли перемещать этот фрагмент кода в общую библиотеку или класс.

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


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

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

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *