Моя компания настаивает на том, чтобы внедрить SCRUM в качестве процесса разработки для поддержки и расширения нашей базы кода.SCRUM и устаревший/высокосвязный код
Наша база кода недокументирована, написана множеством технологий и высокосвязанных (глобальные переменные везде, процедурный javascript php-код с около 800 хранимых процедур Oracle PL-SQL на бэкэнд, без объектов, скрытых допущений и т. Д.). Разумеется, нет единичных тестов.
Кроме того, команда разработчиков отличается небольшим опытом в существующем коде и, безусловно, не является кросс-функциональной, поскольку каждый из них обладает конкретными знаниями о технологии (например, javascript, но не PL-SQL).
Когда мы впервые попытались ввести Scrum пару месяцев назад мы с треском провалились, так как
- Никто не хотел давать оценки, поскольку они не имели никакого знания кода тесты
- блок записи было невозможно, так как изменения требуется добавить модульные тесты, учитывая базовый код требует месяцев рефакторинга
- Настройка надлежащей тестовой среды также огромные усилия на своих собственных (сбор тестовых данных и т.д.)
- Никто не хотел, чтобы попытаться с код, принадлежащий к «зарубежной» технологии (например, парень SQL, касающийся части php).
С другой стороны, истории пользователей приходят в удобной форме, и у нас есть довольно хороший процесс для написания и объяснения требований к команде разработчиков.
Учитывая вышеизложенное, я считаю, что SCRUM, возможно, не лучший путь вперед. Тем не менее, я хотел бы посмотреть, есть ли у кого-нибудь план предложить, как подойти к SCRUM в такой среде.
Как используется SCRUM, особенно проблема с устаревшими кодами? Как проблема связана с выбранной философией управления проектами? – Matthew
Мое понимание SCRUM потребует, чтобы в конце спринта были протестированы реализации пользовательских историй. Учитывая, что база кода в ее нынешнем виде не поддерживает модульное тестирование (именно поэтому я назвал его устаревшим кодом), вопрос в том, можем ли мы принять SCRUM. Мы должны либо потратить слишком много времени на реорганизацию кода для модульного тестирования, либо предоставить историю пользователей, которая не тестируется на устройство. – user2465039
Существуют другие типы тестирования, которые можно выполнить в системе, которая нелегка для модульного тестирования. Существует множество инфраструктур интеграционного тестирования. Майкл Перс «Эффективно работает с устаревшим кодом» может быть хорошей книгой для чтения. – Matthew