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

Зачем вам читать эту статью? Почему бы не прочитать процитированную мной статью? Почему бы не прочитать количество сообщений, которые я нашел, когда искал «Итак, вы хотите быть архитектором»? Что ж, без злого умысла или негативных намерений, но объективно они довольно механичны; знать A, затем выучить B, затем попробовать C. Многие из них либо слишком технические, либо разрозненные. Моя точка зрения, однако, сосредоточена на простоте с глубиной и переплетается со связями, которые делают его более плавным, а не резким набором контрольных списков.

Итак, на этом я хотел бы представить две вещи: себя и единственную наиболее важную черту, которую нужно иметь как архитектор; субъективно, конечно, но я постараюсь сделать все возможное. Меня зовут Джейсон Го, но моим профессиональным друзьям больше известно как jgo. Это прозвище, которое я носил почти два десятилетия, это также время, когда я впервые прикоснулся к клавиатуре как профессиональный разработчик программного обеспечения. Сейчас я технический директор компании, предоставляющей финансовые услуги, и в основном занимаюсь архитектором решений. Вы действительно хотите знать, какие платформы или языки я затронул? Скорее всего, нет, так что давайте пропустим эту часть. Но, если вам действительно нужно знать, вы можете проверить мой профиль в LinkedIn.

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

Тема общения довольно разнообразна. С одной стороны, я мог иметь в виду вашу способность слушать, а с другой - способность говорить. Не будем останавливаться на достигнутом. А как насчет ваших способностей рисовать диаграммы или писать белую бумагу? Итак, я хотел бы сосредоточиться только на одном из них: разговоре. Говорю. Формулирование мысленной модели решения известной проблемы. Или, проще говоря, ваша способность влиять.

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

Вот кроличья нора, и мы войдем: почему общение в форме разговора является самой важной чертой? Ответ в том, что ваша способность влиять на других и договариваться о компромиссах - одна из самых важных частей вашей роли. Без этого вам будет очень сложно подняться до должности или оказать положительное влияние на нее. Вам не нужно хорошо говорить и хорошо выступать на публике. Уметь влиять и вести переговоры - значит уметь не говорить ерунды (иначе говоря, bs’ing). Итак, вот небольшой список, чтобы научиться лучше общаться:

Признать и признать

Признайте, в чем вы хороши технически, и осознайте свои пробелы. Я не имею в виду поверхностные утверждения о том, насколько хорошо вы владеете языком X, только потому, что вы с комфортом писали на нем последние 5 лет. Возьмем для примера .NET. Вы знаете историю языка? Когда это было создано? В чем разница между C # и .NET? Можете ли вы объяснить, почему создание 1 миллиона объектов в .NET превосходит C ++? Знаете ли вы разницу между оператором функции и выражением функции? Что такое TPL и использует ли он потоки? Я не пытаюсь напрячь .NET мускулы, но хочу сказать, что вы не можете по-настоящему разумно говорить о языке, на котором, как вы можете утверждать, вы хороши, не понимая его на значительной глубине. И если вы честно поразмыслите над этим, вы сможете обнаружить свои пробелы. Я говорю не только о языках программирования. Я говорю о вычислениях. Вы знаете о нетворкинге? Какие 5 уровней сетевого стека? Как защитить небезопасную сеть? Каковы еще ошибки сети? Надеюсь, вы уловили суть. Вы должны выйти из своей зоны комфорта и действительно, искренне и правдиво знать, в чем вы хороши, и признать, что у вас нет.

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

Влияния и ссылки

Когда я начал свое путешествие в архитектуру, одним из первых вещей, которые я узнал, были ссылки. Мэтью Бернетт отлично объяснил это в своем видео Как взять интервью у архитектора программного обеспечения. Целью ссылок является то, что многие из инструментов, идей и дизайнов, которые вы используете, на самом деле не будут вашими идеями. Да, это шокирует, но ты справишься. В наши дни многие архитектурные и дизайнерские паттерны уже решены. Кто-то. Подобно тому, как строительство небоскребов является решенной областью в архитектуре зданий, разработка программного обеспечения в основном решена. Звучит скучно. Но вот что самое интересное: знание своих рекомендаций - это то, что позволяет вам отклониться от этих норм. Вы можете сказать, что я выбрал B вместо A из-за C. Если A является нормой, простое упоминание о нем дает вам убедительность. Еще один пример наличия ссылок - возможность цитировать объектно-ориентированные шаблоны из гоф-книги. Я могу продолжить здесь, но я планирую опубликовать еще одну статью из всех книг, видео и подкастов, которые имели для меня большое значение, но также предоставили метаданные о содержании и докладчике.

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

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

Знай людей

Чтобы иметь возможность влиять на людей, важно знать, как они себя ведут и как они реагируют. Как пишет Дейл Карнеги в своей книге Как заводить друзей и оказывать влияние на людей, вы не пытаетесь поймать рыбу шоколадным коктейлем, потому что это то, что вам, а вместо этого вы используете червяка. на наживку, потому что это то, что им нравится (перефразируя). В этой книге есть еще много информации о людях, и я настоятельно рекомендую ее прочитать. Другими очень полезными книгами по самопомощи являются 7 навыков высокоэффективных людей Стивена Кови и Пять дисфункций в команде.

Триангулируйте свое обучение

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

Я очень осторожно использую слово «триангуляция» и надеюсь, что оно будет самоочевидным. По моему мнению и, по-видимому, мнению многих других, лучший способ чему-то научиться - это не делать это, а обучая этому. Я не могу сказать вам, сколько у меня было кандидатов, которые, когда я спрашиваю их: «Как вам лучше всего учиться?», Сказали, что так или иначе, «делаю». Это добровольный потолок и загадка. Как вы можете хорошо разбираться в архитектуре, занимаясь этим, если вам вообще не дали возможности сделать это. Это относится к архитектуре, но также относится к шаблонам, практикам или даже программированию.

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

Чтобы ответить на этот вопрос, я сначала должен упомянуть концепцию масштабирования себя. Скотт Хансельман говорит об этом в одном из своих подкастов о нашем конечном количестве нажатий клавиш. Но масштабирование себя также может происходить в форме многозадачности. Нет, я не имею в виду переключение контекста - то, что довольно часто путают с многозадачностью. Я имею в виду многозадачность. Есть лишь несколько вещей, которые вы можете делать как человек, которые действительно можно рассматривать как многозадачность, которая обычно вращается вокруг использования сознательных и подсознательных действий. Например, вождение автомобиля и прослушивание подкаста - это многозадачная задача, поскольку для многих из нас вождение автомобиля в значительной степени является подсознательным действием. Другой пример - запуск и прослушивание подкаста, где бег осуществляется на подсознательном уровне с повторением предпринимаемых шагов. Итак, какое отношение имеет масштабирование к обучению? А при чем тут треугольник?

Я хочу, чтобы вы визуализировали этот треугольник. В одном вопросе вы. С другой стороны, это тема, которую вы хотите изучить, и, наконец, последняя точка - ваша аудитория. Да, ваша аудитория. Какая публика? Те, которые вы придумали в своей голове! Если вы хотите быстро изучить тему, сначала изучите ее (посмотрите видео об этом, послушайте подкаст или прочтите об этом). Однако этот акт временный. Он не прилипнет и не приклеится, если вы его не примените. Если вы этому не научите. Итак, представьте, что ваша аудитория - ваш коллега. Возможно, это очень самоуверенный коллега, которого трудно убедить. Может быть, это ваш начальник, а может, это аудитория из двухсот человек, и вы выступаете на конференции. Теперь просто научите их. Думаю, может все не так просто. Какое значение имеет масштабирование?

Что ж, в следующий раз, когда вы окажетесь за рулем машины, послушайте подкаст или аудио из видео. Сыграйте несколько моментов, чтобы услышать концепцию или техническую природу этого. Теперь остановите его и поговорите со своим лобовым стеклом. Это ваша воображаемая аудитория. И когда я говорю «говорите», я имею в виду, что на самом деле используйте свои голосовые связки. Научить их! Заставьте их поверить в ваш контент. Заставьте себя поверить в содержание. Возобновите подкаст, промойте и повторите. Лично я притворяюсь, что выступаю на конференции и учу сотни людей.

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

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

Заворачивать

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

Так что до следующего раза будьте добры и узнавайте много нового!

jgo