Подход "API First"
Частично про этот подход я уже рассказал в прошлом посте, сейчас сформулирую более подробно.
Такой подход заключается в том, чтобы перед началом разработки "основной" функциональности - спроектировать API и, возможно, сразу его опубликовать, чтобы им могли пользоваться фронтенд разработчики и все потребители сервиса. Но как минимум спроектировать.
Это позволяет решить целый ворох проблем, связанный с простоями отдельный членов команды или даже разных команд в целом, если они не могут приступать к своей части работ до тех пор, пока им не предоставят описание контракта сервиса, с которым им необходимо взаимодействовать. Особенно это актуально в распределенных командах, тесно взаимодействующих друг с другом.
Не раз и не два у меня было так, что тебе уже нужно приступать к аналитике задачи и проектировать интеграционное взаимодействие с какой-либо системой, а ты не можешь это делать, потому что на той стороне еще ничего нет, и ты даже не представляешь, какие тебе данные нужно будет отдать на вход и что ты получишь на выход. Это достаточно омрачает существование в рамках таких процессов.
Как процесс выглядит на практике со стороны аналитика, проектирующего сервис, у которого будут какие-либо внешние потребители:
Конечно, это достаточно идеализированный сценарий, потому что и в этом процессе может много что пойти не так. Банально - сначала вы все дружно согласовали контракт, потом у потребителей спустя N времени возникли потребности в каких-то изменениях, без которых они не могут существовать и выполнять свою функцию.
Кроме того, что данный подход может использоваться при кросс-командом взаимодействии - он успешно применяется и внутри команды. Аналитик также проектирует API сервиса до начала разработки, чтобы убедиться в том, что он удовлетворяет требуемой функциональности и всем требованиям. При этом, конечно, разработчики могут давать обратную связь по контракту, подсвечивая недочеты или предлагая варианты по улучшению контракта, чтобы он лучше соответствовал best practices, принятым на проекте.
P.S. Пока писал, подумал, что для меня это уже настолько привычно, что будто бы даже рассказывать смысла не имеет. Но потом вспомнил, что знаю очень много примеров того, когда аналитики в целом не занимаются проектированием сервисов и эта функция целиком лежит на разработчиках.
А на ваших проектах как принято - кто является источником правды с точки зрения проектирования сервисов: аналитик или разработчик?
>>Click here to continue<<