Как может большое количество разработчиков писать программное обеспечение вместе без громоздкого процесса или программного обеспечения низкого качества? - PullRequest
7 голосов
/ 19 мая 2010

Я работаю в компании, где сотни людей пишут программное обеспечение для одного и того же продукта. Качество программного обеспечения должно быть высоким, потому что от него зависит очень много людей (не в последнюю очередь сами разработчики). Из-за этого каждая серьезная проблема приводила к новой проверке - либо автоматической, либо ручной.

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

Теперь у нас есть проблема с быстрым выпуском программного обеспечения - время, необходимое для замены одной строки кода для очень серьезной проблемы, составляет не менее одного дня.

Какие методы вы используете для ускорения доставки программного обеспечения в крупной организации при сохранении качества программного обеспечения?

Ответы [ 4 ]

6 голосов
/ 19 мая 2010

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

Итеративная и инкрементная разработка - Держите свой цикл выпуска коротким и сжатым. В большой группе, если между релизами будут сделаны многочисленные изменения, вы можете оказаться в кошмаре интеграции.

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

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

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

4 голосов
/ 19 мая 2010
2 голосов
/ 19 мая 2010

Есть много способов улучшить процесс, но ключевым компонентом является модульность .Четко разграничивая обязанности (как в коде, так и в организации) и определяя четкие и согласованные интерфейсы, одна большая команда может работать как можно больше маленьких групп, связанных вместе.

1 голос
/ 19 мая 2010

Мудрые, но мрачные изречения:

Что-то, что может сработать:

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

Я думаю о языковых продуктах: SAS , S / R , MATLAB и т. Д.

...