Есть ли преимущество для гетерогенных сред разработки?

10

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

Такое разнообразие систем является сложным для нашей инфраструктуры и групп безопасности, поэтому часто возникает проблема.

Является ли более выгодным иметь однородную или разнородную среду разработки в команде разработчиков?

Бен
источник
1
Большинство проблем разработки программного обеспечения, подобных этой, не исследованы авторитетно. Если вы ищете способ убедить своих начальников или коллег, вам нужно найти другой способ сделать это. Тем не менее, посмотрите здесь: netlib.org/utk/papers/practical-hetro/node2.html
Роберт Харви
Я думаю, что стоит провести групповое тестирование самостоятельно. Таким образом, вы можете увидеть, сохраняете ли вы преимущества для разработчика, когда требуется использовать однородную среду, а также определять, получаете ли вы преимущества в плане безопасности и инфраструктуры, которые, как утверждают эти группы, они получат. Не то, чтобы все это было просто, но найти хороших программистов сложно и дорого, поэтому я не уверен, что другие команды, желающие улучшить свои области, на самом деле просто хватают собаку.
JeffO
1
Отличный вопрос, на который в конечном итоге должны ответить требования к продукту / услуге и руководство, знакомое с преимуществами и издержками описанной вами неоднородности. По моему опыту, ненужное разнообразие приводит к увеличению затрат, особенно когда это отвлекает от других скучных требований. И стоит сохранить разнообразие технологий, как только его создатели отправятся на другую задачу. Я также заинтересован в соответствующих тематических исследованиях. +1
bvj
6
Многие успешные магазины оставляют разработчикам безопасность и инфраструктуру. Вы отправляете проверенный код в репозиторий, и не имеет значения, если ваш ноутбук взломан, потому что мы знаем, что ваш источник чист. Мы можем сделать это, потому что мы не доверяем вам больше, чем кто бы то ни было взломал ваш ноутбук. Но поскольку мы работаем таким образом, вы можете получить root. Я работал в обоих направлениях. Я бы предпочел иметь root. Поэтому преимущество гетерогенного развития заключается в том, что это больная точка для людей, пытающихся укорениться в моей жизни.
candied_orange
2
Я бы предположил, что тот факт, что ваша команда предпочитает возможность выбирать собственную среду, в некоторой степени является преимуществом

Ответы:

3

Одним из преимуществ является то, что вы сталкиваетесь с проблемами кросс-платформенной совместимости и расхождений на ранних этапах процесса разработки и должны решать их. Все привыкли иметь дело с такими обезьянами и препятствиями.

Вы также видите обратную сторону такого расхождения: из-за этих расхождений среду сложнее настроить, поддерживать, защищать и развивать. Каждый должен работать над проблемами расхождения рано и часто. Освобождение Обезьяны Хаоса с самого начала может сильно отвлечь от продвижения вперед.

По моему опыту, трудности с расхождением не стоят усилий, если вы не очень конкретно работаете над продуктом, который должен быть исключительно кроссплатформенным. Но это суждение, которое разные команды должны сделать для себя. Я предпочитаю, чтобы в моих проектных командах было хоть немного сходства, но реальность такова, что это желание, а не то, что я могу исполнить. Некоторые люди используют и используют Windows, другие - macOS, другие - разновидность Linux. Умножьте это время на все инструменты, которые разработчики могут захотеть использовать.

Вы можете установить некоторые основные стандарты проекта, такие как Python 3.5, PostgreSQL 9.5+, конвейер ресурсов на основе gulp, git, Github, ребазированные ветки, ... которым должен соответствовать каждый. Это помогает сократить расхождение, таким образом время / усилие, необходимое, чтобы приспособить и спорить это. Чем больше корпоративных и замкнутых в вашей организации, тем больше стандартизации и общности вы можете настаивать. Разработчики, однако, как правило, метафоричны неуправляемыми кошками. Таким образом, сдерживание расхождения "до скучного рева" часто является лучшим, что вы можете сделать практически.

Джонатан Юнис
источник
Я не думаю, что это хороший ответ, так как ОП явно задал вопрос о некоторых исследованиях и статьях, а не о личном мнении.
KjMag
1
@KjMag Добро пожаловать в ваше мнение. Это вопрос, который мне задавали на профессиональном уровне много раз за эти годы, в том числе корпоративные и правительственные команды, которые хорошо платили, чтобы услышать ответ. Сайты Stack Exchange в основном созданы для сбора и обмена опытом из краудсорсинга. Это мое. Если вы хотите сделать полный поиск исследовательского отчета и опубликовать свою библиографию, обращайтесь по адресу.
Джонатан Юнис
@KjMag просить исследования и статьи здесь не по теме, и я отредактировал это вне вопроса. Этот ответ выиграл бы от некоторых внешних ссылок, но самодостаточен и «полезен».