В отрасли проводится различие между средой «внутренней разработки», в которой разработчики программного обеспечения пишут код, который будет использоваться самой компанией, и надлежащей средой «разработки программного обеспечения», в которой программное обеспечение создается для продажи / распространения. публике.
Среди прочего, одно очевидное различие между ними заключается в том, что компания, ориентированная на разработку программного обеспечения, обычно придерживается своего рода жизненного цикла разработки программного обеспечения, такого как написание спецификаций, тестирование, сборка и т. Д., В то время как магазин, ориентированный на внутренний рынок, обычно будет делать вещи более непринужденно, так как они сами являются конечными пользователями и всегда могут исправить то, что было сделано неправильно.
Будучи студентом (как и большинство других студентов), я как бы ожидал, что сам окажусь в среде разработки программного обеспечения, но в итоге я получил свою первую должность в фирме, которая работает в большей степени в своей компании.
Иногда мне интересно, упускаю ли я опыт полноценной разработки программного обеспечения. Есть ли основание для этого чувства? Должен ли я стремиться присоединиться к правильной среде разработки программного обеспечения?
источник
Ответы:
По моему опыту, различие, которое вы проводите между «внутри дома» и «распространяемым продуктом», является ложным.
Есть компании, которые серьезно относятся к процессу разработки программного обеспечения, а те - нет. Независимо от того, находятся ли они «в доме», «на заказ» или «термоусадочная пленка», они обычно не имеют такого значения (хотя, если они являются поставщиками «термоусадочной пленки», если у них нет процесса, они, вероятно, не будут заниматься бизнесом. длинная).
Вы должны искать место, которое соответствует стандартам развития, которые вы ищете - во время собеседования вам нужно задать эти вопросы, чтобы убедиться, что это место вам по вкусу (как и другим).
источник
Вы можете прочитать эту статью
http://www.joelonsoftware.com/items/2007/12/04.html
Джоэла Спольски, который точно занимается вашим вопросом.
Я нахожусь в положении, когда мне приходилось работать как в последние годы, так и в связи с проданным программным продуктом среднего размера и некоторым собственным программным обеспечением. Исходя из этого опыта, я могу сказать, что между этими двумя платформами есть различия, но ситуация не так плоха, как описал Джоэл.
Например, большая часть нашего собственного программного обеспечения должна работать только в очень ограниченной среде. Множество инструментов, работающих только с определенной таблицей или версией базы данных, с определенной сетевой средой, с ограниченным числом пользователей, без необходимости установки и т. Д. Это облегчает и ускоряет разработку многих вещей по сравнению с новыми функциями, введенными в наш продукт доставки. С другой стороны, это не означает, что мой код для «собственных» программ имеет более низкое качество или написан более «случайным образом».
источник
Давным-давно я читал книгу об Agile Project Management (хотелось бы, чтобы я помнил название), где автор различал системы, основываясь на их уровнях допуска к системным дефектам. Допуск на дефекты может варьироваться от очень высокого - например, утилита, используемая другими разработчиками (где ошибки являются просто неудобством), до очень низкой - например, система, которая поддерживает жизнеобеспечение космонавтов (где ошибка может быть опасным для жизни).
По мнению автора, методология разработки (и формальность) должна быть ограничена отказоустойчивостью (или критичностью) системы. Я думаю, что это различие является наиболее важным, в отличие от различия между внутренней разработкой и программным обеспечением для общего распространения.
Представьте себе больницу, в которой собственные разработчики создают системы медицинской документации, которые могут повлиять на качество медицинской помощи. В этом случае внутренний магазин, скорее всего, будет более строгим, чем консалтинг по веб-сайту, который создает веб-продукты для широкой публики.
источник
Я работал в софтверных компаниях, маркетинговых агентствах, мобильных телефонах и банках, скажу одно: культура и отрасль компании определяют уровень применяемых процессов. Самой строгой, медленной, строгой и проверенной средой, которую я когда-либо испытывал, была внутренняя разработка для банка. Самым случайным было маркетинговое агентство.
Я бы порекомендовал учиться на этом опыте и использовать его, чтобы определить свое будущее направление на следующую работу. Индустрия разработки программного обеспечения не наука, ее искусство / наука, следовательно, различия и различия от компании к компании. Более важно, чтобы вы научились правильно делать код. Хотя помнить о сбоях или отсутствии процессов полезно, поэтому, когда вы управляете, вы можете реализовать более эффективные процессы.
источник