SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
Выстраивание процесса и
применение 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

Weitere ähnliche Inhalte

Was ist angesagt?

Тестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практикТестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практикSQALab
 
Тестируем производительность с помощью Selenium
Тестируем производительность с помощью SeleniumТестируем производительность с помощью Selenium
Тестируем производительность с помощью SeleniumSQALab
 
Илья Кудинов
Илья КудиновИлья Кудинов
Илья Кудинов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 IntegrationIgor 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. Анастасия Асеева. Роль тестирования в DevopsQAFest
 
Багфиксинг процесса разработки в iOS: взгляд с двух сторон
Багфиксинг процесса разработки в iOS: взгляд с двух сторонБагфиксинг процесса разработки в iOS: взгляд с двух сторон
Багфиксинг процесса разработки в iOS: взгляд с двух сторонBadoo Development
 
The fast and the continuous
The fast and the continuousThe fast and the continuous
The fast and the continuousSQALab
 
Экономически эффективный процесс тестирования
Экономически эффективный процесс тестированияЭкономически эффективный процесс тестирования
Экономически эффективный процесс тестированияCodeFest
 
Grail - CodeFest'2015
Grail - CodeFest'2015Grail - CodeFest'2015
Grail - CodeFest'2015Igor Khrol
 
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...Badoo Development
 

Was ist angesagt? (20)

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

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

Agile days `16 summary
Agile days `16 summaryAgile days `16 summary
Agile days `16 summaryAnton Zhukov
 
Прогрессивный рендеринг и 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 trenchesGleb 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 frontendDenis Kolesnikov
 
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Ontico
 
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинSergey Xek
 
Масштабируемая архитектура фронтенда
Масштабируемая архитектура фронтендаМасштабируемая архитектура фронтенда
Масштабируемая архитектура фронтендаRoman Dvornov
 
Agile в кровавом энтепрайзе
Agile в кровавом энтепрайзеAgile в кровавом энтепрайзе
Agile в кровавом энтепрайзеAskhat Urazbaev
 

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

Agile days `16 summary
Agile days `16 summaryAgile days `16 summary
Agile days `16 summary
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
 
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
Прогрессивный рендеринг и Catberry.js / Михаил Реенко (2GIS / Flamp)
 
Little Service in 2h
Little Service in 2hLittle Service in 2h
Little Service in 2h
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
 
Кирилл Комлев. О реализации continuous integration для web проектов
Кирилл Комлев. О реализации continuous integration для web проектовКирилл Комлев. О реализации continuous integration для web проектов
Кирилл Комлев. О реализации continuous integration для web проектов
 
D2D Pizza JS Илья Беда "Куда мы все катимся?"
D2D Pizza JS Илья Беда "Куда мы все катимся?"D2D Pizza JS Илья Беда "Куда мы все катимся?"
D2D Pizza JS Илья Беда "Куда мы все катимся?"
 
Кирил Кірєєв “Особливості розробки hardware продукту” Lviv Project Managemen...
 Кирил Кірєєв “Особливості розробки hardware продукту” Lviv Project Managemen... Кирил Кірєєв “Особливості розробки hardware продукту” Lviv Project Managemen...
Кирил Кірєєв “Особливості розробки hardware продукту” Lviv Project Managemen...
 
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
 
непрерывная интеграция шаг к непрерывному деплою родионов игорь
непрерывная интеграция   шаг к непрерывному деплою родионов игорьнепрерывная интеграция   шаг к непрерывному деплою родионов игорь
непрерывная интеграция шаг к непрерывному деплою родионов игорь
 
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.
 
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов ИгорьНепрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
Непрерывная интеграция шаг к непрерывному деплою. Родионов Игорь
 
CI: Автоматизация сборки, развёртывания и тестирования
CI: Автоматизация сборки, развёртывания и тестированияCI: Автоматизация сборки, развёртывания и тестирования
CI: Автоматизация сборки, развёртывания и тестирования
 
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
 
Software Analytics in frontend
Software Analytics in frontendSoftware Analytics in frontend
Software Analytics in frontend
 
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
 
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только один
 
Team workflow
Team workflowTeam workflow
Team workflow
 
Масштабируемая архитектура фронтенда
Масштабируемая архитектура фронтендаМасштабируемая архитектура фронтенда
Масштабируемая архитектура фронтенда
 
Agile в кровавом энтепрайзе
Agile в кровавом энтепрайзеAgile в кровавом энтепрайзе
Agile в кровавом энтепрайзе
 

Mehr von JSC “Arcadia Inc”

Outsourcing of Software Development — Myths
Outsourcing of Software Development — MythsOutsourcing of Software Development — Myths
Outsourcing of Software Development — MythsJSC “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 DevelopmentJSC “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”
 

Mehr von JSC “Arcadia Inc” (8)

Outsourcing of Software Development — Myths
Outsourcing of Software Development — MythsOutsourcing of Software Development — Myths
Outsourcing of Software Development — Myths
 
AzovDevMeetup 2016 | Сертификация ISTQB для QA инженера | Артём Кравченко
AzovDevMeetup 2016 | Сертификация ISTQB для QA инженера | Артём КравченкоAzovDevMeetup 2016 | Сертификация ISTQB для QA инженера | Артём Кравченко
AzovDevMeetup 2016 | Сертификация ISTQB для QA инженера | Артём Кравченко
 
AzovDevMeetup 2016 | Основы Agile Project Management или Прощай, менеджер про...
AzovDevMeetup 2016 | Основы Agile Project Management или Прощай, менеджер про...AzovDevMeetup 2016 | Основы Agile Project Management или Прощай, менеджер про...
AzovDevMeetup 2016 | Основы Agile Project Management или Прощай, менеджер про...
 
AzovDevMeetup 2016 | Angular 2: обзор | Александр Шевнин
AzovDevMeetup 2016 | Angular 2: обзор | Александр ШевнинAzovDevMeetup 2016 | Angular 2: обзор | Александр Шевнин
AzovDevMeetup 2016 | Angular 2: обзор | Александр Шевнин
 
AzovDevMeetup 2016 | HBase и Phoenix в качестве основы ETL-приложения на Node...
AzovDevMeetup 2016 | HBase и Phoenix в качестве основы ETL-приложения на Node...AzovDevMeetup 2016 | HBase и Phoenix в качестве основы ETL-приложения на Node...
AzovDevMeetup 2016 | HBase и Phoenix в качестве основы ETL-приложения на Node...
 
Quality Practices in e-Assessment Development
Quality Practices in e-Assessment DevelopmentQuality Practices in e-Assessment Development
Quality Practices in e-Assessment Development
 
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...
 
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 | Павел Крынецкий
 

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