Как стать техническим архитектором?
Я потратил более 3 лет на программирование в DotNet (C#) и теперь хочу изучить основы и дизайн.
Я решил стать хорошим архитектором в будущем. Я знаю, что для этого мне нужно много работать. Я готов сделать это.
Что я не знаю, это как начать?
Не могли бы вы, люди, быть достаточно добрыми, чтобы помочь мне найти правильную ступеньку.
Спасибо
4 ответа
Обновление: обе ссылки не работают, я постараюсь найти заменяющий контент, но пока что на этой странице есть список разных типов архитекторов, FWIW: http://en.wikipedia.org/wiki/Systems_architect
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Это зависит от того, что вы называете " Техническим архитектором", а также от того, куда вы хотите отправиться. Кроме того, ваш опыт (насколько вы его описали) связан с программированием / программным обеспечением, поэтому термин "Техническая архитектура" может не соответствовать вашему.
Насколько я понимаю, технический архитектор больше заботится о стандартах, а не об архитекторе программного обеспечения, который больше занимался бы кодами и шаблонами проектирования.
Мой общий совет тебе такой:
- Исследования: читайте книги, статьи, блоги и (самое главное)...
- Взаимодействие: поговорите с настоящими архитекторами о том, что они делают и как они туда попали. Конечно, вы можете задавать вопросы на таких форумах, как этот, но вы ищете глубокое и глубокое обсуждение, а не только один или два. Один из способов сделать это, чтобы...
- Присоединитесь к местному форуму архитекторов или общественной группе в вашем районе или посетите странную беседу. У больших конференций, таких как Tech Ed, будет архитектурный трек, так что следите за интересными темами.
- Ждем вас: я получил официальное название "Архитектор решений" после 8 лет в разработке программного обеспечения, что, вероятно, быстро; так что приготовьтесь к долгому, но "глубокому" путешествию.
- С точки зрения домена вы хотите остаться в программном обеспечении или перейти в инфраструктуру? Специалист по безопасности возможно? Единственный способ узнать это - испачкать руки на некоторых из них; и наличие большого количества маленьких знаний (таких как инфраструктура, безопасность, данные) хорошо увеличивает глубокий "центр тяжести" в чем-то вроде архитектуры программного обеспечения.
Вещи, чтобы рассмотреть на пути:
- Быть архитектором - это не просто придумывать технические решения для технических проблем, это также (по крайней мере, половина) о "мягких навыках"...
- Ведущие команды разработчиков / проектные группы, консультирование руководителей проектов; они будут обращаться к вам за советом.
- Устранение неоднозначности, решение противоречивых потребностей. анализ проблем бизнеса и др.
- Думать за пределами площади и задавать (переспрашивать) основные вопросы, например: Вопрос: "Какой лучший способ сделать Х?", Ваш ответ: "Почему Х в первую очередь?"
К вашему сведению, " Стремящиеся архитекторы" - моя любимая тема.
Обновление январь 2017 - наконец-то обновлена неработающая ссылка (контент написан в 2010 году!) И, кроме того, добавлена новая ссылка, касающаяся определения архитектурных ролей.
Настоящий архитектор, строящий настоящие здания, будет проводить большую часть своего времени, изучая строительный кодекс, разбираясь в планировании и обсуждении затрат с инвесторами.
Поэтому архитектор решения будет тратить большую часть своего времени на то, чтобы убедиться, что решение соответствует различным стандартам безопасности и разработки на сайте, соответствует планам предприятия и т. Д., Обсуждает бюджеты и т. Д., А также взаимодействует с другими группами, определяющими интерфейсы и планы синхронизации.,
Настоящий архитектор редко получает шанс стать Ричардом Роджерсом и построить существенное здание на новом сайте для клиента с глубокими карманами, вместо этого они проектируют дома для "печенья" для умозрительных разработчиков, добавляют расширения для существующих зданий или реконструируют старые здания для новых использует.
Точно так же ИТ-архитектор будет проводить большую часть своей профессиональной жизни, совершенствуя или заменяя части существующей системы в рамках ограниченного бюджета, ограниченного периода времени и жестко ограниченных существующей технологией.
Поэтому я советую разобраться в различных стандартах и процедурах, в которых вы работаете, и попытаться понять, как работает архитектурный процесс и как он используется в вашей организации. Если вы были программистом, вы уже знаете все технические вещи, которые вам нужны.
Лично я узнал больше всего, когда сделал рефакторинг большой устаревшей системы на модульную архитектуру, где вы разбиваете старый код на слои и склеиваете его вместе с некоторыми инъекциями зависимостей или другими абстракциями, основанными на общих шаблонах архитектуры. Таким образом, вы можете увидеть, каковы распространенные ошибки и почему имеет смысл приложить усилия для модульной системы с самого начала.
- Все дело в построении системы, которую можно поддерживать с течением времени. Тестируемость и модули являются ключевыми!
- Вы должны знать о шаблонах и понять, когда они могут помочь и почему
- о различных технологиях, о том, как они работают, и как их склеить
- "о настройке большой системы, чтобы ее можно было использовать в разных контекстах с минимальными усилиями
- "об инструментах, которые могут измерить хорошую архитектуру, такую как pmd, findbugs в мире Java
- "о настройке кода, тестирования, сборки среды, которая позволяет гибкую разработку...
- и многое, многое другое...
- Архитектура системы - это огромная ответственность, и если сделать ее неправильно, она может все испортить
Лично я не позволил бы кому-то принимать какие-либо большие архитектурные решения без опыта менее 10 лет.
Я думаю, что для того, чтобы быть хорошим техническим архитектором, вы должны хорошо разбираться в шаблонах проектирования, WCF, WPF, инструментах отчетности, C#, SQL Server и т. Д.