Блог

Гибкость при разработке крупных сайтов

Работа в условиях отсутствия технического задания - Agile, который мы заслужили?

Срок реализации - 12 месяцев

Задача

Задача на старте была, с одной стороны, достаточно тривиальной. Клиент (один из крупных российских инвестбанков) попросил разработать новый корпоративный сайт на замену старому.

Стэк

React +Typescript, Node.JS, MySQL

Решения

Документация, которой нет

Как это часто бывает, работы требовалось начать незамедлительно. И при этом нужно было постоянно демонстрировать промежуточные результаты, чтобы руководство банка видело прогресс - на что уходит бюджет.
В нашем случае ситуация развивалась настолько стремительно, что документ с техническим заданием мы так и не увидели. У нас в распоряжении был только бриф и утвержденная дизайн-система. На этой основе мы сразу начали отрисовку макетов и разработку бэкенда исходя из устного описания.
В реальности это выглядело как обыкновенный канбан. На мозговом штурме совместно с клиентом был разработан схематический roadmap, с очень условной структурой сайта. Постулаты из этой схемы переносились на доску с задачами, и на ходу обрастали деталями в комментариях. Как будет выглядеть хедер? Что будет расположено на служебных страницах? Все это, и многие другие нюансы мы узнавали в процессе.
Большинство технических решений подлежали обсуждению внутри команды и тут же отправлялись клиенту. Большого сопротивления при этом мы не испытывали, всё это воспринималось как часть agile-работы. В результате большинство проблем удавалось решить “на лету”, внести корректировки и выдать готовый кусок кода.
Интересный факт: до момента релиза сайта на продакшн мы не знали, как будет выглядеть и что из себя представлять главная страница сайта. Получилось так, что разработанная нами система позволила заказчику самостоятельно собрать нужную конфигурацию из набора готовых блоков. Была подставлена нужная картинка - и сайт оказался в бою.

Последствия

Ожидаемо такой воркфлоу принес немало проблем впоследствии, после релиза в ходе технической поддержки. Когда какой-либо из компонентов корректировался в третий, четвертый, десятый раз - все уже забывали, что от него требовалось на старте и какая бизнес-логика туда была заложена. На выяснение таких моментов иногда приходится тратить много времени и по сей день.
Тем не менее, потенциал, который мы сумели заложить в продукт в условиях недостатка информации, позволяет решать большую часть новых задач либо автономно (с использованием имеющейся CMS), либо с небольшими трудозатратами (например, разработкой одного нового виджета для какой-то страницы).
Работать без технического задания трудно с точки зрения разработки.. Программисты не всегда могут четко зафиксировать идею в голове, и не сбиться с пути. Опять же, в дискуссиях с клиентом апеллировать к конкретному документу тоже не получится. Тем не менее, наши клиенты исключительно адекватные и лояльные люди, поэтому мы всегда находим общий язык и достигаем компромисса
Ян, frontend developer
Backend Frontend NodeJS TypeScript ReactJS JavaScript FinTech