Исходные данные:
Отдел — 11 разработчиков; 4 тестировщика; 3 технических руководителя проекта.
Пишутся продукты под заказ. Заказчик — госконтора.
Процесс разработки происходит по принципу "...заказчику нужна вот такая фича. Нужна срочно, завтра, поэтому давайте быстрей кодить...".
Управления требованиями нет. В смысле нет ВООБЩЕ!!! Есть Т.З., общее, часто на 1-2-3 страницы, и все. Все хотелки заказчика получаются устно и нигде не регистрируются. Обычно хотелки появляются ближе к концу проектов и иногда звучат примерно так: "Все что вы написали — это все нам н###й не нужно! Переделайте все не знаю как, но чтобы было по другому!"
Нет процесса разработки архитектуры. То есть первоначально архитектура высасывается из пальца, а по мере разрастания проектов прикручиваются всевозможные костыли. Хуже всего что все архитектурные решения нигде не документируются.
Проектной документации — нет вообще.
Тестирование — на уровня тыкания по менюшкам.
Отсутствует планирование как таковое. Все сроки высасываются из пальца.
На выходе:
Продукты плохого качества, без документации, без возможности нормальной поддержки и масштабирования. Процесс написания абсолютно не предсказуем.
Чего хочется:
Поднять качество продукта, кода, документации. Сделать процесс предсказуемым и управляемым.
Вопросы:
Что вообще делать в таких случаях? Может ли помочь введение формальных методологий разработки, или лучше оставить пациента доживать последние дни?
Как выбрать методологию разработки ПО? Где можно почитать насчет применимости той или иной методологии в различных условиях. Привлекает к себе RUP, только кажется слишком тяжеловесным и формальным для небольшой команды.
Чем заняться в 1-ю очередь: наладить управление требованиями? или процесс планирования? или формализовать процесс проектирования? или тестирования?
Как количественно оценивать введение тех или иных практик? Где можно почитать о метриках, оценивающих процесс производства ПО?