Сегодня мы решили рассказать Вам об одном из самых востребованных на сегодняшний день направлений научной и профессиональной деятельности. Software Engineering (Программная инженерия) сегодня стремительно набирает популярность, в университетах Европы и России открываются все новые и новые образовательные программы, где готовят специалистов software engineer. Но кто же такой этот software engineer? Программист? Аналитик? Дизайнер? Чем он занимается? Что входит в его/ее обязанности? Откуда такой повышенный интерес отрасли к этим специалистам? Ведь по данным, например, агентства www.alec.co.uk, это будет одна из самых востребованных профессий в 2017 году. При этом Forbes также отмечают в одной из своих статей, что профессия является второй по популярности, и прогнозируют 17% рост количества вакансий данного класса с 2014 по 2024 год.
Итак, обо всем по порядку. Чтобы более детально разобраться в том, кто такой Software Engineer, нам снова (как и в статье про бизнес-инжиниринг), необходимо вспомнить о том, что такое инжиниринг в целом. Обратимся к уже ранее использованному определению этого термина.
Инжиниринг представляет собой применение научных знаний для решений каких-то проблем в реальном мире. Инжиниринг позволяет использовать фундаментальные научные знания для анализа, синтеза, дизайна и разработки реальных продуктов и решений.
Software Engineer — это специалист, занимающийся разработкой программного обеспечения с использованием инженерных принципов и опирающийся на фундаментальные знания Компьютерных наук. Это специалист очень широкого профиля, так как он/она имеет комплексное представление о процессах разработки IT-решений, поэтому именно он является ключевым действующим лицом на всех стадиях жизненного цикла продукта: от сбора и анализа требований к процессам работы с софтом до кастомизации систем под конкретного клиента. Момент с работой с клиентами здесь стоит подчеркнуть отдельно, ведь Software engineer должен иметь достаточный набор компетенций, чтобы проанализировать потребности клиента и спроектировать для него решение, после чего суметь проанализировать реакцию клиента, а затем разработать окончательный вариант, который будет максимально соответствовать всем заявленным потребностям. Этот специалист вовлечен практически во все аспекты разработки софта, включая исследование проблем, анализ, дизайн, разработку, внедрение, обучение и поддержку. Довольно часто эту профессию путают с профессией разработчика, но это вещи хоть и схожие, но, все таки, разные. Разработчик создает программный код, но software engineer создает дизайн системы, которую разработчики внедряют. Инженеру при этом необходимы знания программирования и технический склад мышления, но непосредственной разработкой он не занимается.
Несмотря на то, что непосредственным программированием software engineer не занимается (или занимается, но в редких случаях), описание профессии близко к “универсальному солдату”, что, в общем-то, так и есть, отсюда и такая востребованность этих специалистов. К необходимым навыкам для такого специалиста относятся:
- Базовые знания программирования и его принципов;
- Аналитические способности;
- Навыки технического дизайна (проектирования разных аспектов систем по перечню требований);
- Навыки командной работы;
- Коммуникативные и лидерские навыки.
В обязанности такого специалиста входит:
- Определение выполнимости требований путем анализа проблемы, требований клиента, текущего уровня технологий, синтеза и разработки возможных решений.
- Ведение документации и демонстрация возможных решений, а также диаграмм, которые отражают работу этих решений.
- Анализ, дизайн и проектирование решений под требования клиента.
- Контроль целостности понимания разрабатываемого решения всеми участниками команды и другими стейкхолдерами, поддержка спецификаций в актуальном состоянии, отслеживание соблюдения единых стандартов программирования.
- Системный анализ и разработка рекомендаций по улучшению текущей информационно-технологической поддержки на архитектурном уровне.
- Постоянное изучение современных новых инструментов, методов и средств разработки и поддержки программного обеспечения.
Источники:
The 10 Most Popular Jobs For 2016 College Graduates
Top Ten Most Popular Careers for 2017