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

StackOverflow https://stackoverflow.com/questions/2866762

Вопрос

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

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

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

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

Это было полезно?

Решение

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

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

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

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

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

Другие советы

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

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

То, что может работать:

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

Я думаю о продуктах на основе языка: Сасс, С/р, Matlab., так далее.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top