Как устроена работа
Порядок работы у нас один: и для лендинга, и для приложения. Каждый пункт ниже проверяется: в репозитории, в календаре или в переписке.
Приёмка
Приёмка заканчивается рабочим кодом, а не документом. Три недели — это срок для проекта с существующим кодом: его сначала надо прочитать. На короткой работе вроде лендинга шаги те же, но укладываются в дни. Недели считаем от дня, когда вы выдали доступы.
Неделя 0 уходит на чтение. До договора мы смотрим только то, что вы открыли сами: публичный репозиторий или доступ на чтение. Этого хватает на срок и смету, но не на разбор. Неделя 0 — работа по договору: мы читаем код целиком, историю коммитов и задачи в трекере. Презентаций на этой неделе не будет. В конце недели вы получаете список найденного: что сломано и чем это грозит. Список написан так, чтобы его прочитал не только программист.
Неделя 1 заканчивается планом работ с оценкой в часах. Не в сторипоинтах и не в спринтах — в часах. Каждую строку плана можно оспорить: порядок работ меняется до старта, а не после.
Неделя 2 даёт первый мёрдж в ваш main. Это рабочий код в вашем репозитории, прошедший ваше ревью. С этого дня прогресс видно по истории, а не по нашим словам.
Проект с нуля идёт теми же шагами. Вместо чужого кода мы читаем ваш продукт: экраны, данные, интеграции, нагрузку.
От вас на приёмке нужно три вещи: доступ к репозиторию, доступ к сборке и один человек, который отвечает на вопросы. Без такого человека приёмка встанет: угадывать требования мы не станем.
Договор и соглашение о неразглашении подписываются до выдачи полных доступов, а не в конце приёмки.
Отчётность
Демо каждую пятницу. Сборку вы открываете сами, со своего устройства, а не смотрите на наш экран. Тридцать минут, всегда в одном и том же порядке: что сделано, что дальше, где мы застряли.
Между пятницами письменных отчётов нет, и они не нужны. Коммиты, ветки и PR видны вам в тот час, когда появляются. Работа идёт в вашей организации на GitHub, поэтому смотреть можно без нашего разрешения.
Если срок едет, вы узнаёте в тот день, когда это стало известно нам. Не на ближайшем демо и не в конце этапа.
Плохие новости доходят до вас так же быстро, как хорошие: упавший релиз, ошибка в нашей оценке, отвалившийся сторонний сервис. Мы пишем о них раньше, чем вы спросите.
Регламент ревью
Каждое изменение уезжает отдельным PR. В описании — задача, решение и способ проверить результат руками.
Зелёный CI обязателен: линтер, типы, тесты. Красную сборку мы не мёржим, даже если правка занимает одну строку.
Перед мёржем мы проходим один и тот же список. Собираем проект на чистой машине. Откатываем миграции, а не только накатываем. Ищем ключи и пароли, которые могли уехать в код. Проверяем изменение руками на том сценарии, ради которого писали.
Один PR — одно изменение. Сообщение коммита объясняет причину, а не пересказывает изменения.
Мёрдж в ваш main делаете вы или тот, кому вы дали это право. Мы открываем PR и ждём ревью. Если право мёржа вы отдадите нам, описание, зелёный CI и читаемая история останутся обязательными.
Срочная правка идёт тем же путём. У неё короче описание, но тот же PR и тот же зелёный CI. Ночью и в день релиза правило не отменяется.
Тесты мы пишем на то, что ломается: договорённости между модулями, деньги, права доступа. Гнаться за процентом покрытия мы не будем.
Когда срок едет
Этап — это две-три недели работы с проверяемым результатом в конце. Этапов длиннее месяца мы не берём: в них ошибка оценки прячется слишком глубоко и всплывает поздно.
Смета фиксируется на этап до начала этапа. Ошиблись в оценке мы — платим за ошибку своим временем, а не вашими деньгами. Счёт растёт только тогда, когда вы сами добавили работу.
Этап не уложился в срок — мы останавливаемся и пересчитываем остаток. К вам приходит не извинение, а два варианта: сузить объём этапа или сдвинуть дату.
Третьего варианта не будет. Нагнать срок, посадив на проект ещё людей, мы не предлагаем.
Выбранный вами вариант мы записываем в план и в переписку. Через месяц его можно перечитать, а не вспоминать.
Работу можно остановить в конце любого этапа. Код, доступы и документы остаются у вас: они и так лежат в вашем репозитории. Порядок и момент оплаты этапов закрепляет договор, а не эта страница.
Как начать
Пришлите ссылку на репозиторий или на продукт. Мы прочитаем его до разговора и придём с вопросами, а не с презентацией.
Написать в WhatsApp — отвечаем в течение часа в рабочие часы.