В чем разница между архитектором программного обеспечения, инженером-программистом и разработчиком программного обеспечения (программистом)? [закрыто]

24

Я читаю статью CNN о самых высокооплачиваемых работах в Америке. Архитектор программного обеспечения указан как 1 . Инженер - программист в списке № 9 . И разработчик программного обеспечения (программист) указан в # 35 . Я думаю, что это правильно, чтобы заменить ученого программистом, верно?

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

Заранее спасибо за любые ответы.

Роб С.
источник
1
Уже есть много связанных вопросов о названиях должностей , они могут быть либо слишком локализованы, либо дублированы.
Джош К
1
Они кажутся актуальными в качестве потенциальных дубликатов: programmers.stackexchange.com/questions/13439/… , programmers.stackexchange.com/questions/22124/… . Хотя я не вижу того, кто объединяет все это.
Адам Лир
9
Архитектор программного обеспечения хочет, чтобы ему платили больше :-)
Стивен С.
4
Хм, стрижка?
Pawka
7
@Rob S, ученый, не разработчик программного обеспечения (программист).
Системович

Ответы:

24

Предупреждение : неофициальные доказательства следует ....

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

«Директор по разработке программного обеспечения», описанный в вашей ссылке на CNN, отличается от «Инженер-программист». Это действительно больше похоже на роль менеджера технического проекта высокого уровня. Такой человек на самом деле не будет много программировать, если вообще будет. Эта роль не имеет ничего общего с вашим типичным «Инженером-программистом» - который часто является просто прославленным названием для среднего и старшего программиста.

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

TL; версия DR :

  1. Инженер-программист - это часто просто прославленное название «программист», возможно, указывающее на то, что он несколько старше.
  2. Архитектор программного обеспечения, вероятно, примерно соответствует руководителю группы высокого уровня, который отвечает за разработку общей архитектуры проекта.
  3. Директор по разработке программного обеспечения - менеджер проектов высокого уровня, тип, который, возможно, подчиняется высшим уровням и, вероятно, вообще не касается кода.

$ 0,02

Бобби Столы
источник
22
Какое замечательное имя пользователя, "Бобби Таблицы".
Джош К
2
что такое 0,02 доллара ???
Саравут Позитвинью
10
@Sarawut: "Мои два цента". Это просто означает «это мое мнение». :)
Бобби Столы
7

Я узнал это так:

  • Инженер-программист - это тот, кто знает все аспекты процесса разработки программного обеспечения (требования, спецификация, дизайн, архитектура, проектирование, внедрение и т. Д.), Чтобы они могли выполнять задачи управления или работать в любом месте процесса, улучшать его и т. Д.
  • Архитектор программного обеспечения - это тот, кто работает только на этапе архитектуры, который находится после этапа проектирования, и является высшей технической работой, к которой можно стремиться. Вам по-прежнему нужно программировать, а не программисту, который может стать менеджером. Это также тип работы мастера-ученика.
  • Также не сравнивайте с информатикой, программист может программировать, но также может делать много других вещей, поэтому они не ограничиваются областью программирования.
Osukaa
источник
А как насчет "разработчика программного обеспечения"?
Адам Лир
Я действительно не знаю, как определить эту роль. Я думаю, что это программист, но я не уверен. Я хотел сказать, что вы не должны сравнивать это с Computer Scientist. К сожалению об этом: s
Osukaa
«Компьютерный учёный» - это просто академическое звание, не больше и не меньше. Большинство программистов, где я работаю, являются «учеными-компьютерщиками», потому что они изучали «информатику» - предмет, в котором они много учат тому, как работать с цифровыми системами и конечными автоматами, и математике, стоящей за этим. «Компьютерная инженерия» - это профессия, в которой «больше, чем программирование», потому что они также многому учат вас в области физики и электричества.
Ям Маркович
6

Здесь, в Великом штате Техас, многие компании склонны уклоняться от термина «Инженер-программист», потому что в Техасе мы лицензируем инженеров, и на самом деле существует такая вещь, как «Запечатанный» профессиональный инженер-программист ( http: // www .tbpe.state.tx.us / eng_req.htm ).

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

«Разработчик программного обеспечения» чаще используется для человека, основной задачей которого является написание программного обеспечения.

Компании также легче справляются с проблемами Visa для «разработчиков программного обеспечения», а не для «разработчиков программного обеспечения».

Я работал только в стартапах в течение последних 15 лет, поэтому я не привык к куче четко дифференцированных должностей, но в целом программный «Архитектор» - старший разработчик, который хорошо разбирается в «большой картине». «Разработка программного проекта. Каждый архитектор, которого я когда-либо знал, тратит много времени на написание кода, как и все остальные, особенно после согласования основного проекта.

Джим в Техасе
источник