SlideShare a Scribd company logo
SAME BUT DIFFERENT
A story of delivering multi-brand product
Based on a true story.
Ivan Pashko
● Project Manager  Scrum
Master
● QA Automation Engineer
● 10+ years in IT
● 1+ years happy father
Multi-brand strategy
Multi-branding strategy - is when each brand is
intended for a different market segment.
What it meant for us (as a web project):
● Visual differences (colors, styles, layouts)
● Content differences (content localization, data specifics)
● Feature/Behaviour differences (user journeys, data flow)
Multi-brand solution
Our implementation plan
A-a-a-a!
● Architecture
● Automation (Testing)
● Automation (Process)
● Automation (Deploy &
monitoring)
Architecture
● No silver bullet
● Do not “overproduct” on the start
○ Release as fast as you can, with basic architecture
○ Improve continuously with “baby steps”
● Build quality in
○ Regression automation on all levels
Fakes & mocks
● Fast, Stable, Readable tests
● New features developing without
blocking on Backend (FE side)
● Prototyping new ideas
Feature Toggling
● Create feature once
● Enable via config (not from
code)
● Cover with tests scenarios
● Run tests depending on
config (automatically)
If something is difficult or painful, do it
more often*
*for multybrand - everything is painful :)
Process automation
● Blueprints
● Single command env build
● Local environment
● Fast switch between brands
Deploy automation
● Unified deploy procedure
● Parallel and optimal deploy strategy
● Build binaries once
● Rollback
● If common fails, stop the line,
if one brand fail - keep moving.
Don’t write automated tests, write
executable specifications
Test Automation
● Use automation as a testing tool:
○ Visual artifacts
○ Verify at one brand - run at all
● Optimize resources:
○ Run on every code change only feature tests
○ Use testing pipelines and suites
● BDD
BDD
● Only Live documentation
● Encourages collaboration between QA & Dev’s:
● QA act as a business representative for the developers
● QA and development work together.
Monitor. Support. Explore
Post Deploy Monitoring
● Realtime & available log data
● Track user’s journeys
● Explore clients errors
● Create Smart notifications (static rules or AI)
○ Deviation in average values (charts)
○ Case of degeneracy
Summary
2 things to follow:
● A close, collaborative working relationship
between everyone involved in delivery
● Extensive automation of all possible parts of
the delivery process and removing waste
Thank you! Questions?
Contact me:
Email: pashko.ivan@gmail.com
FB: https://www.facebook.com/ivan.pashko

More Related Content

What's hot

Continuously delivering value
Continuously delivering valueContinuously delivering value
Continuously delivering value
Žilvinas Kuusas
 
Building an automated css testing workflow
Building an automated css testing workflowBuilding an automated css testing workflow
Building an automated css testing workflow
Khyati Sehgal
 
What is dev ops?
What is dev ops?What is dev ops?
What is dev ops?
Mukta Aphale
 
Agile product management
Agile product managementAgile product management
Agile product management
Alex Apollonsky
 
Constinuous Integration
Constinuous IntegrationConstinuous Integration
Constinuous Integration
Gabriel Araujo
 
Unattended OutSystems Installation
Unattended OutSystems InstallationUnattended OutSystems Installation
Unattended OutSystems Installation
OutSystems
 
Running an Agile Project with Odoo
Running an Agile Project with OdooRunning an Agile Project with Odoo
Running an Agile Project with Odoo
Odoo
 
Extreme Programming - to the next-level
Extreme Programming - to the next-levelExtreme Programming - to the next-level
Extreme Programming - to the next-level
Lars Thorup
 
Continuous Delivery for Cross-Platform Mobile Apps
Continuous Delivery for Cross-Platform Mobile AppsContinuous Delivery for Cross-Platform Mobile Apps
Continuous Delivery for Cross-Platform Mobile Apps
Movel
 
Overcome a Frontier
Overcome a FrontierOvercome a Frontier
Overcome a Frontier
Izzet Mustafaiev
 
Continuous Deployment (english)
Continuous Deployment (english)Continuous Deployment (english)
Continuous Deployment (english)
Titas Norkūnas
 
Common Sense Agile
Common Sense AgileCommon Sense Agile
Common Sense Agile
Alex Apollonsky
 
CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
CUHK CSCI 4140 2015 Spring Guest Lecture - Agile DevelopmentCUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
Wong Hoi Sing Edison
 
Introduction to Automated Testing
Introduction to Automated TestingIntroduction to Automated Testing
Introduction to Automated Testing
Lars Thorup
 
Fast end-to-end-tests
Fast end-to-end-testsFast end-to-end-tests
Fast end-to-end-tests
Rikke Veng Petersen
 
Parallel development of Web Apps | Codesushi - Gliwice 2017
Parallel development of Web Apps | Codesushi - Gliwice  2017Parallel development of Web Apps | Codesushi - Gliwice  2017
Parallel development of Web Apps | Codesushi - Gliwice 2017
Krzysztof (Chris) Ozog
 
Laptop Devops: Putting Modern Infrastructure Automation to Work For Local Dev...
Laptop Devops: Putting Modern Infrastructure Automation to Work For Local Dev...Laptop Devops: Putting Modern Infrastructure Automation to Work For Local Dev...
Laptop Devops: Putting Modern Infrastructure Automation to Work For Local Dev...
Thoughtworks
 
Taiko_Gauge_PPT
Taiko_Gauge_PPTTaiko_Gauge_PPT
Taiko_Gauge_PPT
MonikaSharma573
 
Trunk based development ritabrata
Trunk based development ritabrataTrunk based development ritabrata
Trunk based development ritabrata
apgionline
 
PUG ROMAGNA - Alternative a Magento2
PUG ROMAGNA - Alternative a Magento2PUG ROMAGNA - Alternative a Magento2
PUG ROMAGNA - Alternative a Magento2
Giuseppe Morelli
 

What's hot (20)

Continuously delivering value
Continuously delivering valueContinuously delivering value
Continuously delivering value
 
Building an automated css testing workflow
Building an automated css testing workflowBuilding an automated css testing workflow
Building an automated css testing workflow
 
What is dev ops?
What is dev ops?What is dev ops?
What is dev ops?
 
Agile product management
Agile product managementAgile product management
Agile product management
 
Constinuous Integration
Constinuous IntegrationConstinuous Integration
Constinuous Integration
 
Unattended OutSystems Installation
Unattended OutSystems InstallationUnattended OutSystems Installation
Unattended OutSystems Installation
 
Running an Agile Project with Odoo
Running an Agile Project with OdooRunning an Agile Project with Odoo
Running an Agile Project with Odoo
 
Extreme Programming - to the next-level
Extreme Programming - to the next-levelExtreme Programming - to the next-level
Extreme Programming - to the next-level
 
Continuous Delivery for Cross-Platform Mobile Apps
Continuous Delivery for Cross-Platform Mobile AppsContinuous Delivery for Cross-Platform Mobile Apps
Continuous Delivery for Cross-Platform Mobile Apps
 
Overcome a Frontier
Overcome a FrontierOvercome a Frontier
Overcome a Frontier
 
Continuous Deployment (english)
Continuous Deployment (english)Continuous Deployment (english)
Continuous Deployment (english)
 
Common Sense Agile
Common Sense AgileCommon Sense Agile
Common Sense Agile
 
CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
CUHK CSCI 4140 2015 Spring Guest Lecture - Agile DevelopmentCUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
 
Introduction to Automated Testing
Introduction to Automated TestingIntroduction to Automated Testing
Introduction to Automated Testing
 
Fast end-to-end-tests
Fast end-to-end-testsFast end-to-end-tests
Fast end-to-end-tests
 
Parallel development of Web Apps | Codesushi - Gliwice 2017
Parallel development of Web Apps | Codesushi - Gliwice  2017Parallel development of Web Apps | Codesushi - Gliwice  2017
Parallel development of Web Apps | Codesushi - Gliwice 2017
 
Laptop Devops: Putting Modern Infrastructure Automation to Work For Local Dev...
Laptop Devops: Putting Modern Infrastructure Automation to Work For Local Dev...Laptop Devops: Putting Modern Infrastructure Automation to Work For Local Dev...
Laptop Devops: Putting Modern Infrastructure Automation to Work For Local Dev...
 
Taiko_Gauge_PPT
Taiko_Gauge_PPTTaiko_Gauge_PPT
Taiko_Gauge_PPT
 
Trunk based development ritabrata
Trunk based development ritabrataTrunk based development ritabrata
Trunk based development ritabrata
 
PUG ROMAGNA - Alternative a Magento2
PUG ROMAGNA - Alternative a Magento2PUG ROMAGNA - Alternative a Magento2
PUG ROMAGNA - Alternative a Magento2
 

Similar to Ivan Pashko ITEM 2018

CI/CD: Lessons from LinkedIn and Mockito
CI/CD: Lessons from LinkedIn and MockitoCI/CD: Lessons from LinkedIn and Mockito
CI/CD: Lessons from LinkedIn and Mockito
C4Media
 
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and MockitoQCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
Szczepan Faber
 
High Performance Software Engineering Teams
High Performance Software Engineering TeamsHigh Performance Software Engineering Teams
High Performance Software Engineering Teams
Lars Thorup
 
Continuous integration with business intelligence and analytics
Continuous integration with business intelligence and analyticsContinuous integration with business intelligence and analytics
Continuous integration with business intelligence and analytics
Alex Meadows
 
Multiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for PublishersMultiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for Publishers
Jon Peck
 
How to establish ways of working that allows shifting-left of the automation ...
How to establish ways of working that allows shifting-left of the automation ...How to establish ways of working that allows shifting-left of the automation ...
How to establish ways of working that allows shifting-left of the automation ...
Max Barrass
 
Expedia 3x3 presentation
Expedia 3x3 presentationExpedia 3x3 presentation
Expedia 3x3 presentation
Drew Hannay
 
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...dcieslak
 
Ensuring Performance in a Fast-Paced Environment (CMG 2014)
Ensuring Performance in a Fast-Paced Environment (CMG 2014)Ensuring Performance in a Fast-Paced Environment (CMG 2014)
Ensuring Performance in a Fast-Paced Environment (CMG 2014)
Martin Spier
 
Introduction to Continuous Integration
Introduction to Continuous IntegrationIntroduction to Continuous Integration
Introduction to Continuous Integration
Hùng Nguyễn Huy
 
Testing in a continuous delivery environment
Testing in a continuous delivery environmentTesting in a continuous delivery environment
Testing in a continuous delivery environment
Stefan Verhoeff
 
CD in Machine Learning Systems
CD in Machine Learning SystemsCD in Machine Learning Systems
CD in Machine Learning Systems
Thoughtworks
 
Quality Assurance: An Overview
Quality Assurance: An OverviewQuality Assurance: An Overview
Quality Assurance: An Overview
Anant Corporation
 
Continuous testing at scale
Continuous testing at scaleContinuous testing at scale
Continuous testing at scale
Gergely Orosz
 
Wso2con test-automation
Wso2con test-automationWso2con test-automation
Wso2con test-automation
krishantha_samaraweera
 
TestIstanbul 2015
TestIstanbul 2015TestIstanbul 2015
TestIstanbul 2015
Martin Spier
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud Pipelines
Lars Rosenquist
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud Pipelines
Lars Rosenquist
 
Continuously Break The Android
Continuously Break The AndroidContinuously Break The Android
Continuously Break The Android
Hasan Hosgel
 
Don't Suck at Building Stuff - Mykel Alvis at Puppet Camp Altanta
Don't Suck at Building Stuff  - Mykel Alvis at Puppet Camp AltantaDon't Suck at Building Stuff  - Mykel Alvis at Puppet Camp Altanta
Don't Suck at Building Stuff - Mykel Alvis at Puppet Camp Altanta
Puppet
 

Similar to Ivan Pashko ITEM 2018 (20)

CI/CD: Lessons from LinkedIn and Mockito
CI/CD: Lessons from LinkedIn and MockitoCI/CD: Lessons from LinkedIn and Mockito
CI/CD: Lessons from LinkedIn and Mockito
 
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and MockitoQCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
QCon'17 talk: CI/CD at scale - lessons from LinkedIn and Mockito
 
High Performance Software Engineering Teams
High Performance Software Engineering TeamsHigh Performance Software Engineering Teams
High Performance Software Engineering Teams
 
Continuous integration with business intelligence and analytics
Continuous integration with business intelligence and analyticsContinuous integration with business intelligence and analytics
Continuous integration with business intelligence and analytics
 
Multiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for PublishersMultiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for Publishers
 
How to establish ways of working that allows shifting-left of the automation ...
How to establish ways of working that allows shifting-left of the automation ...How to establish ways of working that allows shifting-left of the automation ...
How to establish ways of working that allows shifting-left of the automation ...
 
Expedia 3x3 presentation
Expedia 3x3 presentationExpedia 3x3 presentation
Expedia 3x3 presentation
 
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
 
Ensuring Performance in a Fast-Paced Environment (CMG 2014)
Ensuring Performance in a Fast-Paced Environment (CMG 2014)Ensuring Performance in a Fast-Paced Environment (CMG 2014)
Ensuring Performance in a Fast-Paced Environment (CMG 2014)
 
Introduction to Continuous Integration
Introduction to Continuous IntegrationIntroduction to Continuous Integration
Introduction to Continuous Integration
 
Testing in a continuous delivery environment
Testing in a continuous delivery environmentTesting in a continuous delivery environment
Testing in a continuous delivery environment
 
CD in Machine Learning Systems
CD in Machine Learning SystemsCD in Machine Learning Systems
CD in Machine Learning Systems
 
Quality Assurance: An Overview
Quality Assurance: An OverviewQuality Assurance: An Overview
Quality Assurance: An Overview
 
Continuous testing at scale
Continuous testing at scaleContinuous testing at scale
Continuous testing at scale
 
Wso2con test-automation
Wso2con test-automationWso2con test-automation
Wso2con test-automation
 
TestIstanbul 2015
TestIstanbul 2015TestIstanbul 2015
TestIstanbul 2015
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud Pipelines
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud Pipelines
 
Continuously Break The Android
Continuously Break The AndroidContinuously Break The Android
Continuously Break The Android
 
Don't Suck at Building Stuff - Mykel Alvis at Puppet Camp Altanta
Don't Suck at Building Stuff  - Mykel Alvis at Puppet Camp AltantaDon't Suck at Building Stuff  - Mykel Alvis at Puppet Camp Altanta
Don't Suck at Building Stuff - Mykel Alvis at Puppet Camp Altanta
 

More from ITEM

Claudiu Draghia ITEM 2018
Claudiu Draghia ITEM 2018Claudiu Draghia ITEM 2018
Claudiu Draghia ITEM 2018
ITEM
 
Anton Sytnyk ITEM 2018
Anton Sytnyk ITEM 2018Anton Sytnyk ITEM 2018
Anton Sytnyk ITEM 2018
ITEM
 
Katya Vasilenko ITEM 2018
Katya Vasilenko ITEM 2018Katya Vasilenko ITEM 2018
Katya Vasilenko ITEM 2018
ITEM
 
Denis Yarats ITEM 2018
Denis Yarats ITEM 2018Denis Yarats ITEM 2018
Denis Yarats ITEM 2018
ITEM
 
Dmitry Khomenko ITEM 2018
Dmitry Khomenko ITEM 2018Dmitry Khomenko ITEM 2018
Dmitry Khomenko ITEM 2018
ITEM
 
Evgeniy Tsvetukhin ITEM 2018
Evgeniy Tsvetukhin ITEM 2018Evgeniy Tsvetukhin ITEM 2018
Evgeniy Tsvetukhin ITEM 2018
ITEM
 
Cynthia Lee ITEM 2018
Cynthia Lee ITEM 2018Cynthia Lee ITEM 2018
Cynthia Lee ITEM 2018
ITEM
 
Tamara Kulinkovich ITEM 2018
Tamara Kulinkovich ITEM 2018Tamara Kulinkovich ITEM 2018
Tamara Kulinkovich ITEM 2018
ITEM
 
Kristina Pototska ITEM 2018
Kristina Pototska ITEM 2018Kristina Pototska ITEM 2018
Kristina Pototska ITEM 2018
ITEM
 
Andrii Bereznikov ITEM 2018
Andrii Bereznikov ITEM 2018Andrii Bereznikov ITEM 2018
Andrii Bereznikov ITEM 2018
ITEM
 
Olexander Gurbych ITEM 2018
Olexander Gurbych ITEM 2018Olexander Gurbych ITEM 2018
Olexander Gurbych ITEM 2018
ITEM
 
Sergii Baidachnyi ITEM 2018
Sergii Baidachnyi ITEM 2018Sergii Baidachnyi ITEM 2018
Sergii Baidachnyi ITEM 2018
ITEM
 
Diana Pinchuk ITEM 2018
Diana Pinchuk ITEM 2018Diana Pinchuk ITEM 2018
Diana Pinchuk ITEM 2018
ITEM
 
Alexander Gritsevski ITEM 2018
Alexander Gritsevski ITEM 2018Alexander Gritsevski ITEM 2018
Alexander Gritsevski ITEM 2018
ITEM
 
Aleksandr Shevchenko ITEM 2018
Aleksandr Shevchenko ITEM 2018Aleksandr Shevchenko ITEM 2018
Aleksandr Shevchenko ITEM 2018
ITEM
 
Dmitry Efimenko ITEM 2018
Dmitry Efimenko ITEM 2018Dmitry Efimenko ITEM 2018
Dmitry Efimenko ITEM 2018
ITEM
 
Ann Boiko ITEM 2018
Ann Boiko ITEM 2018Ann Boiko ITEM 2018
Ann Boiko ITEM 2018
ITEM
 
John Sung Kim ITEM 2018
John Sung Kim ITEM 2018John Sung Kim ITEM 2018
John Sung Kim ITEM 2018
ITEM
 
Alexander Sambuk ITEM 2018
Alexander Sambuk ITEM 2018Alexander Sambuk ITEM 2018
Alexander Sambuk ITEM 2018
ITEM
 
Solomon Amar ITEM 2018
Solomon Amar ITEM 2018Solomon Amar ITEM 2018
Solomon Amar ITEM 2018
ITEM
 

More from ITEM (20)

Claudiu Draghia ITEM 2018
Claudiu Draghia ITEM 2018Claudiu Draghia ITEM 2018
Claudiu Draghia ITEM 2018
 
Anton Sytnyk ITEM 2018
Anton Sytnyk ITEM 2018Anton Sytnyk ITEM 2018
Anton Sytnyk ITEM 2018
 
Katya Vasilenko ITEM 2018
Katya Vasilenko ITEM 2018Katya Vasilenko ITEM 2018
Katya Vasilenko ITEM 2018
 
Denis Yarats ITEM 2018
Denis Yarats ITEM 2018Denis Yarats ITEM 2018
Denis Yarats ITEM 2018
 
Dmitry Khomenko ITEM 2018
Dmitry Khomenko ITEM 2018Dmitry Khomenko ITEM 2018
Dmitry Khomenko ITEM 2018
 
Evgeniy Tsvetukhin ITEM 2018
Evgeniy Tsvetukhin ITEM 2018Evgeniy Tsvetukhin ITEM 2018
Evgeniy Tsvetukhin ITEM 2018
 
Cynthia Lee ITEM 2018
Cynthia Lee ITEM 2018Cynthia Lee ITEM 2018
Cynthia Lee ITEM 2018
 
Tamara Kulinkovich ITEM 2018
Tamara Kulinkovich ITEM 2018Tamara Kulinkovich ITEM 2018
Tamara Kulinkovich ITEM 2018
 
Kristina Pototska ITEM 2018
Kristina Pototska ITEM 2018Kristina Pototska ITEM 2018
Kristina Pototska ITEM 2018
 
Andrii Bereznikov ITEM 2018
Andrii Bereznikov ITEM 2018Andrii Bereznikov ITEM 2018
Andrii Bereznikov ITEM 2018
 
Olexander Gurbych ITEM 2018
Olexander Gurbych ITEM 2018Olexander Gurbych ITEM 2018
Olexander Gurbych ITEM 2018
 
Sergii Baidachnyi ITEM 2018
Sergii Baidachnyi ITEM 2018Sergii Baidachnyi ITEM 2018
Sergii Baidachnyi ITEM 2018
 
Diana Pinchuk ITEM 2018
Diana Pinchuk ITEM 2018Diana Pinchuk ITEM 2018
Diana Pinchuk ITEM 2018
 
Alexander Gritsevski ITEM 2018
Alexander Gritsevski ITEM 2018Alexander Gritsevski ITEM 2018
Alexander Gritsevski ITEM 2018
 
Aleksandr Shevchenko ITEM 2018
Aleksandr Shevchenko ITEM 2018Aleksandr Shevchenko ITEM 2018
Aleksandr Shevchenko ITEM 2018
 
Dmitry Efimenko ITEM 2018
Dmitry Efimenko ITEM 2018Dmitry Efimenko ITEM 2018
Dmitry Efimenko ITEM 2018
 
Ann Boiko ITEM 2018
Ann Boiko ITEM 2018Ann Boiko ITEM 2018
Ann Boiko ITEM 2018
 
John Sung Kim ITEM 2018
John Sung Kim ITEM 2018John Sung Kim ITEM 2018
John Sung Kim ITEM 2018
 
Alexander Sambuk ITEM 2018
Alexander Sambuk ITEM 2018Alexander Sambuk ITEM 2018
Alexander Sambuk ITEM 2018
 
Solomon Amar ITEM 2018
Solomon Amar ITEM 2018Solomon Amar ITEM 2018
Solomon Amar ITEM 2018
 

Recently uploaded

GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 

Recently uploaded (20)

GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 

Ivan Pashko ITEM 2018

  • 1. SAME BUT DIFFERENT A story of delivering multi-brand product
  • 2. Based on a true story.
  • 3. Ivan Pashko ● Project Manager Scrum Master ● QA Automation Engineer ● 10+ years in IT ● 1+ years happy father
  • 4. Multi-brand strategy Multi-branding strategy - is when each brand is intended for a different market segment. What it meant for us (as a web project): ● Visual differences (colors, styles, layouts) ● Content differences (content localization, data specifics) ● Feature/Behaviour differences (user journeys, data flow)
  • 7. A-a-a-a! ● Architecture ● Automation (Testing) ● Automation (Process) ● Automation (Deploy & monitoring)
  • 8. Architecture ● No silver bullet ● Do not “overproduct” on the start ○ Release as fast as you can, with basic architecture ○ Improve continuously with “baby steps” ● Build quality in ○ Regression automation on all levels
  • 9. Fakes & mocks ● Fast, Stable, Readable tests ● New features developing without blocking on Backend (FE side) ● Prototyping new ideas
  • 10. Feature Toggling ● Create feature once ● Enable via config (not from code) ● Cover with tests scenarios ● Run tests depending on config (automatically)
  • 11. If something is difficult or painful, do it more often* *for multybrand - everything is painful :)
  • 12. Process automation ● Blueprints ● Single command env build ● Local environment ● Fast switch between brands
  • 13. Deploy automation ● Unified deploy procedure ● Parallel and optimal deploy strategy ● Build binaries once ● Rollback ● If common fails, stop the line, if one brand fail - keep moving.
  • 14. Don’t write automated tests, write executable specifications
  • 15. Test Automation ● Use automation as a testing tool: ○ Visual artifacts ○ Verify at one brand - run at all ● Optimize resources: ○ Run on every code change only feature tests ○ Use testing pipelines and suites ● BDD
  • 16. BDD ● Only Live documentation ● Encourages collaboration between QA & Dev’s: ● QA act as a business representative for the developers ● QA and development work together.
  • 18. Post Deploy Monitoring ● Realtime & available log data ● Track user’s journeys ● Explore clients errors ● Create Smart notifications (static rules or AI) ○ Deviation in average values (charts) ○ Case of degeneracy
  • 19. Summary 2 things to follow: ● A close, collaborative working relationship between everyone involved in delivery ● Extensive automation of all possible parts of the delivery process and removing waste
  • 20. Thank you! Questions? Contact me: Email: pashko.ivan@gmail.com FB: https://www.facebook.com/ivan.pashko

Editor's Notes

  1. Розповім власну історію. Історію однієї команди, яка 3 роки працювала та деліверила над мультибрендовий продукту Розповім про наші перепони, ідеї, реалізації, що спрацювало а що ні, А головне, чому ми навчилися при розроблюючи поставляючи мульти бренд рішення
  2. Отже, що розуміти під мультибрендом? Стратегія Для веб Різний функціонал зі своєю поведінкою та особливостями
  3. Бекенд - мультитенантна система, різні конфігурації. Фронтенд - абсолютно різний Коли ми маємо 3-4 скіни, питань не виникає, і підходить до стандартної моделі розробки. А якщо 25 різних за поведінкою брендів і одна команда?
  4. У вас одна команда, и 20+ брендов. Каков план? А-а-а-а-а! Крім розробки, ще є саппрорт і постійні оновлення
  5. В цьому плані є 2 основні компоненти Архітектура та автоматизація
  6. Перше, що ми зрозуміли запізно - Ідеальної архітектури не буває, буває оптимальна (No silver bullet). Витратили купу часу на пошук оптимального рішення, не маючи повної картини. Не накручувати відразу хардкор чи ракету, бо вимоги зміняться. Отримайте фідбек, до йдіть до кінця, і покращуйте маршрут. Автоматизуйте бізнес сценарії та регресію. Але так, щоб зміна архітектури не потребувала повного рефакторингу і тестів. Адаптуйте архітектуру під вимоги автоматизації Ми міняли архітектуру 3 рази. Домовтесь про стандарти, а об’єднуйте бренди коли вони вже готові (Red-Green-Refactor) тільки для архітектури.
  7. Автоматизація роботи над новими фічами (як підняти енв локально) Коли приходить запит на нову фічу -скоріш за все вона потрібна декільком брендам одночасно. Отже потрібно вміти швидко переключатися між ними. Потрібно легко піднімати новий енв для бренду - проста команда з одним параметром Як архітектура софту відображається на архітектурі автоматизації? Чи потрібно робити архітектуру відразу? (ні, ми робили поступово) Фідбек! в першу чергу (автоматизуємо найважливіші флоу чи найтяжчі? - залежить від вас і вашого проекту - розписати) Піраміда в середині піраміди - що, коли ваше ПО це 90% фронтенд. JS Unit test all logic JS Component test all component Selenium flows & Visual Mock & Fakes Прибирати бар’єри BDD - для організації розуміння і роботи продукту всередині команди, за відсутності чіткої документації
  8. Ідеальної архітектури не буває, буває оптимальна (No silver bullet): Автоматиуватися (Automated) Single Delivery () Не дублювати роботу (Avoid double implementing) Розширяєма (Scalable) Feature Toggling - легко додава Не накручувати відразу хардкор, бо вимоги зміняться. Ми міняли архітектуру 3 рази. Домовтесь про стандарти, а об’єднуйте бренди коли вони вже готові (Red-Green-Refactor) тільки для архітектури.
  9. Чим болючішою є задача, тим частіше її потрібно робити. Для мультиьренлу все болюче - адже має великий множник (у нас це був 25) Якщо задача потребує 1 хвилини, то 25 задач… І тут працює правило автоматизації (як в ооп і дублюванні) якщо ви повторюєте дію більше 2 оаз - автоматизуйте іі
  10. Ми вели активну розробку. 5 брендів, ще 5, нові фічі, ще 3 бренди, знову нові фічі. Що повторюється ? Додання бренду! Кандидат! Створюємо блупрінти. Підняття енвайромениу - кожен раз при розробці нової фічі. Кандидат! Автоматизація процесу (СI, triggers, notification on code review) Створити розумні трігери, що ранитимуть лише потрібні тести: Зміна UI - візуальні Зміна ядра - функціональні Нова фіча - лише обрані бренди (Дуже часто нехтують унікальністю й запускають все відразу, для 1 продукту це ще нормально, для 25 - ні)
  11. Бренди додаємо, фічі готуємо - деплой. Уніфікована процедура деплою (шаблони \ темплейти по параметру) - щоб мати змогу викотити довільну фічу, що може бути ввімкнена на деяких брендах - процедура деплою 2 чи вибірки має бути уніфікована Фідбек по деплою, його стану
  12. Автоматизація роботи над новими фічами (як підняти енв локально) Коли приходить запит на нову фічу -скоріш за все вона потрібна декільком брендам одночасно. Отже потрібно вміти швидко переключатися між ними. Потрібно легко піднімати новий енв для бренду - проста команда з одним параметром Як архітектура софту відображається на архітектурі автоматизації? Чи потрібно робити архітектуру відразу? (ні, ми робили поступово) Фідбек! в першу чергу (автоматизуємо найважливіші флоу чи найтяжчі? - залежить від вас і вашого проекту - розписати) Піраміда в середині піраміди - що, коли ваше ПО це 90% фронтенд. JS Unit test all logic JS Component test all component Selenium flows & Visual Mock & Fakes Прибирати бар’єри BDD - для організації розуміння і роботи продукту всередині команди, за відсутності чіткої документації
  13. PostDeploy monitoring, metrics & automation Monitoring next metrics: Key flows (user journey) Errors(investigate top errors) Health Check (brand is keep alive) Automate: Notifications (error count/flow trigger) Deviation in average values Case of degeneracy (немного)