Это оказалось неожиданно сложным. Если бы я сидел там всю неделю, то не было бы проблем. Но приходя пару раз на 5-6 часов, нужно хорошенько отбирать задачи, которые удастся довести до ума за время спринта (а он у них две недели). Но самым нелегким оказалось взаимодействие с новыми разработчиками, которых я лично знал и в которых был (да и по-прежнему) уверен.
Два новых разработчика кипят энергией и готовы браться за все. Причем действительно знают технические тонкости того, с чем работают. Из-за этого я даже поначалу стушевался из-за своей роли: ну зачем я там как приходящий советчик, если такие ребята за дело взялись? Меня с моей рефлексией вообще легко смутить. Первое подозрение в том, что за ребятами нужен глаз у меня возникло вчера, во время презентации одним из них новоиспеченого диспетчера задач. Объясняя, как подготовить компоненту для диспетчера, он показал целый список того, что в задачу нужно включить - вплоть до доступа к SQL серверу. Меня это удивило: есть инфраструктура (к которой относится этот диспетчер задач), есть бизнес-логика (к которой относится сама задача). Чем меньше они друг от друга требуют, тем лучше. И уж во всяком случае если моя задача - это, скажем, решение квадратного уравнения, требовать от нее доступа к базе данных, потому что какой-то там диспетчер хочет - это не дело. Он хочет, пусть он и сам в эту базу и лезет. Невидимо для окружающих.
Осторожно выразил сомнение в выбранном подходе. Ответная реакция мне показалась слишком оборонительной. "Давай смотреть на это дело с практической стороны." А далее выяснилось, что к коду, который писался две недели, не написано ни одного теста. "Давай будем реалистами - такой темп, что нет времени на тесты." Вот это уже обеспокоило сильней. Все же 2011 год на дворе. Опять же осторожно поинтересовался, означает ли это, что они готовы пустить в продукцию код без тестирования. Ответ был честным: да, готовы, потому что считают риск оправданным. Система хоть и работает с заказами и деньгами, но будем мониторить, быстро починим. В общем, даже логично.
Устные дискуссии - не самая моя сильная сторона, к тому же мне важно сохранить друженственные отношения. Кроме того, в сказанном ими был пойнт: в конце концов если заказчик сочтет такую стратегию допустимый, то не мне артачиться.
Не скрывая своего несогласия, решил прояснить ситуацию с заказчиком. Частично и потому, что это может уточнить (и даже уничтожить) мою роль: соглашаясь подключиться к проекту, я отметил, что среди его слабостей - отсутствие автоматизации чего-либо, все - от тестирования до установки на серверы - шло вручную. Мне был дан карт-бланш на реализацию определенных идей, которые связаны с автоматизацией тестирования и работы со спецификациями. Если же общий настрой команды иной, то и мое участие можно пересмотреть.
Заказчик высказался определенно: упрощение архитектуры и автоматизация. То есть предстоит борьба. Усложняет ее то, что борьба это будет с энтузиастами, способными в кратчайшие сроки показать заказчику то, чего он ждет. В такие моменты трудно (да и не хочется) портить праздник, занудно напоминая, что это всего лишь прототип, поскольку не было контроля качества, да и непонятно, как это решение устанавливать и сопровождать.
В такие периоды я иногда жалею, что не фрилансер-одиночка. Но подобная ситуация не впервой. Лишь однажды не удалось обломать.