Доклад Алексея Рыбака, зам. главы разработки Badoo, на РИФ+КИБ 2013. Секция Комиссии по веб-разработке РАЭК «Организация эффективного производства интернет-проектов».
Александр Андронов, Engineering AssessmentScrumTrek
Улучшить можно то, что можно измерить. Это главный тезис измерения. Мы измеряем, чтобы улучшать. Мы хотим улучшать код, инженерку. Для этого нужно код измерять. Как?
Я расскажу о метриках на самом низком уровне создания IT-продуктов. О тех метриках, которые находятся на уровне инженерки, на уровне программистов и QA. Упор сделан на те, которые зависят от человеческого фактора, которые не измерить автоматическими инструментами. Работая над несколькими проектами и наблюдая за десятком других как Agile-тренеры, мы выработали 9 метрик, которые описывают текущее состояние системы с точки зрения инженерки. В динамике они помогают мгновенно реагировать, если что-то идет не так.
Алексей Турчаников и Николай Сидоренко выступят с докладом об опыте внедрения автоматизированного тестирования через интерфейс (Web и десктоп) в их проекте: как проходили через целый лес организационных и технических "граблей" и в конце-концов добились своей цели.
В обзоре: SOAP UI, TestComplete, Ranorex, Cucumber, SpecFlow, Robot Framework + RIDE, Selenium WebDriver (Java & C#), White.А также: как не стоит нанимать тестировщиков-автоматизаторов, какой процент тестировщиков не начнет писать тесты, чем ценны тестировщицы-девушки.
SECON'2016 Евтухович Иван, Эксплуатация завтрашнего дня: от DevOps к NoOpsSECON
За последние годы у ИТ-сообщества накопился опыт использования систем управления конфигурацией и работой в организации по методологии DevOps. Но растущие вызовы показывают, что и этот подход имеет свои недостатки. Доклад расскажет о том, какие контейнеры бывают и почему они победят, что придет на смену облакам, и какие практики стоит начать внедрять сегодня, чтобы завтра не остаться без работы.
Реальный DevOps в энтерпрайзе / Александр Тараторин (Райффайзенбанк)Ontico
РИТ++ 2017, Web-scale IT Сonference
Зал Владивосток, 5 июня, 18:00
Тезисы:
http://webscaleconf.ru/2017/abstracts/2828.html
Что такое DevOps? Очередной модный термин? Методология? Набор инструментов? Культурные практики?
Для Райффайзенбанка DevOps - микс из всего перечисленного (смешать, но не взбалтывать!), применяемый чтобы:
- ускорить разработку и внедрение новых решений не в ущерб качеству;
- вовлечь админов в работу девелопмента;
- заинтересовать разработчиков жизнеспособностью их творений в реальной жизни.
...
Software craftsmanship фиксит проблемы AgilePavel Veinik
На 6м митапе мы подойдем к проблеме говна со стороны команды и процессов, а не со стороны технологий и архитектуры, и рассмотрим поближе, чем и как нам могут помочь принципы Software Craftsmanship. Мы увидим, что суть всех процессов - это коммуникации, а суть коммуникации - это настроенные каналы передачи информации. Мы рассмотрим, как настраивать эти каналы передачи информации, и увидим, что процессы - это отношения между людьми, прописанные на бумаге.
Александр Андронов, Engineering AssessmentScrumTrek
Улучшить можно то, что можно измерить. Это главный тезис измерения. Мы измеряем, чтобы улучшать. Мы хотим улучшать код, инженерку. Для этого нужно код измерять. Как?
Я расскажу о метриках на самом низком уровне создания IT-продуктов. О тех метриках, которые находятся на уровне инженерки, на уровне программистов и QA. Упор сделан на те, которые зависят от человеческого фактора, которые не измерить автоматическими инструментами. Работая над несколькими проектами и наблюдая за десятком других как Agile-тренеры, мы выработали 9 метрик, которые описывают текущее состояние системы с точки зрения инженерки. В динамике они помогают мгновенно реагировать, если что-то идет не так.
Алексей Турчаников и Николай Сидоренко выступят с докладом об опыте внедрения автоматизированного тестирования через интерфейс (Web и десктоп) в их проекте: как проходили через целый лес организационных и технических "граблей" и в конце-концов добились своей цели.
В обзоре: SOAP UI, TestComplete, Ranorex, Cucumber, SpecFlow, Robot Framework + RIDE, Selenium WebDriver (Java & C#), White.А также: как не стоит нанимать тестировщиков-автоматизаторов, какой процент тестировщиков не начнет писать тесты, чем ценны тестировщицы-девушки.
SECON'2016 Евтухович Иван, Эксплуатация завтрашнего дня: от DevOps к NoOpsSECON
За последние годы у ИТ-сообщества накопился опыт использования систем управления конфигурацией и работой в организации по методологии DevOps. Но растущие вызовы показывают, что и этот подход имеет свои недостатки. Доклад расскажет о том, какие контейнеры бывают и почему они победят, что придет на смену облакам, и какие практики стоит начать внедрять сегодня, чтобы завтра не остаться без работы.
Реальный DevOps в энтерпрайзе / Александр Тараторин (Райффайзенбанк)Ontico
РИТ++ 2017, Web-scale IT Сonference
Зал Владивосток, 5 июня, 18:00
Тезисы:
http://webscaleconf.ru/2017/abstracts/2828.html
Что такое DevOps? Очередной модный термин? Методология? Набор инструментов? Культурные практики?
Для Райффайзенбанка DevOps - микс из всего перечисленного (смешать, но не взбалтывать!), применяемый чтобы:
- ускорить разработку и внедрение новых решений не в ущерб качеству;
- вовлечь админов в работу девелопмента;
- заинтересовать разработчиков жизнеспособностью их творений в реальной жизни.
...
Software craftsmanship фиксит проблемы AgilePavel Veinik
На 6м митапе мы подойдем к проблеме говна со стороны команды и процессов, а не со стороны технологий и архитектуры, и рассмотрим поближе, чем и как нам могут помочь принципы Software Craftsmanship. Мы увидим, что суть всех процессов - это коммуникации, а суть коммуникации - это настроенные каналы передачи информации. Мы рассмотрим, как настраивать эти каналы передачи информации, и увидим, что процессы - это отношения между людьми, прописанные на бумаге.
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.Vadim Martynov
Это настоящий курс молодого бойца по коммерческой разработке ПО в компаниях и распределённых командах.В рамках курса слушатели приобретут навыки по участию в командной разработке, взаимодействию с аналитиками, заказчиком, менеджером и отделом тестирования, совместной работой с кодом, пониманию особенностей построения высоконагруженных систем, анализу качества продукта и автоматизации тестирования.
Алексей Лустин. Непрерывная проверка качества кода.ScrumTrek
Я расскажу о нашем двухлетнем опыте использования инженерной практики «Continious Inspection» и платформы SonarQube при организации кросс-языковой разработки в процессе «непрерывной поставки» (CI-CD для языков Java, C#, JavaScript, typeScript и Gherkin) при автоматизированном code-review.
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...Badoo Development
Доклад о том, как выжить в условиях двух релизов в день, не понижая планку
качества проекта и дать разработчикам и QA-инженерам больше времени на
полезные дела.
Подробно:
Прослушав доклад, вы узнаете:
1. Что НА САМОМ ДЕЛЕ называется непрерывной интеграцией;
2. Кому и зачем нужно переходить на Continious Integration;
3. Почему процесс контроля качества начинается ещё до написания кода;
4. Как программисты учавствуют в процессе тестирования;
5. Как устроен наш поток тестирования с пятью (!) уровнями контроля;
6. Как наши QA-инженеры тестируют задачи до релиза в максимально
реалистичных условиях;
7. Как помогает тестированию плотная интеграция Git, Jira и TeamCity;
8. Зачем нужны более 20 тысяч автоматических тестов и кто их должен
разрабатывать и поддерживать;
9. Чем непрерывно занимаются более 10 агентов-тестировщиков в нашей
TeamCity;
10. Какими средствами мы добились того, чтобы пункты 8 и 9 не превращал
QA-процесс в долгое и унылое действо.
Solit 2013, Open Source continuous integration in java, Калачев Дмитрийsolit
Дмитрий Калачёв, Минск, компания JazzTeam, Software Engineer (R&D, frameworks and android development)
«Open Source continuous integration in java». Development секция. Для студентов и разработчиков.Рассказ про dev процесс, который применяется в компании, и про разные компоненты в отдельности: gerrit, jenkins, git, trac, nexus, про то как проходит релизинг из отдельной ветки и как это можно автоматизировать с помощью maven плагина.
Презентация на комплексную тему Continious integration-Automated Testing-Agile, показывается связи между этими темам, обоснование автоматического тестирования , и вложения ресурсов для развертывания автоматического тестирования и непрерываной интеграциия. Все темы тесно связаны между собой , хотя бы появились независимос друг от друга.
Презентация подготовлена по материалам выступления Виталия Квятковского на Весеннем MiniQ'e (http://vk.com/event121580131), который был проведен 26 мая 2016.
Доклад с PUG#1 https://www.facebook.com/events/1505404039679797/
Доклад посвящен непрерывной интеграции и ее роли в процессе разработки проектов. В нем освещены следующие вопросы:
* Как избежать проблем в интеграции?
* Зачем нужны тесты?
* Как организовать работу так, чтобы всегда иметь под рукой прозрачное и работающее приложение?
* Как быть в курсе событий на своем проекте в любой момент времени?
Также, в докладе освещены основные плюсы работы с системами непрерывной интеграции на примере Jenkins.
PHP User Group Ukraine в социальных сетях:
https://www.facebook.com/pug.ukraine
https://vk.com/pug.ukraine
https://www.linkedin.com/groups/PHP-User-Group-Ukraine-6703717
Доклад Алексея Рыбака на Whalerider 2013. Эволюция разработки в Badoo.Badoo Development
В докладе освещена ретроспектива организации разработки крупного интернет-проекта от стартапа до 190 миллионов пользователей.
Как устроена разработка сейчас, как в процессе развития проекта её перестраивали, какие проблемы решали,
преодолевая кризисы роста, на какие грабли наступали. В секции вопросов есть интересная информация о том, как в Badoo устроена
система мотивации и бонусов. Доклад будет интересен всем, кто занимается организацией процесса разработки в крупных интернет-проектах.
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.Vadim Martynov
Это настоящий курс молодого бойца по коммерческой разработке ПО в компаниях и распределённых командах.В рамках курса слушатели приобретут навыки по участию в командной разработке, взаимодействию с аналитиками, заказчиком, менеджером и отделом тестирования, совместной работой с кодом, пониманию особенностей построения высоконагруженных систем, анализу качества продукта и автоматизации тестирования.
Алексей Лустин. Непрерывная проверка качества кода.ScrumTrek
Я расскажу о нашем двухлетнем опыте использования инженерной практики «Continious Inspection» и платформы SonarQube при организации кросс-языковой разработки в процессе «непрерывной поставки» (CI-CD для языков Java, C#, JavaScript, typeScript и Gherkin) при автоматизированном code-review.
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...Badoo Development
Доклад о том, как выжить в условиях двух релизов в день, не понижая планку
качества проекта и дать разработчикам и QA-инженерам больше времени на
полезные дела.
Подробно:
Прослушав доклад, вы узнаете:
1. Что НА САМОМ ДЕЛЕ называется непрерывной интеграцией;
2. Кому и зачем нужно переходить на Continious Integration;
3. Почему процесс контроля качества начинается ещё до написания кода;
4. Как программисты учавствуют в процессе тестирования;
5. Как устроен наш поток тестирования с пятью (!) уровнями контроля;
6. Как наши QA-инженеры тестируют задачи до релиза в максимально
реалистичных условиях;
7. Как помогает тестированию плотная интеграция Git, Jira и TeamCity;
8. Зачем нужны более 20 тысяч автоматических тестов и кто их должен
разрабатывать и поддерживать;
9. Чем непрерывно занимаются более 10 агентов-тестировщиков в нашей
TeamCity;
10. Какими средствами мы добились того, чтобы пункты 8 и 9 не превращал
QA-процесс в долгое и унылое действо.
Solit 2013, Open Source continuous integration in java, Калачев Дмитрийsolit
Дмитрий Калачёв, Минск, компания JazzTeam, Software Engineer (R&D, frameworks and android development)
«Open Source continuous integration in java». Development секция. Для студентов и разработчиков.Рассказ про dev процесс, который применяется в компании, и про разные компоненты в отдельности: gerrit, jenkins, git, trac, nexus, про то как проходит релизинг из отдельной ветки и как это можно автоматизировать с помощью maven плагина.
Презентация на комплексную тему Continious integration-Automated Testing-Agile, показывается связи между этими темам, обоснование автоматического тестирования , и вложения ресурсов для развертывания автоматического тестирования и непрерываной интеграциия. Все темы тесно связаны между собой , хотя бы появились независимос друг от друга.
Презентация подготовлена по материалам выступления Виталия Квятковского на Весеннем MiniQ'e (http://vk.com/event121580131), который был проведен 26 мая 2016.
Доклад с PUG#1 https://www.facebook.com/events/1505404039679797/
Доклад посвящен непрерывной интеграции и ее роли в процессе разработки проектов. В нем освещены следующие вопросы:
* Как избежать проблем в интеграции?
* Зачем нужны тесты?
* Как организовать работу так, чтобы всегда иметь под рукой прозрачное и работающее приложение?
* Как быть в курсе событий на своем проекте в любой момент времени?
Также, в докладе освещены основные плюсы работы с системами непрерывной интеграции на примере Jenkins.
PHP User Group Ukraine в социальных сетях:
https://www.facebook.com/pug.ukraine
https://vk.com/pug.ukraine
https://www.linkedin.com/groups/PHP-User-Group-Ukraine-6703717
Доклад Алексея Рыбака на Whalerider 2013. Эволюция разработки в Badoo.Badoo Development
В докладе освещена ретроспектива организации разработки крупного интернет-проекта от стартапа до 190 миллионов пользователей.
Как устроена разработка сейчас, как в процессе развития проекта её перестраивали, какие проблемы решали,
преодолевая кризисы роста, на какие грабли наступали. В секции вопросов есть интересная информация о том, как в Badoo устроена
система мотивации и бонусов. Доклад будет интересен всем, кто занимается организацией процесса разработки в крупных интернет-проектах.
Юнит-тесты: от общего к частному. Доклад Александра Свинцова На LoveQA РИТBadoo Development
В Badoo, как и во многих крупных проектах, много legacy-кода, в том числе и в юнит-тестах. Юнит-тесты (которые на самом деле таковыми не всегда являются) могут ходить в БД и на основе ее структуры создавать некоторые объекты, которые и будут использовать. Для поддержки таких тестов наши разработчики написали удобный инструмент (qaapi) для работы с одним из базовых объектов. Но нам показалось этого мало. Изолированность и скорость - вот два ключевых свойства, которые, на наш взгляд, по настоящему определяют юнит-тесты. В докладе рассказываем как при помощи одного простейшего и эффективнейшего метода мы постарались этого добиться.
Techleads Meetup #1
Мобильный веб: назад в будущее"
Виталий Шароватов, Mobile Web Team Lead и Руслан Байрамкулов, Senior Mobile Web QA Engineer (Badoo)
Описание:
Количество пользователей мобильных устройств уже давно превысило количество пользователей стационарных компьютеров и ноутбуков. В свою очередь мобильный веб — это самая быстрорастущая мобильная платформа (по данным comScore, 2015). И если будущее не за этой платформой, то как минимум, она будет его заметной частью.
Давным-давно для Мобильного веба в Badoo были «тёмные времена». Использовались дизайны нативных платформ и эмитировалось их поведение. Даже релизы случались раз в неделю-две. Около года назад ситуация начала меняться в лучшую сторону. Мобильная веб версия Badoo догнала по количеству фич остальные платформы и показала существенный рост по всем показателям. Теперь мобильный веб релизится каждый день.
В докладе мы расскажем о том, что неправильного происходит с процессами внутри и снаружи команды. Для примера возьмем как собственные грабли, так и чужие, но такие распространённые ошибки организации работы.
О том, что не помогло, рассказывать не будем, а о том, что сработало, ничего не утаим. Эта информация поможет вам работать в удовольствие. В ассортименте истории о том:
— как один автоматизатор всю регрессию покрыл;
— как подружились продакты-дизайнеры с командой разработки;
— как жадные программисты забрали себе всю ответственность;
— пуркуа QA любит сидеть с девелоперами плечом к плечу;
— зачем нужно не спускать глаз с багов, ломающих автоматизацию, и как заканчивать фичу после того, как закончили фичу.
Techleads Meetup #1
"Технологии vs коммуникации: что важнее?"
Альгис Фатеев, руководитель тестирования (Avito)
Описание:
последние несколько лет проект Avito растёт лавинообразным образом, с 2012 года команда разработчиков выросла в 20 раз. За очень короткое время мы прошли путь от «ну что, будем релизиться?» до отлаженного процесса выкатки кода в продакшн. В докладе речь пойдёт о том, как изменилась команда, процессы разработки и жизненный цикл задач в Avito за последние годы, как внедрялось тестирование в проект.
Кроме того, я отдельно рассмотрю вопросы, касающиеся управляемости проекта при резком росте:
— какие решения, заложенные на начальном этапе, позволили нам быстро масштабироваться;
— с какими главными болезнями роста мы столкнулись и как их решали;
— как подготовиться на случай лавинообразного роста.
Багфиксинг процесса разработки в iOS: взгляд с двух сторонBadoo Development
Techleads Meetup #1
"Багфиксинг процесса разработки в iOS: взгляд с двух сторон"
Екатерина Николаенко, iOS QA Lead и
Катерина Трофименко, iOS Developer (Badoo)
Описание:
Приложение Badoo для iOS существует около 7 лет и пережило уже 4 реинкарнации. Наши процессы и подходы не всегда были оптимальны и мы не единственные, кто познали релизы через боль и страдание всех участников процесса разработки.
Чтобы найти идеальный баланс между скоростью и качеством мы решили отрефакторить процессы разработки и тестирования в iOS команде и добились релизов раз в неделю. Из нашего доклада вы узнаете об эволюции команды с точки зрения разработки и тестирования. А так же мы расскажем как мы уменьшили crash-rate в 40 раз.
Techleads Meetup #1
"Как автотесты ускоряют релизы в OK.ru"
Никита Макаров, руководитель отдела тестирования (Одноклассники)
Описание:
начиная с 2012 года Одноклассники прошли огромный путь в области ускорения релизов.
Одним из факторов успеха была автоматизация тестирования, которую внедряли «с нуля».
В своем докладе я расскажу:
— о том как мы учили тестировщиков писать автотесты;
— сколотили команду автоматизаторов и построили инфраструктуру автоматизации тестирования;
— о наших ошибках, поражениях, полезных практиках и процессах.
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Docker, Inc.
This lightning talk will show you how simple it is to apply CI to the creation of Docker images, ensuring that each time the source is changed, a new image is created, tagged, and published. I will then show how easy it is to then deploy containers from this image and run tests to verify the behaviour.
Автоматическое управление DevOps активностями в стартапеEvgeny Savitsky
Культура DevOps отлично подходит инженерной команде стартапа. Однако, после автоматизации тестирования и выпуска сборки, на команду сваливается большой объем разноплановых задач, превращая весь план работ в неуправляемый хаос. DevOps board решает эту проблему путем дополнения DevOps инструментарем сбора баг-репортов непосредственно по факту возникновения ошибок и автоматизации управления активностями инженерной команды.
DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)Ontico
HighLoad++ 2017
Зал «Пекин+Шанхай», 7 ноября, 13:00
Тезисы:
http://www.highload.ru/2017/abstracts/2907.html
Конкуренция в банковском сегменте усиливается с каждым годом, повышаются ставки и цели по прибыли компаний. При прочих равных выигрывает тот, кто может быстрее разрабатывать продукты и мгновенно реагировать на потребности рынка. Банки рассматривают DevOps-трансформацию как средство, которое позволит им кардинально повысить финансовую эффективность, качество финансовых продуктов и поможет услышать и быстро реагировать на клиента.
...
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Ontico
HighLoad++ 2017
Зал «Калининград», 8 ноября, 13:00
Тезисы:
http://www.highload.ru/2017/abstracts/3010.html
В этом докладе я расскажу, как BigData-платформа помогает трансформировать Почту России, как мы управляем построением и развитием платформы. Расскажу про найденные удачные решения, например, как разбиение на продукты с понятными SLA и интерфейсами между ними помогло нам сохранять управляемость с ростом масштабов проекта.
...
Анатолий Белайчук, доклад на мероприятии AHConferences "VIII Форум BPM (Business Process Management)", 05.12.2012 http://www.ahconferences.com/conferences/?conf=713
Разработка кроссплатформенного фреймворка на С++ для мобильных платформ / Вла...Ontico
В процессе разработки нашего Enterprise-ready продукта HyperHive — http://eigenmethod.com/products/hh/ (бренд EigenMethod создан для продвижения продукта на Запад, не удивляйтесь другому домену) мы столкнулись с необходимостью реализации ряда задач на нескольких платформах: iOS, Android, Cordova (Android и iOS), а в перспективе и под Windows для мобильных устройств.
Был вариант реализации под каждую платформу на родных языках, но мы выбрали путь создания кроссплатформенного фреймворка на C++ с последующим его портированием под все целевые платформы.
Функционал фреймворка:
1. Параллельные потоки загрузки данных с сервера и записи в базу (sqlite) и передачи на сервер в рабочих потоках (без блокирования UI).
2. Поддержка Дельта-обновлений при передаче данных (пересылается только разность между двумя версиями данных).
3. Шифрование трафика и базы данных алгоритмами ГОСТ и RSA.
4. Сжатие трафика.
5. Аутентификация и авторизация на сервере, поддержка сессий.
6. Обработка push-уведомлений (MQTT).
7. API для мобильных приложений для предоставления данных, в том числе в оффлайн-режиме.
8. Логирование действий мобильного клиента на сервере.
С задачей успешно справились, но, так как задача нетривиальна и мало освещена в сети, были сложности — как технические, так и в подходе к разработке.
Прагматичный подход к документированию Веб-проектовAnatol Filin
Pragmatic approach to documenting Web projects. Talk at RIT conference, April 2010.
Речь идет о документировании процесса разработки Веб-систем. В работе над проектом как правило участвует команда, состоящая из специалистов разных областей: инвесторы, владельцы бизнеса, бизнес-менеджеры, аналитики, разработчики, юзабилисты, дизайнеры, тестировщики, системные администраторы. Эти специалисты обладают разным опытом, имеют разные цели и говорят на разных языках (причем часто – в прямом смысле этого слова). Некоторые роли могут отсутствовать, другие роли могут «склеиваться».
Существует достаточно развитая культура документирования проектов, которая включает как традиционные артефакты: видение (vision), бизнес-требования (BRD), функциональные требования (FRD), требования к интерфейсу, технические и архитектурные требования (TAD), требования к тестированию, требования к инфраструктуре, так и аджайльные артефакты: пользовательские истории (user stories), визуальные истории (visual stories).
Все Веб-проекты разные: интерфейсные проекты и проекты со сложной логикой (финансовые, научные), средние по размеру проекты и крупные проекты, проекты, которые пишутся с нуля и унаследованные от других разработчиков. Кроме того заказчики могут предъявлять разные требования к документированию: кому-то достаточен список характеристик, кто-то требует детальные функциональные требования, кто-то готов «идти в Agile». Команды тоже бывают разные: полные (свои аналитики, дизайнеры и т.д), локальные и распределенные.
В докладе не предлагается один рецепт на все случаи жизни. Главная идея доклада состоит в том, чтобы в соответствии с особенностями проекта и проектной команды рациональным образом выбрать тот набор документов, который абсолютно необходим для его успешного развития.
"Этот код плохой, его нужно переписать". Слышали? Как обосноватьMaksym Bezuglyi
Как на языке бизнеса доказать необходимость переписывания кода. Как бизнес может объяснить инженерам, что этого делать не нужно, либо как сделать это правильно с перспективы бизнеса.
Доклад Дмитрия Березина, "Да!Маркетинг", с конференции MailingDay.
Как получить быстрые продажи и при этом сделать клиента лояльным, объяснит, почему нельзя использовать унифицированный подход ко всем, как правильно сегментировать аудиторию и автоматизировать процесс персонализированной e-mail рассылки.
Секции ADV на RIW 2013: Theory hook - Как из 100 зашедших в онлайн сервис пол...ADV/web-engineering
Доклад Руслана Татунашвили, генерального директора Allleads, на секции ADV "Quick wins. Простые и быстрые способы увеличить продажи. 9 практических кейсов".
Доклад Наташи Чиликиной, руководителя разработки php/Bitrix на конференции CMS Conference. Подробности о рефакторинге очень большого интернет-магазина.
День ADV на Russian Digital Week: Каким должно быть агентство, чтобы крупные ...ADV/web-engineering
Доклад Рауфа Алиева, директора по разработке Enter, на секции ADV на Russian Digital Week 2013 (http://conf.tagline.ru/program/7/mgmt-prod-hr). Секция была посвящена повышению качества производимых студиями интернет-проектов.
2. Привет
Это ещё один рассказ о том, как
развивалась разработка в большом проекте
Кризисы роста: области ответственности,
производственные цепочки
Поделить/переделать, сохранив ценности и
пульс
2
3. Badoo - это:
Социальная сеть для встречи с новыми людьми
177М пользователей, ~30M MAU, ~10M DAU
Крупнейшие страны: Испания, Италия, Франция, Бразилия,
США
2 офиса разработки: Москва и Лондон
Миллионы строк кода, тысячи серверов
Стандартный стэк: Linux, NGINX, PHP, MySQL, Memcached,
C/C++
120 инженеров
3
4. Продуктовая интернет-компания
Программа в единственном экземпляре
Менее остро стоят вопросы совместимости
ПО и железа
Можно всё подбирать под себя и
подкручивать на ходу
4
6. От стартапа к продуктовой
компании
Бизнес-инварианты
Лёгкий саппорт: разделение
ответственности, инфраструктурные
проекты
Максимально быстрый цикл разработки при
сохранении качества: производственные
цепочки
Проследим, как менялась разработка и
сохранялись инварианты
6
7. Кризисы роста
Кризис I: саппорт (10 – 20 чел, 2007)
Кризис II: дробление и новые роли в
организации (20 – 50 чел, 2009)
Кризис III: качество (QA) и перестройка
производственных цепочек (50 – 100+ чел,
2011)
7
8. Саппорт
Время программистов = время разработки продукта +
время на саппорт
Саппорт в широком смысле
− Поиск и мониторинг медленных/ненадежных мест
− Переделка архитектуры
− Инструменты для поддержки (мониторинг, деплой,
управление кластерами ...)
− Инструменты для разработки (автоматизация, ядро ...)
8
9. Саппорт: отдельную команду не строим
Пахнет “штрафбатом”
Вовлеченность и мотивация сотрудников
Твой софт – твой крест
− Ты накосячил – ты и правь
− Нагрузка вырастет в “стопицот” раз, вокруг всё миллион
раз упадет, наш (твой!) софт должен это пережить
− Пусть будут ошибки – давай быстро поправим, просто не
тупи и делай
9
11. Кризис II: дробление (2009?)
Оставить быстрым цикл разработки
Поделить команды функционально
Производственная цепочка по-прежнему
тривиальна: фигак-фигак, в продакшн!
Строим продуктовую команду
Не меняем сильно процессы, боимся сбить
ритм
11
12. Кризис II: дробление
Фейл: как “не пошёл” скрам
Функциональное дробление без перестройки
производственных цепочек
С/С++, Фичи, биллинг, A-team, мобильная разработка, бэк-
офис, антиспам/почта
Проблемы: лиды, перераспределение зон
Фейл: позиции “магов”
Проблема: качество
Рекрутинг и HR, системный ревью зп
12
13. Кризис III: качество (2011)
Перестройка производственных цепочек
Отдел качества, release engineering
Девелоперская инфраструктура: площадка,
continuous integration, управление релизами,
прочая автоматизация
Перестройка без остановки разработки продукта:
A-team
Параллельно: строим QA/RE
13
14. Сейчас: статусы задач (фичи)
PRD <-> нет вопросов у программистов
Задача разбита по компонентам (микрокоманды)
Если нужно железо – есть сроки
Сопутствующие задачи (BI, мониторинг)
Код и тесты написаны, тесты прошли на девеле, ревью
QA passed
Переводы готовы (40 языков, ~10 основных)
RE: тесты на стейджинге, деплой
Деплой может быть поэтапным: на части пользователей -> метрики ->
везде
14
15. Кризис III: перестройка процессов
Подготовка в 2011, плотно - лишь в 2012 году
Деплой по фичам: svn -> git, “шоты” (фича) и
“билды” (релизы)
Девелоперская площадка: полная эмуляция 2х ДЦ
и базовых компонент
Утилиты деплоя и автоматизации, интеграция с
JIRA, доработка staging-инфраструктуры
Версионирование переводов
15
16. Кризис III: перестройка процессов
Строгий flow в JIRA + автоматизация
Unit-тесты: 15000 тестов за 3 минуты
Selenium-тесты: 200 тестов за 20 минут
2 релиза в день: утром и после обеда
Стогие стандарты кодирования, заголовки
(модуль-команда-человек), покрытие кода
A-team -> передача сисадминам и релиз-
инженерам
16
17. Выводы (1)
Методологии не очень существенны
Без фанатизма и сектантства. Waterfall?
Пускай. Не-agile? И что?
Backlogs, burn down charts, stand-up
meetings
17
18. Выводы (2)
Инфраструктурные проекты неизбежны
Технический долг: время разработки
продукта -> отдельная команда. A-team у
нас – не DevOps
Без QA можно обойтись, и долго. Качество
на этапе релиза vs качество в “продакшене”
(ошибки, мониторинг)
18
19. Выводы (3)
Если QA неизбежен (число людей): чем
раньше строить QA – тем лучше
Перестройка цепочек – наиболее
болезненные процессы, с отдельной
командой - лучше
19