У нас есть большой (более 1200 часов) веб-сайт, на котором много технических долгов. Это в основном обусловлено следующими (обычными) причинами.
- Несколько программистов, которые приходят и уходят во время разработки.
- Изменение спецификаций при разработке.
- Добавлены многочисленные дополнительные функции (в скором времени).
Заказчик хочет много новых функций, и это сводится к тому, чтобы работать над этим проектом еженедельно в течение 10+ часов.
Из-за технического долга мы тратим ОЧЕНЬ много часов на устранение или расследование проблем, которые обычно происходят из одного из следующих:
- Бесстыдная глупая ошибка, которая заставляет людей плакать.
- Новая функция приводит к вышесказанному, потому что мы не предусмотрели все места, где новая функция будет иметь влияние.
- Некоторые другие проблемы, с которыми мы столкнулись (например, миграция сервера, обновления)
У нас ежедневно возникают проблемы, и мы стараемся сделать следующее, чтобы остановить это:
- Создана техническая документация относительно импорта, оплаты и общей работы сайта.
- Проведите встречу в начале недели - обсудите текущие проблемы или улучшения и способы их решения.
- Есть план испытаний. Программист A тест B, B тесты C и C тесты A. Затем наш менеджер проекта добавит несколько тестов. Что касается влияния функции, мы добавляем ее в промежуточную среду и позволяем клиенту проверить себя.
Проблема в том, что проблемы продолжаются ... и почему-то мы не можем справиться с этим. Новые функции по-прежнему вызывают ошибки, и старые ошибки продолжают говорить привет. Каким-то образом - возможно, из-за размера проекта - мы не можем получить контроль над этим проектом.
Я предполагаю, что есть много программистов, работающих над более крупными проектами, чем этот. Вот почему я подхожу к своему вопросу:
Что мы можем сделать, или что вы делаете, чтобы избежать этих проблем в больших проектах?
Незначительное редактирование, дополнительная информация:
- Мы используем контроль версий (SVN).
- У нас есть процесс разработки DTAP.