SlideShare a Scribd company logo
Внедрение контроля качества
в большом web-проекте
на примере Badoo
Badoo - сайт знакомств с новыми людьми,
крупнейшая интернет-компания Западной Европы.
• 300 000 000+ пользователей
• 190 стран
• 46 языков
Badoo в наши дни
С технической точки зрения это
• 150+ разработчиков и 50+ QA инженеров
• 3 000 000+ строк кода
• 60000+ юнит-тестам
• 600+ selenium-тестам
• 2 ежедневных релиза
Badoo в наши дни
Как это было?
Feature1
Feature2
Feature3
Bugfix1
Bugfix2
Разработка
trunk
commits
release releasesvn
Переводы, тестирование и выкладка
svn
Staging
QA + Translation Production
Deploy
Как это было?
Devel
Преимущества
Как это было?
Преимущества
• Скорость обсуждения задачи
Как это было?
Преимущества
• Скорость обсуждения задачи
• Скорость разработки
Как это было?
Преимущества
• Скорость обсуждения задачи
• Скорость разработки
• Проверенные инструменты
Как это было?
Преимущества
• Скорость обсуждения задачи
• Скорость разработки
• Проверенные инструменты
• Тесное общение
Как это было?
Недостатки
Как это было?
Недостатки
• Незавершенные задачи в выкладке
Как это было?
Недостатки
• Незавершенные задачи в выкладке
• Тяжело отслеживать состояние кода
Как это было?
Недостатки
• Незавершенные задачи в выкладке
• Тяжело отслеживать состояние кода
• Невозможно откатить задачу
Как это было?
Недостатки
• Незавершенные задачи в выкладке
• Тяжело отслеживать состояние кода
• Невозможно откатить задачу
• Работа отделов волнообразно зависит от
выкладки
Как это было?
Еще недостатки
• Выкладка задач тормозится
Как это было?
Еще недостатки
• Выкладка задач тормозится
• Выкладка 1-2 раза в неделю
Как это было?
Еще недостатки
• Выкладка задач тормозится
• Выкладка 1-2 раза в неделю
• Тяжелый процесс выкладки
Как это было?
Еще недостатки
• Выкладка задач тормозится
• Выкладка 1-2 раза в неделю
• Тяжелый процесс выкладки
• С ростом команды растут проблемы с качеством
Как это было?
Глобальные требования
• Формализовать процесс разработки
Глобальные требования
• Формализовать процесс разработки
• Внедрить контроль качества на всех этапах
Глобальные требования
• Формализовать процесс разработки
• Внедрить контроль качества на всех этапах
• Внедрить автоматизированное тестирование
Глобальные требования
• Формализовать процесс разработки
• Внедрить контроль качества на всех этапах
• Внедрить автоматизированное тестирование
• Не потерять в скорости разработки
Этап первый:
упрощаем разработку
Задача: спроектировать удобный процесс
параллельной разработки?
Этап первый:
упрощаем разработку
Задача: спроектировать удобный процесс
параллельной разработки
Решение: заменить svn на git, который
позволяет удобно осуществлять разработку в
собственной версии кода каждому
разработчику
?
!
master
build_2016_03_21_11am
SRV-10637_add_sf_support
build_2016_03_21_4pm
BD-1786_spp_in_spain B0-435_cs_improvements
release release
Этап первый:
упрощаем разработку
git
Проектируем и пробуем
Этап первый:
упрощаем разработку
+
Проектируем и пробуем
• Используем оба хранилища - и svn, и git
Этап первый:
упрощаем разработку
+
Проектируем и пробуем
• Используем оба хранилища - и svn, и git
• Синхронизация кода при помощи git svn
Этап первый:
упрощаем разработку
+
Проектируем и пробуем
• Используем оба хранилища - и svn, и git
• Синхронизация кода при помощи git svn
Переводим на новую схему одну из команд
Этап первый:
упрощаем разработку
+
Анализируем и дополняем
Этап первый:
упрощаем разработку
+
Анализируем и дополняем
• Базовая инструкция дополнена четкими шагами
Этап первый:
упрощаем разработку
+
Анализируем и дополняем
• Базовая инструкция дополнена четкими шагами
• Разработан прототип системы сборки релиза
Этап первый:
упрощаем разработку
+
Анализируем и дополняем
• Базовая инструкция дополнена четкими шагами
• Разработан прототип системы сборки релиза
Начинаем перевод остальных отделов
Этап первый:
упрощаем разработку
+
Переходим полностью
Этап первый:
упрощаем разработку
+
Переходим полностью
• Презентация об основах работы с git
Этап первый:
упрощаем разработку
+
Переходим полностью
• Презентация об основах работы с git
• Помощь в переходный период
Этап первый:
упрощаем разработку
+
Переходим полностью
• Презентация об основах работы с git
• Помощь в переходный период
• Специальная страничка в Confluence
Этап первый:
упрощаем разработку
+
Переходим полностью
• Презентация об основах работы с git
• Помощь в переходный период
• Специальная страничка в Confluence
Торжественное закрытие svn
Этап первый:
упрощаем разработку
+
Этап второй:
unit-тесты
Задача: дать разработчику быстрый ответ о
качестве кода на ранних этапах разработки?
Этап второй:
unit-тесты
Задача: дать разработчику быстрый ответ о
качестве кода на ранних этапах разработки
Решение: unit-тесты, написанные самим
разработчиком + регрессионные тесты,
написанные коллегами ранее
?
!
Внедрение культуры написания юнит-тестов
Этап второй:
unit-тесты
+
Внедрение культуры написания юнит-тестов
• Написание нескольких примеров
Этап второй:
unit-тесты
+
Внедрение культуры написания юнит-тестов
• Написание нескольких примеров
• Организация семинаров
Этап второй:
unit-тесты
+
Внедрение культуры написания юнит-тестов
• Написание нескольких примеров
• Организация семинаров
• Показательная демонстрация полезности
Этап второй:
unit-тесты
+
Внедрение культуры написания юнит-тестов
• Написание нескольких примеров
• Организация семинаров
• Показательная демонстрация полезности
• Поощрение первопроходцев
Этап второй:
unit-тесты
+
Стимулируем процесс
Этап второй:
unit-тесты
+
Стимулируем процесс
• Добавление инструментов
Этап второй:
unit-тесты
+
Стимулируем процесс
• Добавление инструментов
• Добавление обязательного прогона unit-тестов
Этап второй:
unit-тесты
+
Стимулируем процесс
• Добавление инструментов
• Добавление обязательного прогона unit-тестов
Как результат - резкий рост количества юнит-тестов:
с пары десятков до более 3000.
Этап второй:
unit-тесты
+
Этап третий:
code review
Задача: повысить читаемость кода, добавив
процесс ревью кода и удобный интрумент
для него
?
Этап третий:
code review
Задача: повысить читаемость кода, добавив
процесс ревью кода и удобный интрумент
для него
Решение: gitphp с надстройками для ревью и
интеграцией с Jira
?
!
Процесс - обязательный. Способ - вольный:
Этап третий:
code review
+
Процесс - обязательный. Способ - вольный:
• code review осуществляется руководителем отдела
Этап третий:
code review
+
Процесс - обязательный. Способ - вольный:
• code review осуществляется руководителем отдела
• code review - внутри группы
Этап третий:
code review
+
Процесс - обязательный. Способ - вольный:
• code review осуществляется руководителем отдела
• code review - внутри группы
• задачи попадают в общую очередь на review
Этап третий:
code review
+
Процесс - обязательный. Способ - вольный:
• code review осуществляется руководителем отдела
• code review - внутри группы
• задачи попадают в общую очередь на review
• review проводят от каждого отдела
Этап третий:
code review
+
Этап четвертый:
автоматизация процессов
Задача: ускорить выкладку новых фич, не
потеряв в качестве?
Этап четвертый:
автоматизация процессов
Задача: ускорить выкладку новых фич, не
потеряв в качестве
Решение: специальная команда release-
инженеров для автоматизации сборки и
выкладки билда
?
!
Внедрение
автоматизации
Автовыкладка
на стейджинг
Code freeze
git hooks
AIDA
CI + CD
Selenium
Шоты
Этап четвертый:
автоматизация процессов
Подзадача: автоматизировать часть code
review
Этап четвертый:
автоматизация процессов
?
Подзадача: автоматизировать часть code
review
Решение: добавляются новые git-хуки,
использующие в том числе анализаторы кода
Этап четвертый:
автоматизация процессов
?
!
Что начинаем проверять
+
Этап четвертый:
автоматизация процессов
Что начинаем проверять
• Каждая ветка начинается с номера задачи
+
Этап четвертый:
автоматизация процессов
Что начинаем проверять
• Каждая ветка начинается с номера задачи
• Наличие сопровождающего для кода
+
Этап четвертый:
автоматизация процессов
Что начинаем проверять
• Каждая ветка начинается с номера задачи
• Наличие сопровождающего для кода
• Состояние задачи
+
Этап четвертый:
автоматизация процессов
Что начинаем проверять
• Каждая ветка начинается с номера задачи
• Наличие сопровождающего для кода
• Состояние задачи
• Соответствие кода принятым стандартам
+
Этап четвертый:
автоматизация процессов
Подзадача: разумно организовать сборку
билда
Этап четвертый:
автоматизация процессов
?
Подзадача: разумно организовать сборку
билда
Решение: уменьшаем человеческий фактор в
процессе сборки
Этап четвертый:
автоматизация процессов
?
!
Разгружаем релиз-инженеров
+
Этап четвертый:
автоматизация процессов
Разгружаем релиз-инженеров
• В помощь написана AIDA
+
Этап четвертый:
автоматизация процессов
Разгружаем релиз-инженеров
• В помощь написана AIDA
• Автомерж каждые 5 минут
+
Этап четвертый:
автоматизация процессов
Разгружаем релиз-инженеров
• В помощь написана AIDA
• Автомерж каждые 5 минут
• Вводится code freeze перед выкладками
+
Этап четвертый:
автоматизация процессов
Разгружаем релиз-инженеров
• В помощь написана AIDA
• Автомерж каждые 5 минут
• Вводится code freeze перед выкладками
Два релиза в день!
+
Этап четвертый:
автоматизация процессов
Подзадача: ускорить unit-тесты (написано уже
более 25000!)
Этап четвертый:
автоматизация процессов
?
Подзадача: ускорить unit-тесты (написано уже
более 25000!)
Решение: разделение unit-тестов на группы
для асинхронного прогона на нескольких
серверах
Этап четвертый:
автоматизация процессов
?
!
Этап четвертый:
автоматизация процессов
Common
suite
+
suite 1
suite 3
suite 2
suite 4
suite 5
suite 6
Этап четвертый:
автоматизация процессов
Common
suite
+
suite 1
suite 3
suite 2
suite 4
suite 5
suite 6
Cloud
computing
Этап четвертый:
автоматизация процессов
Common
suite
+
Подзадача: упростить повторные проверки
сложных сценариев
Этап четвертый:
автоматизация процессов
?
Подзадача: упростить повторные проверки
сложных сценариев
Решение: подключить к написанию selenium-
тестов всех QA-инженеров
Этап четвертый:
автоматизация процессов
?
!
Реализуем
Этап четвертый:
автоматизация процессов
+
Реализуем
• Команда автоматизаторов тестов
Этап четвертый:
автоматизация процессов
+
Реализуем
• Команда автоматизаторов тестов
• Цикл cеминаров
Этап четвертый:
автоматизация процессов
+
Реализуем
• Команда автоматизаторов тестов
• Цикл cеминаров
• Когда можно и нужно писать selenium-тесты
Этап четвертый:
автоматизация процессов
+
Реализуем
• Команда автоматизаторов тестов
• Цикл cеминаров
• Когда можно и нужно писать selenium-тесты
Участвует каждый QA-инженер!
Этап четвертый:
автоматизация процессов
+
Подзадача: уметь
проверять задачу
на боевых данных
до выкладки.
Этап четвертый:
автоматизация процессов
?
Подзадача: уметь
проверять задачу
на боевых данных
до выкладки.
Решение: шоты -
создание
“стейджинга” для
отдельной ветки
(бонус - генерация
шаблонов).
Этап четвертый:
автоматизация процессов
?
!
Подзадача: дополнить автоматизированные
проверки составных задач
Этап четвертый:
автоматизация процессов
?
Подзадача: дополнить автоматизированные
проверки составных задач
Решение: AIDA приобретает дополнительные
возможности
Этап четвертый:
автоматизация процессов
?
!
Дополнительные возможности
Этап четвертый:
автоматизация процессов
+
Дополнительные возможности
• Проверка дополнительных маркеров
Этап четвертый:
автоматизация процессов
+
Дополнительные возможности
• Проверка дополнительных маркеров
• Запуск smoke-тестов
Этап четвертый:
автоматизация процессов
+
Дополнительные возможности
• Проверка дополнительных маркеров
• Запуск smoke-тестов
• Пересборка билда при откате проблемной задачи
Этап четвертый:
автоматизация процессов
+
Дополнительные возможности
• Проверка дополнительных маркеров
• Запуск smoke-тестов
• Пересборка билда при откате проблемной задачи
• Нотификации разработчику и QA-инженеру
Этап четвертый:
автоматизация процессов
+
Подзадача: уметь быстро определять и
решать проблемы при выкладке
Этап четвертый:
автоматизация процессов
?
Подзадача: уметь быстро определять и
решать проблемы при выкладке
Решение: расширение мониторинга и
карантин на завершение выкладки
Этап четвертый:
автоматизация процессов
?
!
Контроль выкладки
Этап четвертый:
автоматизация процессов
+
Контроль выкладки
• Асинхронная выкладка, атомарное переключение
Этап четвертый:
автоматизация процессов
+
Контроль выкладки
• Асинхронная выкладка, атомарное переключение
• Мониторинг ключевых показателей
Этап четвертый:
автоматизация процессов
+
Контроль выкладки
• Асинхронная выкладка, атомарное переключение
• Мониторинг ключевых показателей
• Быстрый “откат” при проблемах
Этап четвертый:
автоматизация процессов
+
• Набирать высококлассных QA-инженеров
• Подобные задачи требуют времени
• Искать пути оптимизации
Что же ещё?
Александр Свинцов
svintsov.alexander@gmail.com
Badoo Development
tech.badoo.com
habrahabr.ru/company/badoo/
Спасибо за внимание!
?

More Related Content

PDF
Технический долг: взгляд и действия со стороны QA / QC&AT
PDF
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
PPTX
Багфиксинг процесса разработки в iOS: взгляд с двух сторон
PPTX
Jenkins 2.0: Организуем тестирование в составе Continuous Delivery
PDF
Как автотесты ускоряют релизы в OK.ru
PDF
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
PPTX
Организация эффективной работы команды при разработке и поддержке сложной инф...
PDF
Экономически эффективный процесс тестирования
Технический долг: взгляд и действия со стороны QA / QC&AT
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Багфиксинг процесса разработки в iOS: взгляд с двух сторон
Jenkins 2.0: Организуем тестирование в составе Continuous Delivery
Как автотесты ускоряют релизы в OK.ru
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
Организация эффективной работы команды при разработке и поддержке сложной инф...
Экономически эффективный процесс тестирования

What's hot (20)

PDF
Grail: шаги для ваших Python-тестов
PPTX
Вебинар о конференции HighLoad++
PDF
Badger — инструмент для мониторинга качества продуктов
PDF
Github Flow. Тестировщики против тестирования
PDF
Дефицит ресурсов тестирования... или нет?
PDF
Технологии vs коммуникации: что важнее?
PPT
Асхат Уразбаев, Руководство по организации тестирования в Agile
PDF
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
PPT
Технология QG для обеспечения качества ПО
PPTX
Тестируем производительность с помощью Selenium
PDF
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
PDF
Как 3 тестировщика играючи тестируют приложение для 10млн пользователей
PDF
Continuousdelivery
PPTX
А. Калугин. О параллельном тестировании нескольких проектов. SQADays'10
PDF
Мобильный веб: назад в будущее
PPTX
Александр Шуров, Олег Николенко «Как устроено автоматическое frontend-тестир...
PDF
Тестирование весна 2013 лекция 5
PPTX
GUI-автоматизация в Telerik Test Studio
PPTX
Роман Василенко. Continuous delivery или как упростить себе жизнь
PDF
Highway to Сontinuous Integration, Денис Трифонов (2GIS)
Grail: шаги для ваших Python-тестов
Вебинар о конференции HighLoad++
Badger — инструмент для мониторинга качества продуктов
Github Flow. Тестировщики против тестирования
Дефицит ресурсов тестирования... или нет?
Технологии vs коммуникации: что важнее?
Асхат Уразбаев, Руководство по организации тестирования в Agile
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
Технология QG для обеспечения качества ПО
Тестируем производительность с помощью Selenium
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Как 3 тестировщика играючи тестируют приложение для 10млн пользователей
Continuousdelivery
А. Калугин. О параллельном тестировании нескольких проектов. SQADays'10
Мобильный веб: назад в будущее
Александр Шуров, Олег Николенко «Как устроено автоматическое frontend-тестир...
Тестирование весна 2013 лекция 5
GUI-автоматизация в Telerik Test Studio
Роман Василенко. Continuous delivery или как упростить себе жизнь
Highway to Сontinuous Integration, Денис Трифонов (2GIS)
Ad

Viewers also liked (20)

PPS
Anna kostenko (no son fotos son pinturas)
KEY
Air Quality
PDF
РИФ 2016, Особенности влияния топ-блогеров на имидж территорий
PDF
РИФ 2016, Wi-Fi в метро – результаты первого года работы, мы знаем о вас боль...
PDF
РИФ 2016, Как помирить Branding и Performance?
PPS
όργουελ εναντίον χάξλεϋ 2
ODP
PDF
Telling Tales - Helping users for profit and pleasure
PPS
Iglesias
PPT
Open Educational Resources. Building a Culture of Sharing
PDF
Turniej Elektrybałtow
PDF
!Rif13.17apr s14--sidorov эффективность adwords
PDF
Современная верстка с адекватными трудозатратами Максим Тимохин, технолог, И...
PDF
Spivakminskeffectiveness200902print 110207061639-phpapp01
PDF
20101119 fs-kratong53
PPTX
Monetize PaaS Windows Azure and Implementation Models
PPT
Set 11 prepositions and prepositional phrases
PPT
Presentatie huisstijl en website
PPS
Et dieu crea_la_mer
Anna kostenko (no son fotos son pinturas)
Air Quality
РИФ 2016, Особенности влияния топ-блогеров на имидж территорий
РИФ 2016, Wi-Fi в метро – результаты первого года работы, мы знаем о вас боль...
РИФ 2016, Как помирить Branding и Performance?
όργουελ εναντίον χάξλεϋ 2
Telling Tales - Helping users for profit and pleasure
Iglesias
Open Educational Resources. Building a Culture of Sharing
Turniej Elektrybałtow
!Rif13.17apr s14--sidorov эффективность adwords
Современная верстка с адекватными трудозатратами Максим Тимохин, технолог, И...
Spivakminskeffectiveness200902print 110207061639-phpapp01
20101119 fs-kratong53
Monetize PaaS Windows Azure and Implementation Models
Set 11 prepositions and prepositional phrases
Presentatie huisstijl en website
Et dieu crea_la_mer
Ad

Similar to РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo (20)

PPTX
Free Desktop QA Engineers: implement automation testing
PPTX
Развитие сообщества Open DevOps Community
PDF
Фронтенд для миллионов (Орёл)
PDF
Юрий Василевский «Автоматизация в XCode»
PDF
Юрий Василевский "Автоматизация в XCode"
PDF
Организация автоматического тестирования в схеме непрерывной интеграции
PPTX
Роман Кокин «Организация тестирования в больших командах»
PPTX
Типовая сборка и деплой продуктов в Positive Technologies
PPTX
Лучшие практики на практике
PDF
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
PDF
QAFest. Роль тестирования в Devops
PDF
DevOps guide for awesome quality assurance
PPTX
Continious integration-Automated Testing-Solid-Agile
PDF
Тестирование осень 2013 лекция 5
PDF
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
PPTX
Улучшить KPI в два раза? Сделано!
PPTX
Автоматическое тестирование Web api
PDF
Учебный день конференции HighLoad++ 2013
PDF
Александр Саитов «Основы профилирования и оптимизации приложений в .NET»
PDF
Enter: testing
Free Desktop QA Engineers: implement automation testing
Развитие сообщества Open DevOps Community
Фронтенд для миллионов (Орёл)
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский "Автоматизация в XCode"
Организация автоматического тестирования в схеме непрерывной интеграции
Роман Кокин «Организация тестирования в больших командах»
Типовая сборка и деплой продуктов в Positive Technologies
Лучшие практики на практике
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QAFest. Роль тестирования в Devops
DevOps guide for awesome quality assurance
Continious integration-Automated Testing-Solid-Agile
Тестирование осень 2013 лекция 5
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
Улучшить KPI в два раза? Сделано!
Автоматическое тестирование Web api
Учебный день конференции HighLoad++ 2013
Александр Саитов «Основы профилирования и оптимизации приложений в .NET»
Enter: testing

More from Тарасов Константин (20)

PDF
21apr rif17 4-1--sidorov
PDF
Excel. трюки. 100 профессиональных примеров
PDF
Влияние маркеров на CTR в Директе. РСЯ
PDF
Влияние маркеров на CTR в Директе. Поисковая реклама
PDF
РИФ 2016, Продажи, через стратегию продвижение постов на Facebook
PDF
РИФ 2016, Таргетированная реклама: как снизить стоимость клиента в 3-5 раз
PDF
РИФ 2016. 3 способа стимулировать клиентов рекомендовать вашу компанию (без п...
PDF
РИФ 2016, Бюджетные технические средства защиты сайтов
PDF
РИФ 2016, Борьба с воровством мобильного трафика
PDF
РИФ 2016, Заоблачная безопасность: как обойти чужие грабли
PDF
РИФ 2016, Аварии информационных систем как угроза для бизнеса
PDF
РИФ 2016, Забег на 110 метров с барьерами и наградой в виде внимания клиентов
PDF
РИФ 2016, Официальный фотограф LEGO Россия 2015
PDF
РИФ 2016, «Лаборатория Бега»: Эксперименты с магазинами спортивной экипировки
PDF
РИФ 2016, Эволюция продвижения страницы бренда: 10 шагов достижения результат...
PDF
РИФ 2016, Ведение международных рекламных кампаний в Европе и Азии
PDF
РИФ 2016, Десять лет на американском рынке аутсорсинга: UpWork и за его преде...
PDF
РИФ 2016, Digital на экспорт в Германию
PDF
РИФ 2016, Как получить первую сотню клиентов из Западной Европы
PDF
РИФ 2016, Мультиканальное продвижение или как раскрыть потенциал вашего сайта
21apr rif17 4-1--sidorov
Excel. трюки. 100 профессиональных примеров
Влияние маркеров на CTR в Директе. РСЯ
Влияние маркеров на CTR в Директе. Поисковая реклама
РИФ 2016, Продажи, через стратегию продвижение постов на Facebook
РИФ 2016, Таргетированная реклама: как снизить стоимость клиента в 3-5 раз
РИФ 2016. 3 способа стимулировать клиентов рекомендовать вашу компанию (без п...
РИФ 2016, Бюджетные технические средства защиты сайтов
РИФ 2016, Борьба с воровством мобильного трафика
РИФ 2016, Заоблачная безопасность: как обойти чужие грабли
РИФ 2016, Аварии информационных систем как угроза для бизнеса
РИФ 2016, Забег на 110 метров с барьерами и наградой в виде внимания клиентов
РИФ 2016, Официальный фотограф LEGO Россия 2015
РИФ 2016, «Лаборатория Бега»: Эксперименты с магазинами спортивной экипировки
РИФ 2016, Эволюция продвижения страницы бренда: 10 шагов достижения результат...
РИФ 2016, Ведение международных рекламных кампаний в Европе и Азии
РИФ 2016, Десять лет на американском рынке аутсорсинга: UpWork и за его преде...
РИФ 2016, Digital на экспорт в Германию
РИФ 2016, Как получить первую сотню клиентов из Западной Европы
РИФ 2016, Мультиканальное продвижение или как раскрыть потенциал вашего сайта

РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo