Статья

Как управляют R&D в «Лаборатории Касперского»

Интеграция Бизнес-приложения
мобильная версия

Для «Лаборатории Касперского» – производителя антивирусов с мировым именем – эффективная организация разработки продуктов является бизнес-критичной задачей. Процесс должен быть прозрачным, управляемым, эффективным и одновременно комфортным для более чем 900 разработчиков. В 2011 г. компания выбрала для управления разработками платформу Microsoft Visual Studio Team Foundation Server, а в 2014 г. внедрила последнюю версию системы. О том, как внедрение помогло оптимизировать работу R&D и улучшить сам TFS, рассказала Маргарита Николаева, руководитель группы разработки внутренних инструментов «Лаборатории Касперского».

CNews: Расскажите об истории обращения к платформе Team Foundation Server (TFS).

Маргарита Николаева: В 2011 году у руководителя департамента появилась идея внедрить единый инструмент для управления разработками во всем подразделении R&D. На тот момент мы увидели единственный на рынке инструмент, полностью покрывающей весь процесс разработки, начиная от управления требованиями, тестированием и заканчивая кодом – Microsoft Team Foundation Server. Есть ряд других интересных и удобных инструментов, но они решают локальные задачи, и назвать их единой платформой нельзя.

Летом того же года началось планирование проекта. Параллельно около полугода решение пилотировалось в инфраструктурном подразделении R&D, чтобы понять, смогут ли команды вообще работать в TFS. В ходе пилотного проекта мы увидели, что работать с системой можно. А по результатам сбора требований от остальных команд, поняли, чего недостает в TFS2010 для полномасштабного внедрения в «Лаборатории Касперского». Тогда мы попытались своими же силами реализовать дополнительные инструменты, которые решали бы эти проблемы. Фактически переход на TFS начался в середине 2012–го года, когда все вспомогательные инструменты были готовы.

Подготовительная работа также помогла понять, как перевести на TFS остальных разработчиков. Мы решили внедрять систему не во все команды сразу, а последовательно по четырем направлениям: управление требованиями, управление дефектами, управление тест-кейсами и управление кодом.

CNews: С чем было связано такое разделение?

Маргарита Николаева: Такой подход показался нам эффективнее. Сперва мы запускали один поток, а потом переводили в TFS команды, которые в текущий момент не загружены новыми релизами и могут потратить время на переход в новую систему.

На каждое направление были выделены по несколько человек от команды внедрения. Эти люди погружались в тему, знали все особенности системы и могли очень быстро проконсультировать команду, как действовать в том или ином случае. Итог проекта показал, что идея была правильной. За три года систему внедрили в четырех направлениях. Хотя обычно в практике Microsoft на внедрение одного направления компании уходит больше времени. Более того, в ключевых проектах мы внедрили систему по всем направлениям всего за год.

CNews: А на текущий момент остались команды, которые еще не перешли в TFS?

Маргарита Николаева: Да, остались некоторые команды, которые по техническим причинам пока просто не могут перейти. Я имею в виду кроссплатформенные команды, для которых Microsoft еще не обеспечил все условия для перехода. Мы сотрудничаем с разработчиками Microsoft и ожидаем, что в скором времени в TFS появится возможность кросс-платформенных разработок.

Маргарита Николаева: Из 200 проектов, которые сейчас активно разрабатываются в R&D, около 60–80 покрывают все области управления разработкой возможностями TFS

Сейчас процессы управления требованиями и тестированием перешли полностью в TFS . В управлении дефектами еще остался один проект, который мы планируем перевести в конце года после очередного релиза. Это единственный проект, все остальные управляют дефектами уже внутри TFS. Самая сложная область – это собственно управление кодом, где есть проблемы с кроссплатформенными командами. Тем не менее 30–40% команд этой области работают все равно в TFS. Таким образом, из 200 проектов, которые сейчас активно разрабатываются в R&D, около 60–80 покрывают все области управления разработкой возможностями TFS.

CNews: В связи с чем вы приняли решение о переходе на новую версию 2013 года?

Маргарита Николаева: Нас заинтересовала реализация канбан-досок в TFS 2013, поскольку многие менеджеры проектов применяют канбан-подход. Перевешивание бумажных листочков с задачами несколько отрывает от прозрачности контроля всего процесса разработки. Поэтому нас привлекла возможность перенести эту деятельность внутрь системы управления жизненным циклом разработки, а также получить дополнительную возможность связывать задачи с прочими артефактами для сквозной трассировки. Это позволяет визуализировать текущее состояние проекта в простом и понятном виде. Команды, которые управляют проектами по методологии Scrum, во время планерок открывают на большом экране эту доску, обсуждают и сразу перекидывают сделанное. Встреча проходит очень быстро. И менеджер проекта понимает, как идет процесс.

Правда, получив такую возможность, менеджеры проектов стали жаловаться, что в канбан-досках им не хватает имеющегося функционала. Есть альтернативный инструмент Urban Turtle, который реализует большую часть «хотелок». Сейчас нас прямо терроризируют: «Поговорите с Microsoft. Почему бы не взять на вооружение эти наработки и не реализовать аналогичный функционал внутри TFS?».

Новый интерфейс сайтов проектов позволяет не только перетаскивать задачи и требования на досках, но и видеть прогресс по проекту. Графики строятся автоматически, можно добавить интересующие ключевые показатели и сразу видеть на стартовой странице проекта, например, какая команда недогружена.

Второй очень серьезный момент для нашей команды разработки – появление в новой версии расширенных возможностей при сборке gated check in, а именно «Merge and build up to n submissions». Данная возможность позволяет делать параллельный запуск нескольких сборок с разными изменениями. Если какой-то набор изменений поступает с ошибкой, это не останавливает сборку полностью. На ревизию для поиска ошибки поступают только те изменения, которые отклонены. До внедрения последней версии TFS приходилось делать полную сборку, запускать – и только тогда обнаруживались ошибки. Такая схема сборки занимала гораздо больше времени.

И третий момент. Наши кроссплатформенные команды делали попытки перейти в TFS и очень плотно взаимодействовали с разработчиками из Microsoft, чтобы исправить некоторые дефекты в TFS . Часть проблем была решена в версии 2013 года. Остальные доработки и исправления мы ожидаем в третьем апдейте.

CNews: Вызвал ли сложности переход на новую версию?

Маргарита Николаева: Переход на новую версию оказался несложным и мало повлиял на работу пользователей. Мы построили переход следующим образом. У нас есть второй дата-центр, в котором хранится полная копия всей продуктивной среды. Само обновление и тестирование мы проводили в одном дата-центре. Если бы что-то пошло не так, была возможность перевести пользователей во второй дата-центр. В этом случае пользователи просто продолжили бы работу с TFS 2010. Но такой необходимости не возникло.

Маргарита Николаева: Команда Microsoft работает с нами очень плотно

Непосредственно переход на новую версию занял четверо суток, мы проводили его в новогодние праздники, потребовалось участие четырех специалистов. Некоторые наши команды работают и в выходные, поэтому нам пришлось уложиться в максимально короткие сроки. 5 января разработка продолжилась уже на новой версии.

Такому быстрому переходу предшествовал месяц тестирований. Мы развернули тестовую среду с аналогичным объемом данных. Провели в ней апгрейд, опросили практически весь блок R&D, не забыли ли мы какие-нибудь кастомные приложения, которые используются командами. Разработчики проверили, чтобы эти приложения функционировали на новой версии. Если что-то не работало, оперативно дописывали. Благо к концу года активной разработки не ведется, и нет явных дедлайнов.

CNews: Возможности канбан-досок оказались ограничены, часть функционала пропала, тем не менее вы не жалеете, что перешли на новую версию?

Маргарита Николаева: Нет, не жалеем, потому что раньше канбан-досок вообще не было. В переходе на новую версию мы видим очень большой плюс. К тому же заметно повысилась производительность.

Мы спрашивали разработчиков, что понравилось в новой версии TFS. Многие отметили, что раньше не пользовались веб-интерфейсом, так как он сильно «тормозил». Сейчас им активно пользуются. Многие говорят, что он стал гораздо удобнее. Мы иногда замечаем, что он «подтормаживает» при больших нагрузках, но раньше реакция была в разы медленнее. С нетерпением ждем следующего обновления, в котором заявлено еще большее ускорение работы интерфейса.

CNews: Как команда Microsoft реагирует на многочисленные просьбы о доработке?

Маргарита Николаева: Команда Microsoft работает с нами очень плотно. Насколько я понимаю, мы сделали достаточно большое внедрение. Они активно помогают, ищут по всему миру команды разработки продукта, чтобы удовлетворить наши запросы. Дефекты исправляют достаточно быстро. У нас была парочка серьезных требований на доработку. Их тоже приняли в работу, хотя их реализация явно займет много времени.

По TFS версии 2010 года у нас было 40 обращений в Microsoft, связанных с дефектами в продукте. Что касается новой версии TFS 2013 года, которую, правда, мы используем только 5 месяцев, то число подобных обращений в Microsoft заметно меньше – всего 15 обращений. Причем из них только 8 касались каких-то проблем, а 7 по сути были вопросами по поводу сократившегося функционала. То есть можно сказать, что количество явных проблем сократилось в разы.

CNews: Сколько пользователей работают сейчас в системе?

Маргарита Николаева: Это большая часть блока R&D, который насчитывает порядка 900 человек.

CNews: Вероятно, это одно из крупнейших внедрений TFS?

Маргарита Николаева: Да. Месяц назад у нас проходила процедура Health check. Она заключается в тщательной проверке специалистами Microsoft, как работает TFS в промышленной эксплуатации у клиентов. Заключение гласит, что у нас наиболее крупное внедрение TFS и наиболее грамотное с архитектурной и инфраструктурной точки зрения.

CNews: Какие особенности новой версии вы бы выделили?

Маргарита Николаева: В новой версии сильно улучшен текстовый редактор для работы с кодом. Значительно проще стало искать ошибки в коде, не дожидаясь сборки. Можно сразу наглядно увидеть, что не так. За счет этого уменьшается количество и время сборок.

Коллегам очень понравилась возможность тестирования через веб. Появилась страничка для работы с тест-кейсами. Уменьшилось время отклика веб-портала в целом. Сократилось количество деградаций самого TFS, даже при большой нагрузке со стороны наших кастомных утилит. У нас было внедрено несколько дополнительных утилит для TFS, создававших достаточно серьезную нагрузку на сервер TFS2013, без существенной просадки производительности. Старая версия TFS при этой нагрузке сильно деградировала.

Маргарита Николаева: В наших планах – повысить стабильность, надежность и быстродействие

Команды разработки отмечали, что при работе в предыдущей версии TFS при долгой работе с кодом проекта система могла зависать или уходить в обработку какого-то своего внутреннего процесса. Разработчик не мог продолжить писать. В версии 2013 года это починили. При работе с достаточно большими объемами данных задержек по времени нет.

Собственно, команды очень радуют дополнительные возможности gated check in – ее отмечают все разработчики, даже те, которые не очень любят TFS. Это очень полезный инструмент. Он позволяет отлавливать ошибки в коде на ранних этапах.

CNews: А за что некоторые разработчики не любят TFS? И какую альтернативу они хотели бы видеть?

Маргарита Николаева: Не любят, собственно, те, кто работает на кроссплатформенных проектах. Им больше нравятся старые системы, типа GIT, которая, кстати, сейчас интегрирована в TFS. При этом TFS Version Control серьезнее, массивнее и даже быстрее, чем GIT. Мы исследовали возможности перехода на GIT и поняли, что проще работать с TFS. GIT потребовал бы достаточно серьезной перестройки работы с исходным кодом.

CNews: Управление разработкой, кроме кросс-платформенной, ведется исключительно в TFS или есть другие дублирующие системы?

Маргарита Николаева: Есть команды, которым привычнее работать в других системах. Некоторые сами написали интегрирующие инструменты и работают в своей системе, все равно поставляя в TFS информацию, нужную для полной трассировки.

CNews: А много ли таких?

Маргарита Николаева: Нет, это единицы. Мы сейчас сталкиваемся с тем, что разработчики уже сами к TFS столько всего написали, о чем мы даже не знаем. Мы планируем аггрегировать все наработки на общем портале, чтобы рассказать, какие дополнительные доработки уже созданы нашими сотрудниками, и попросить коллег рассказать о тех, о которых мы не знаем, чтобы распространить интересные решения на другие команды.

Например, создаются всевозможные роботы для обработки, ускорения внутренних процессов. Несколько команд сами написали интеграцию TFS с Outlook. Мы также написали свой сервис для управления инцидентами в TFS. Я знаю, что есть такие покупные решения, но мы сделали его сами.

Команды постепенно привыкают к инструменту, пытаются оптимизировать свою работу. Мы, если вдруг слышим, что кто-то придумал что-то интересное, стараемся эту идею распространить в другие проекты, чтобы можно было работать по одинаковым принципам.

CNews: Каковы ваши ожидания от будущего развития системы?

Маргарита Николаева: В наших планах – повысить стабильность, надежность и быстродействие. Мы подаем идеи в Microsoft и ждем их воплощения.

Недавно вышло второе обновление TFS 2013, которое мы уже начали тестировать. В него заложена еще большая производительность, добавлена работа с тегами и улучшена страница проекта, возможности построения графиков. Планируем переход на него в ближайшее время.

И, конечно, мы ждем, что Microsoft будет продолжать развивать TFS , чтобы кроссплатформенные команды могли вести в нем полноценную разработку. Надеемся, что канбан-доски будут более гибкими.

CNews: Насколько для «Лаборатории Касперского» важно совершенствование процесса разработки?

Маргарита Николаева: Оптимизация важна, и заниматься ею заставляет сама жизнь. Команды что-то придумывают, потом, как я уже рассказала, мы тиражируем этот опыт. Одинаковые процессы позволяют делать процессы прозрачными. Отработанные решения позволяют сделать разработку быстрее и качественнее.

Повышение прозрачности разработки было основной целью внедрения TFS. Поскольку раньше на каждую область было по системе, формирование отчета по какому-то продукту занимало достаточно много времени. TFS позволяет сделать прозрачную трассировку требований, тест-кейсов, дефектов и кода. Всегда можно проследить код в ретроспективе, понять, с чем связаны определенные изменения. Это позволяет разработчикам легче находить причины каких-то изменений и понимать их цель. С этой же целью некоторые из наших бизнес-подразделений, техподдержка начали работать в системе. На базе TFS мы налаживаем взаимодействие с внутренним блоком ИТ, поскольку есть продукты, связанные не только с разработкой, но и с техническими и инфраструктурными решениями, которые поставляет наше ИТ-подразделение.

Бизнес-подразделения постепенно привыкают к TFS. Они хотят вести свои бизнес-требования тоже здесь, чтобы видеть, как они в итоге реализуются и в каких проектах. Они постепенно втягиваются, уходят от своих порталов, в которых отслеживают требования, чтобы все прослеживать в одной системе.

Александра Кирьянова