12 архитектурных работ: люди пишут программное обеспечение

Когда я впервые стал архитектором в NetApp, я думал, что задача состоит в том, чтобы нарисовать картинку, утвердить картинку, а затем волшебным образом будет написано программное обеспечение.

Моя ментальная модель заключалась в том, что существует массивный компилятор «power-point to product», и все, что мне нужно было сделать, это нарисовать power-point.

К моему удивлению, все было немного сложнее.

Люди пишут программы, а люди - не компьютеры. У людей есть эмоции, стремления, интересы, карьерные цели, антипатии, сильные и слабые стороны. И эти люди пишут программы.

Как это влияет на дизайн программной системы?

На первом этапе вам нужно выяснить, какая система правильная. Правильность или целесообразность системы не зависит от людей.

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

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

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

А иногда это означает, что вам нужно подождать, чтобы нанять нужных вам людей.

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

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

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

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

Вам не нужна внешняя мотивация, потому что вы не получаете лучшие работы людей.

А это означает множество вещей.

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

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

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

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

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

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

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

Всегда ли у меня получается? Нет, но это моя Полярная звезда.

(Кросс размещен с сайтаrongtool.kostadis.com)