SlideShare a Scribd company logo
Выстраивание процесса и
применение Best Practices с нуля
на существующем продукте.
Живой опыт.
Михаил Селиверстов, Аркадия,
Ведущий разработчик
О себе
2
Михаил Селиверстов
Ведущий разработчик
“Аркадия”
mikhail.seliverstov@arcadia.spb.ru
В Аркадии с 2014-го года.
Больше 10 лет опыта работы в стеке технологий
Майкрософт
Последний год занимаюсь техническим
руководством на проекте на PHP & Laravel.
Почему?
Проект
Дано:
• КодЪ на гитхабе - PHP, Laravel, MySQL
• Stories в JIRA
• Продукт уже в продакшене
• Планов на разработку – на годы вперед
3
Команда
5 разработчиков, 2 тестировщика, менеджер
Старт — одновременно
4
Здесь должны быть картинка:
эпичное фото команды
Best Practices против суровой реальности
• SCRUM,
• Continuous Integration,
• Continuous Deployment,
• SOLID, DRY, KISS,
• TDD,
• Version Control,
• Code style,
• Naming Convention,
• Pull Requests,
• Code architecture…
5
VS
“А теперь со всей этой фигней
мы попробуем взлететь”
SCRUM. Планирование
6
• Planning poker.
• Предварительный обзор бэклога
• Специализация на проекте
• Незнакомая предметная
область
• Сложное поведение продукта
• «Чужой» код
• Незнакомый фреймворк
• Слабый уровень организации
Сначало шло тяжеловато
Но терпение и труд все перетерли
Здесь должны быть картинка:
метафорическая визуализация идеи блуждания впотьмах
SCRUM. Все подряд
• Внутренний stand-up дополнительно к внешнему
status-митингу
• Четкие критерии для признания таски
выполненной
• Каналы общения с заказчиком. Почта VS Jira (VS
Hipchat?)
7
Git flow
&
8
Pull-requests
Author: Vincent Driessen
Original blog post: http://nvie.com/posts/a-succesful-git-branching-model
License: Creative Commons BY-SA
Workflow.
• Workflow тасок в JIRA
• Gitflow. Релизы. Test -> UAT -> Production (?)
9
Тестовые окружения
• Одна тестовая машина
• Две тестовых машины для внутреннего и
внешнего тестирования. Отгрузка задач
пачками. Ветка build в гите.
• Две тестовых машины для тестирования веток
develop и release N
Прочее
Автоматизация билдов
1. sh-скрипт
10
Автоматизация билдов
1. sh-скрипт
2. sh-скрипт + TeamCity. Номер билда!
11
Автоматизация билдов
1. sh-скрипт
2. sh-скрипт + TeamCity. Номер билда!
3. sh-скрипт + TeamCity + Continuous Integration.
Coming soon…
12
Автоматизация билдов
1. sh-скрипт
2. sh-скрипт + TeamCity. Номер билда!
3. sh-скрипт + TeamCity + Continuous Integration.
Coming soon…
4. sh-скрипт + TeamCity + Continuous Integration +
Continuous Deployment. Может быть когда-
нибудь…
13
Автоматизация тестирования
• Юнит-тесты. Их нет 
• Функциональные тесты. Behat
14
Legacy код. Фреймворк Laravel
И чо?
15
Паттерн ActiveRecord
Статика и “магия” PHP
Laravel – отличный фреймворк для быстрого создания приложений,
но...
Dependency injection
Рефакторинг
Паттерн DataMapper
Выводы
• Больше никогда!!!!!!!!!!!1111
• Все идеи улучшений записывать и (!) регулярно обозревать
• Все идеи аргументировать заказчику
• Не стесняться задавать заказчику вопросы
• Культивировать взаимное доверие в отношениях с заказчиком
• Не париться, что сначала все идет не так быстро и хорошо, как
хотелось бы!
16
Правильно ли мы все сделали?
Q & A

More Related Content

PDF
AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...
PDF
AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...
PPTX
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
PPTX
Автоматическое тестирование Web api
PDF
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
PPTX
Автоматизация тестирования: доступна каждому или удел избранных?
PDF
Grail: шаги для ваших Python-тестов
PDF
Автоматическое тестирование. Моя система
AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...
AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Автоматическое тестирование Web api
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Автоматизация тестирования: доступна каждому или удел избранных?
Grail: шаги для ваших Python-тестов
Автоматическое тестирование. Моя система

What's hot (20)

PPTX
Тестирование REST-сервисов с применением инженерных практик
PPTX
Тестируем производительность с помощью Selenium
PDF
Илья Кудинов
PDF
QA Fest 2016. Дмитрий Химион. Векторы развития систем автоматизации тестиров...
PDF
Тестировщик в Agile - кто он?
PPTX
Web driver история одной миграции
PPTX
Cовременный контроль качества: давай сделаем это по-быстрому...
PPTX
DersuDev #1 2015 - Continous Integration
PPSX
История HERE Maps for Windows: меняемся не изменяя качеству
PPTX
Как не налететь на рифы в море преимуществ Scrum: организация и оптимизация т...
PPTX
Александр Шуров, Олег Николенко «Как устроено автоматическое frontend-тестир...
PPTX
Адаптация Jira стэка для 1с продуктов
PDF
UICov - инструмент анализа покрытия UI-тестами
PDF
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
PDF
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
PPTX
Багфиксинг процесса разработки в iOS: взгляд с двух сторон
ODP
The fast and the continuous
PDF
Экономически эффективный процесс тестирования
PDF
Grail - CodeFest'2015
PDF
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...
Тестирование REST-сервисов с применением инженерных практик
Тестируем производительность с помощью Selenium
Илья Кудинов
QA Fest 2016. Дмитрий Химион. Векторы развития систем автоматизации тестиров...
Тестировщик в Agile - кто он?
Web driver история одной миграции
Cовременный контроль качества: давай сделаем это по-быстрому...
DersuDev #1 2015 - Continous Integration
История HERE Maps for Windows: меняемся не изменяя качеству
Как не налететь на рифы в море преимуществ Scrum: организация и оптимизация т...
Александр Шуров, Олег Николенко «Как устроено автоматическое frontend-тестир...
Адаптация Jira стэка для 1с продуктов
UICov - инструмент анализа покрытия UI-тестами
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
Багфиксинг процесса разработки в iOS: взгляд с двух сторон
The fast and the continuous
Экономически эффективный процесс тестирования
Grail - CodeFest'2015
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...
Ad

Similar to AzovDevMeetup 2016 | Выстраивание процесса и применение Best Practices с нуля на существующем продукте — живой опыт | Михаил Селиверстов (20)

PDF
Денис Чистяков: Workflow. Работа над проектом в Яндексе
PDF
Workflow: работа над проектом в Яндексе
PPTX
Лучшие практики на практике
PPTX
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
PPTX
Тестирование веб-проектов в Agile
PPTX
Работа с требованиями в условиях Agile трансформации
PDF
Тестирование осень 2013 лекция 5
PDF
РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo
PDF
Agile days `16 summary
PPTX
Как мы делаем Banki.ru
PPTX
Agile testing
PPTX
Обеспечение качества: Практические советы
PDF
Киев. Как внедрить SCRUM без трупов и остаться довольным
PDF
Михаил Табунов (Coub.com)
PDF
Software engineering seminars: git
PPT
Юрий Цыганенко, QA как услуга
PPTX
DaKiRy_PMWeekend2016_Андрій Мандріка "Робота з вимогами в умовах Agile трансф...
PPTX
Work with requirements in terms of Agile transformation
PDF
Юлия Викторова; Александр Тарасов. DevOps без булшита.
PDF
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Workflow: работа над проектом в Яндексе
Лучшие практики на практике
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
Тестирование веб-проектов в Agile
Работа с требованиями в условиях Agile трансформации
Тестирование осень 2013 лекция 5
РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo
Agile days `16 summary
Как мы делаем Banki.ru
Agile testing
Обеспечение качества: Практические советы
Киев. Как внедрить SCRUM без трупов и остаться довольным
Михаил Табунов (Coub.com)
Software engineering seminars: git
Юрий Цыганенко, QA как услуга
DaKiRy_PMWeekend2016_Андрій Мандріка "Робота з вимогами в умовах Agile трансф...
Work with requirements in terms of Agile transformation
Юлия Викторова; Александр Тарасов. DevOps без булшита.
Ad

More from JSC “Arcadia Inc” (8)

PDF
Outsourcing of Software Development — Myths
PDF
AzovDevMeetup 2016 | Сертификация ISTQB для QA инженера | Артём Кравченко
PDF
AzovDevMeetup 2016 | Основы Agile Project Management или Прощай, менеджер про...
PDF
AzovDevMeetup 2016 | Angular 2: обзор | Александр Шевнин
PDF
AzovDevMeetup 2016 | HBase и Phoenix в качестве основы ETL-приложения на Node...
PPTX
Quality Practices in e-Assessment Development
PPTX
2015-12-12 | AzovDevMeetup 2015 | Мобильная разработка: Native, Hybrid, Cross...
PPTX
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
Outsourcing of Software Development — Myths
AzovDevMeetup 2016 | Сертификация ISTQB для QA инженера | Артём Кравченко
AzovDevMeetup 2016 | Основы Agile Project Management или Прощай, менеджер про...
AzovDevMeetup 2016 | Angular 2: обзор | Александр Шевнин
AzovDevMeetup 2016 | HBase и Phoenix в качестве основы ETL-приложения на Node...
Quality Practices in e-Assessment Development
2015-12-12 | AzovDevMeetup 2015 | Мобильная разработка: Native, Hybrid, Cross...
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий

AzovDevMeetup 2016 | Выстраивание процесса и применение Best Practices с нуля на существующем продукте — живой опыт | Михаил Селиверстов

  • 1. Выстраивание процесса и применение Best Practices с нуля на существующем продукте. Живой опыт. Михаил Селиверстов, Аркадия, Ведущий разработчик
  • 2. О себе 2 Михаил Селиверстов Ведущий разработчик “Аркадия” mikhail.seliverstov@arcadia.spb.ru В Аркадии с 2014-го года. Больше 10 лет опыта работы в стеке технологий Майкрософт Последний год занимаюсь техническим руководством на проекте на PHP & Laravel. Почему?
  • 3. Проект Дано: • КодЪ на гитхабе - PHP, Laravel, MySQL • Stories в JIRA • Продукт уже в продакшене • Планов на разработку – на годы вперед 3
  • 4. Команда 5 разработчиков, 2 тестировщика, менеджер Старт — одновременно 4 Здесь должны быть картинка: эпичное фото команды
  • 5. Best Practices против суровой реальности • SCRUM, • Continuous Integration, • Continuous Deployment, • SOLID, DRY, KISS, • TDD, • Version Control, • Code style, • Naming Convention, • Pull Requests, • Code architecture… 5 VS “А теперь со всей этой фигней мы попробуем взлететь”
  • 6. SCRUM. Планирование 6 • Planning poker. • Предварительный обзор бэклога • Специализация на проекте • Незнакомая предметная область • Сложное поведение продукта • «Чужой» код • Незнакомый фреймворк • Слабый уровень организации Сначало шло тяжеловато Но терпение и труд все перетерли Здесь должны быть картинка: метафорическая визуализация идеи блуждания впотьмах
  • 7. SCRUM. Все подряд • Внутренний stand-up дополнительно к внешнему status-митингу • Четкие критерии для признания таски выполненной • Каналы общения с заказчиком. Почта VS Jira (VS Hipchat?) 7
  • 8. Git flow & 8 Pull-requests Author: Vincent Driessen Original blog post: http://nvie.com/posts/a-succesful-git-branching-model License: Creative Commons BY-SA
  • 9. Workflow. • Workflow тасок в JIRA • Gitflow. Релизы. Test -> UAT -> Production (?) 9 Тестовые окружения • Одна тестовая машина • Две тестовых машины для внутреннего и внешнего тестирования. Отгрузка задач пачками. Ветка build в гите. • Две тестовых машины для тестирования веток develop и release N Прочее
  • 11. Автоматизация билдов 1. sh-скрипт 2. sh-скрипт + TeamCity. Номер билда! 11
  • 12. Автоматизация билдов 1. sh-скрипт 2. sh-скрипт + TeamCity. Номер билда! 3. sh-скрипт + TeamCity + Continuous Integration. Coming soon… 12
  • 13. Автоматизация билдов 1. sh-скрипт 2. sh-скрипт + TeamCity. Номер билда! 3. sh-скрипт + TeamCity + Continuous Integration. Coming soon… 4. sh-скрипт + TeamCity + Continuous Integration + Continuous Deployment. Может быть когда- нибудь… 13
  • 14. Автоматизация тестирования • Юнит-тесты. Их нет  • Функциональные тесты. Behat 14
  • 15. Legacy код. Фреймворк Laravel И чо? 15 Паттерн ActiveRecord Статика и “магия” PHP Laravel – отличный фреймворк для быстрого создания приложений, но... Dependency injection Рефакторинг Паттерн DataMapper
  • 16. Выводы • Больше никогда!!!!!!!!!!!1111 • Все идеи улучшений записывать и (!) регулярно обозревать • Все идеи аргументировать заказчику • Не стесняться задавать заказчику вопросы • Культивировать взаимное доверие в отношениях с заказчиком • Не париться, что сначала все идет не так быстро и хорошо, как хотелось бы! 16 Правильно ли мы все сделали?
  • 17. Q & A