Denis Borovikov
Добрый день. У вас тут засланец из вражеского лагеря agile :) В общем тут припекло по работе делать waterfall-style проект. Суть такая: есть сложная система и есть требование повысить ее надежность (есть довольно высокий процент ошибок в обработке потока входящих данных). То есть бизнесовое требование как бы одно - уменьшить процент ошибок (желательно до нуля). Проблема в том, что решений много (5) все они большие (каждое ~месяц), ни одно из них не решает проблему полностью, некоторые взаимосключающие и все не идеальные, нужно задизайнить некую комбинацию решений и представить это как некий план решения проблемы на следующий квартал. За сим вопрос какого рода документацию вы бы делали? Тут челендж в том, что мы получается хотим делать планирование и проектирование совместно. То есть разные варианты дизайна пораждают разные по сути проекты. Я думал так:дизайн-диаграмма + WBS который раскрывает шаги по построению заданного дизайна. Сделать N версий, на основании WBS сделать естимейты по вермени, на основании собственно дизайна - value. И дальше запланировать выполнение варианта-победителя по соотношению value/effort
Было бы неплохо для начала описать верхнеуровневую архитектуру, договориться о принципиальных подходах при разработке и внедрении, провести сравнение решений или swot анализ, выбрать основную платформу, которая по совокупности критериев поможет перекрыть большую часть нужных технологий и потребностей. Далее по хорошему нужно сделать свод всех функциональных и нефункциональных требований включая требования к мониторингу и производительности, что бы ответить на вопрос "Что мы будем делать?" Затем подготовить системные требования, что бы ответить на вопрос "Как мы будем это делать?" Далее подготовить mindmap основных работ, которые нужно сделать для обеспечения сходимости процесса, затем можно переходить на привычные спринты, в рамках которых
отслеживать, достигается результат на каждом блоке и если нет, то вырабатывать меры по преодолению препятствий. Понятно, что не панацея, скорее обобщенный взгляд. Вообще все сложные системы нужно декомпозировать и концентрироваться на проблемном участке. Вероятнее всего и внедрять ничего не нужно, просто внимательно изучить проблемную область. Например, если это интеграция, то поможет отрисовка UML диаграммы с описанием как проходят вызовы между сервисами с настройкой мониторинга прохождения запросов. При этом мы вводили сквозную систему UID для всех генерируемых запросов что бы можно было отслеживать их прохождение между несколькими слоями интеграций для точного установления мест их потери. Кейс - потеря 20% заказов и второй - не срабатывала активация тарифных планов при передаче корректных команд от платформы управления.