Выбор инженерного партнёра относится к немногим решениям в программном проекте, которые трудно отменить. После первых месяцев работы команды её решения живут в коде, в инфраструктуре и в привычках каждого, кто работает с системой. Сменить её позже можно, но это медленно и стоит проекту набранного темпа.
Большинство процессов отбора сравнивают не то: портфолио, почасовые ставки и то, насколько отполировано коммерческое предложение. В этой статье о том, на что смотреть вместо этого.
Вопросы, на которые не ответить по скрипту
Каждый партнёр скажет, что он гибкий, прозрачный и опытный. Эти слова никого не отличают. Отличают вопросы, которые требуют конкретики:
- «Расскажите о последнем проекте, который пошёл не так. Что вы изменили после него?» Команда, у которой ни один проект не шёл не так, либо сделала их немного, либо чего-то не договаривает.
- «Как бы вы подошли к первому месяцу нашего проекта?» Хороший ответ задаёт вам встречные вопросы. Слабый пересказывает методологию.
- «Кто решает, что делается в каждой итерации, и что происходит, когда мы не согласны?» Вы ищете ясного владельца и способ разрешать разногласия.
- «Что вы делаете с запросом, который считаете плохой идеей?» Вам нужен партнёр, который скажет об этом, объяснит почему, а затем уважит ваше решение.
- «Как выглядит релиз, от слитого кода до продакшена?» Это показывает, есть ли у команды настоящие привычки поставки или она просто пишет код.
Обращайте внимание на уровень детализации. Опытные команды отвечают примерами, компромиссами и названиями инструментов, которыми пользуются. Неопытные отвечают прилагательными.
Читайте в кейсах то, чего там нет
Кейсы относятся к маркетингу, но от этого они не становятся бесполезными. Ищите в них сигналы:
- Проблема. Описана ли она в бизнес-терминах клиента или только списком технологий?
- Объём. Партнёр построил всю систему или одну её часть? Кейс со словами «мы поставили платформу» может означать дизайн и фронтенд.
- Статус. Находится ли продукт в эксплуатации сегодня? Поддерживается ли он и кем?
- Передача. Владеет ли клиент кодом и инфраструктурой? Был ли передан репозиторий?
Отсутствие тоже о многом говорит. Кейс без имени клиента, статуса и объёма работ остаётся картинкой, а не доказательством. Если кейс близок к вашей задаче, попросите поговорить с этим клиентом. Некоторые не могут согласиться по уважительным причинам, но у партнёра с довольными клиентами обычно найдётся тот, кто согласится на звонок.
Познакомьтесь с инженерами, которые будут делать работу
Люди на встрече с продажами часто не те, кто будет писать ваш код. Попросите до подписания познакомиться с ведущим инженером и хотя бы ещё одним участником предлагаемой команды.
В этом разговоре обсуждайте вашу настоящую систему. Опишите её сложную часть и спросите, как бы они к ней подошли. Вы не проверяете, знают ли они ответ сразу. Вы проверяете, задают ли они разумные вопросы, признают ли, чего не знают, и рассуждают ли о компромиссах вслух.
Спросите также, как собрана команда. Кто уже делал такую работу? Кто новичок? Какую долю времени каждый отдаёт вашему проекту и что будет, если кто-то уйдёт? Партнёр, который не может ясно на это ответить, возможно, собирается набирать людей на ваш проект уже после подписания.
Проверьте партнёрство небольшой оплачиваемой работой
Лучше всего о том, как партнёр будет работать, говорит сама его работа. Прежде чем брать на себя крупные обязательства, закажите что-то небольшое и самостоятельное: этап анализа (discovery), технический аудит или одну чётко определённую функцию.
Этап анализа хорошо для этого подходит, потому что его результат полезен, кто бы ни строил продукт. Обычно он даёт уточнённый объём работ, предложение по архитектуре, список рисков и план первого релиза. По ходу дела вы видите, как команда задаёт вопросы, как пишет, как принимает вашу обратную связь и сдаёт ли то, что обещала, в тот день, который назвала.
При оценке пробной работы смотрите:
- Относится ли результат именно к вашему бизнесу или мог быть написан для кого угодно.
- Нашли ли они проблемы, которых вы не видели, и сказали ли о них прямо.
- Как они общались, когда что-то было неясно или запаздывало.
- Хотели бы вы проработать с этими людьми год.
Если пробная работа прошла плохо, вы потеряли несколько недель и узнали что-то ценное. Если хорошо, основной проект начинается с уже сложившегося общего понимания.