ݺߣ

ݺߣShare 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

What's hot (20)

Тестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практикТестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практик
SQALab
Тестируем производительность с помощью Selenium
Тестируем производительность с помощью SeleniumТестируем производительность с помощью Selenium
Тестируем производительность с помощью Selenium
SQALab
Илья Кудинов
Илья КудиновИлья Кудинов
Илья Кудинов
CodeFest
QA Fest 2016. Дмитрий Химион. Векторы развития систем автоматизации тестиров...
QA Fest 2016. Дмитрий Химион.  Векторы развития систем автоматизации тестиров...QA Fest 2016. Дмитрий Химион.  Векторы развития систем автоматизации тестиров...
QA Fest 2016. Дмитрий Химион. Векторы развития систем автоматизации тестиров...
QAFest
Тестировщик в Agile - кто он?
Тестировщик в Agile - кто он?Тестировщик в Agile - кто он?
Тестировщик в Agile - кто он?
Igor Khrol
Web driver история одной миграции
Web driver   история одной миграцииWeb driver   история одной миграции
Web driver история одной миграции
Igor Khrol
Cовременный контроль качества: давай сделаем это по-быстрому...
Cовременный контроль качества: давай сделаем это по-быстрому...Cовременный контроль качества: давай сделаем это по-быстрому...
Cовременный контроль качества: давай сделаем это по-быстрому...
Igor Khrol
DersuDev #1 2015 - Continous Integration
DersuDev #1 2015 - Continous IntegrationDersuDev #1 2015 - Continous Integration
DersuDev #1 2015 - Continous Integration
Igor Karpovich
История HERE Maps for Windows: меняемся не изменяя качеству
История HERE Maps for Windows: меняемся не изменяя качествуИстория HERE Maps for Windows: меняемся не изменяя качеству
История HERE Maps for Windows: меняемся не изменяя качеству
SQALab
Как не налететь на рифы в море преимуществ Scrum: организация и оптимизация т...
Как не налететь на рифы в море преимуществ Scrum: организация и оптимизация т...Как не налететь на рифы в море преимуществ Scrum: организация и оптимизация т...
Как не налететь на рифы в море преимуществ Scrum: организация и оптимизация т...
CEE-SEC(R)
Александр Шуров, Олег Николенко «Как устроено автоматическое frontend-тестир...
Александр Шуров, Олег Николенко  «Как устроено автоматическое frontend-тестир...Александр Шуров, Олег Николенко  «Как устроено автоматическое frontend-тестир...
Александр Шуров, Олег Николенко «Как устроено автоматическое frontend-тестир...
WrikeTechClub
Адаптация Jira стэка для 1с продуктов
Адаптация Jira стэка для 1с продуктовАдаптация Jira стэка для 1с продуктов
Адаптация Jira стэка для 1с продуктов
Alexey Lustin
UICov - инструмент анализа покрытия UI-тестами
UICov - инструмент анализа покрытия UI-тестамиUICov - инструмент анализа покрытия UI-тестами
UICov - инструмент анализа покрытия UI-тестами
SQALab
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Mail.ru Group
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QAFest
Багфиксинг процесса разработки в iOS: взгляд с двух сторон
Багфиксинг процесса разработки в iOS: взгляд с двух сторонБагфиксинг процесса разработки в iOS: взгляд с двух сторон
Багфиксинг процесса разработки в iOS: взгляд с двух сторон
Badoo Development
The fast and the continuous
The fast and the continuousThe fast and the continuous
The fast and the continuous
SQALab
Экономически эффективный процесс тестирования
Экономически эффективный процесс тестированияЭкономически эффективный процесс тестирования
Экономически эффективный процесс тестирования
CodeFest
Grail - CodeFest'2015
Grail - CodeFest'2015Grail - CodeFest'2015
Grail - CodeFest'2015
Igor Khrol
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...
Badoo Development
Тестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практикТестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практик
SQALab
Тестируем производительность с помощью Selenium
Тестируем производительность с помощью SeleniumТестируем производительность с помощью Selenium
Тестируем производительность с помощью Selenium
SQALab
Илья Кудинов
Илья КудиновИлья Кудинов
Илья Кудинов
CodeFest
QA Fest 2016. Дмитрий Химион. Векторы развития систем автоматизации тестиров...
QA Fest 2016. Дмитрий Химион.  Векторы развития систем автоматизации тестиров...QA Fest 2016. Дмитрий Химион.  Векторы развития систем автоматизации тестиров...
QA Fest 2016. Дмитрий Химион. Векторы развития систем автоматизации тестиров...
QAFest
Тестировщик в Agile - кто он?
Тестировщик в Agile - кто он?Тестировщик в Agile - кто он?
Тестировщик в Agile - кто он?
Igor Khrol
Web driver история одной миграции
Web driver   история одной миграцииWeb driver   история одной миграции
Web driver история одной миграции
Igor Khrol
Cовременный контроль качества: давай сделаем это по-быстрому...
Cовременный контроль качества: давай сделаем это по-быстрому...Cовременный контроль качества: давай сделаем это по-быстрому...
Cовременный контроль качества: давай сделаем это по-быстрому...
Igor Khrol
DersuDev #1 2015 - Continous Integration
DersuDev #1 2015 - Continous IntegrationDersuDev #1 2015 - Continous Integration
DersuDev #1 2015 - Continous Integration
Igor Karpovich
История HERE Maps for Windows: меняемся не изменяя качеству
История HERE Maps for Windows: меняемся не изменяя качествуИстория HERE Maps for Windows: меняемся не изменяя качеству
История HERE Maps for Windows: меняемся не изменяя качеству
SQALab
Как не налететь на рифы в море преимуществ Scrum: организация и оптимизация т...
Как не налететь на рифы в море преимуществ Scrum: организация и оптимизация т...Как не налететь на рифы в море преимуществ Scrum: организация и оптимизация т...
Как не налететь на рифы в море преимуществ Scrum: организация и оптимизация т...
CEE-SEC(R)
Александр Шуров, Олег Николенко «Как устроено автоматическое frontend-тестир...
Александр Шуров, Олег Николенко  «Как устроено автоматическое frontend-тестир...Александр Шуров, Олег Николенко  «Как устроено автоматическое frontend-тестир...
Александр Шуров, Олег Николенко «Как устроено автоматическое frontend-тестир...
WrikeTechClub
Адаптация Jira стэка для 1с продуктов
Адаптация Jira стэка для 1с продуктовАдаптация Jira стэка для 1с продуктов
Адаптация Jira стэка для 1с продуктов
Alexey Lustin
UICov - инструмент анализа покрытия UI-тестами
UICov - инструмент анализа покрытия UI-тестамиUICov - инструмент анализа покрытия UI-тестами
UICov - инструмент анализа покрытия UI-тестами
SQALab
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Mail.ru Group
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QAFest
Багфиксинг процесса разработки в iOS: взгляд с двух сторон
Багфиксинг процесса разработки в iOS: взгляд с двух сторонБагфиксинг процесса разработки в iOS: взгляд с двух сторон
Багфиксинг процесса разработки в iOS: взгляд с двух сторон
Badoo Development
The fast and the continuous
The fast and the continuousThe fast and the continuous
The fast and the continuous
SQALab
Экономически эффективный процесс тестирования
Экономически эффективный процесс тестированияЭкономически эффективный процесс тестирования
Экономически эффективный процесс тестирования
CodeFest
Grail - CodeFest'2015
Grail - CodeFest'2015Grail - CodeFest'2015
Grail - CodeFest'2015
Igor Khrol
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...
Badoo Development

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

Agile days `16 summary
Agile days `16 summaryAgile days `16 summary
Agile days `16 summary
Anton Zhukov
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
GlobalLogic Ukraine
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Ontico
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
Gleb Rybalko
Кирилл Комлев. О реализации continuous integration для web проектов
Кирилл Комлев. О реализации continuous integration для web проектовКирилл Комлев. О реализации continuous integration для web проектов
Кирилл Комлев. О реализации continuous integration для web проектов
Olesya_V
D2D Pizza JS Илья Беда "Куда мы все катимся?"
D2D Pizza JS Илья Беда "Куда мы все катимся?"D2D Pizza JS Илья Беда "Куда мы все катимся?"
D2D Pizza JS Илья Беда "Куда мы все катимся?"
Dev2Dev
Кирил Кірєєв “Особливості розробки hardware продукту” Lviv Project Managemen...
 Кирил Кірєєв “Особливості розробки hardware продукту” Lviv Project Managemen... Кирил Кірєєв “Особливості розробки hardware продукту” Lviv Project Managemen...
Кирил Кірєєв “Особливості розробки hardware продукту” Lviv Project Managemen...
Lviv Startup Club
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
SPB SQA Group
непрерывная интеграция шаг к непрерывному деплою родионов игорь
непрерывная интеграция   шаг к непрерывному деплою родионов игорьнепрерывная интеграция   шаг к непрерывному деплою родионов игорь
непрерывная интеграция шаг к непрерывному деплою родионов игорь
drupalconf
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TKConf
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьНепрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
PVasili
CI: Автоматизация сборки, развёртывания и тестирования
CI: Автоматизация сборки, развёртывания и тестированияCI: Автоматизация сборки, развёртывания и тестирования
CI: Автоматизация сборки, развёртывания и тестирования
SQALab
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
HappyDev
Software Analytics in frontend
Software Analytics in frontendSoftware Analytics in frontend
Software Analytics in frontend
Denis Kolesnikov
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только один
Sergey Xek
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Ontico
Team workflow
Team workflowTeam workflow
Team workflow
Даниил Зайцев
Масштабируемая архитектура фронтенда
Масштабируемая архитектура фронтендаМасштабируемая архитектура фронтенда
Масштабируемая архитектура фронтенда
Roman Dvornov
Agile в кровавом энтерпрайзе / Асхат Уразбаев (ScrumTrek)
Agile в кровавом энтерпрайзе / Асхат Уразбаев (ScrumTrek)Agile в кровавом энтерпрайзе / Асхат Уразбаев (ScrumTrek)
Agile в кровавом энтерпрайзе / Асхат Уразбаев (ScrumTrek)
Ontico
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Ontico
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
Gleb Rybalko
Кирилл Комлев. О реализации continuous integration для web проектов
Кирилл Комлев. О реализации continuous integration для web проектовКирилл Комлев. О реализации continuous integration для web проектов
Кирилл Комлев. О реализации continuous integration для web проектов
Olesya_V
D2D Pizza JS Илья Беда "Куда мы все катимся?"
D2D Pizza JS Илья Беда "Куда мы все катимся?"D2D Pizza JS Илья Беда "Куда мы все катимся?"
D2D Pizza JS Илья Беда "Куда мы все катимся?"
Dev2Dev
Кирил Кірєєв “Особливості розробки hardware продукту” Lviv Project Managemen...
 Кирил Кірєєв “Особливості розробки hardware продукту” Lviv Project Managemen... Кирил Кірєєв “Особливості розробки hardware продукту” Lviv Project Managemen...
Кирил Кірєєв “Особливості розробки hardware продукту” Lviv Project Managemen...
Lviv Startup Club
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
SPB SQA Group
непрерывная интеграция шаг к непрерывному деплою родионов игорь
непрерывная интеграция   шаг к непрерывному деплою родионов игорьнепрерывная интеграция   шаг к непрерывному деплою родионов игорь
непрерывная интеграция шаг к непрерывному деплою родионов игорь
drupalconf
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TKConf
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьНепрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
PVasili
CI: Автоматизация сборки, развёртывания и тестирования
CI: Автоматизация сборки, развёртывания и тестированияCI: Автоматизация сборки, развёртывания и тестирования
CI: Автоматизация сборки, развёртывания и тестирования
SQALab
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
HappyDev
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только один
Sergey Xek
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Ontico
Масштабируемая архитектура фронтенда
Масштабируемая архитектура фронтендаМасштабируемая архитектура фронтенда
Масштабируемая архитектура фронтенда
Roman Dvornov
Agile в кровавом энтерпрайзе / Асхат Уразбаев (ScrumTrek)
Agile в кровавом энтерпрайзе / Асхат Уразбаев (ScrumTrek)Agile в кровавом энтерпрайзе / Асхат Уразбаев (ScrumTrek)
Agile в кровавом энтерпрайзе / Асхат Уразбаев (ScrumTrek)
Ontico

More from JSC “Arcadia Inc” (8)

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

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