Это разработка программного обеспечения? Если нет, то чего ему не хватает для того, чтобы быть квалифицированным таким образом?
Да, разработка программного обеспечения - это инженерная дисциплина.
Википедия определяет инженерию как «применение математики, а также научных, экономических, социальных и практических знаний для того, чтобы изобретать, вводить новшества, проектировать, строить, обслуживать, исследовать и улучшать конструкции, машины, инструменты, системы, компоненты, материалы , процессы, решения и организации. " Результатом разработки программного обеспечения является система программного обеспечения, которая может улучшить жизнь людей, и она может включать некоторую комбинацию научных, математических, экономических, социальных или практических знаний.
С точки зрения того, как это рассматривается, академически и профессионально, это варьируется. Программы разработки программного обеспечения могут быть аккредитованы ABET как инженерные программы. Инженеры-программисты могут быть членами IEEE. Некоторые компании считают разработку программного обеспечения инженерной дисциплиной, в то время как другие - нет, на самом деле это непростая задача.
Лучшая книга на эту тему - «Профессиональная разработка программного обеспечения» Стива Макконнелла: более короткие сроки, более качественные продукты, более успешные проекты, улучшенная карьера . Он смотрит на программной инженерии как профессии, эволюция от ремесла к профессии, наука о разработке программного обеспечения, разница между программной инженерией и программной инженерией (применением методов разработки программного обеспечения по сравнению с инженерами , которые происходят с программным обеспечением сборки, с тематическим исследованием этого включает мою alma mater ), сертификацию и лицензирование, и этику.
Гленн Вандербург проводит серию выступлений под названием «Реальная разработка программного обеспечения», которые проводились в период между 2010 и 2015 годами на ряде конференций, а также две связанные с ними беседы «Создание, разработка и сущность программирования» (проведенные в 2011 году как выступление на RailsConf) и "Craft and Software Engineering" (дано в 2011 году на QCon London). Я думаю, что эти разговоры являются довольно всеобъемлющим аргументом, почему разработка программного обеспечения является инженерной дисциплиной.
Один из аргументов, который Вандербург кратко приводит в своих выступлениях, - это аргумент, высказанный Джеком В. Ривзом в 1992 году (и вновь пересмотренный в 2005 году) о том, что такое дизайн программного обеспечения и как код является результатом деятельности по разработке программного обеспечения ( это также обсуждается на вики С2). Как только вы уйдете из более старых научных школ, где спецификация и моделирование являются разработкой программного обеспечения, а код - разработкой программного обеспечения, некоторые из связей между разработкой программного обеспечения и другими инженерными дисциплинами становятся более очевидными. Некоторые различия и причины этих различий становятся еще более очевидными после того, как вы видите, что экономика разработки программного обеспечения значительно отличается от многих других дисциплин - конструирование является дешевым (почти во многих случаях практически бесплатным), в то время как дизайн является дорогостоящей частью.
Это [CMMI] что-то, что превратит разработку в разработку?
Нет. CMMI - это структура для улучшения процессов, которая дает рекомендации организациям о том, какие виды деятельности полезны при создании программного обеспечения. Инженерные дисциплины обычно имеют инженерный процесс. Наличие такого процесса важно для успешного завершения проектов высокого качества. Тем не менее, CMMI (или любая другая структура процесса или методология) - это всего лишь один инструмент - использование его не сделает вас волшебным путем от разработчика до инженера. Однако не следовать какому-либо процессу - это, на мой взгляд, признак проекта, который не является инженерным проектом.
Кроме того, что вы думаете о курсах / сертификатах по разработке программного обеспечения?
Это столько же, сколько другие люди вкладывают в это. Есть полезные курсы и есть бесполезные курсы. Есть ценные сертификаты и сертификаты, которые не стоят бумаги, на которой они напечатаны. Существует множество факторов: от того, кто одобряет или аккредитует курс, или кто выдает сертификат для вашей текущей отрасли занятости, до вашей текущей работы и от того, куда вы хотите пойти.