Разделы

Цифровизация Бизнес-приложения

Как управляют 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. Они хотят вести свои бизнес-требования тоже здесь, чтобы видеть, как они в итоге реализуются и в каких проектах. Они постепенно втягиваются, уходят от своих порталов, в которых отслеживают требования, чтобы все прослеживать в одной системе.

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