SlideShare a Scribd company logo
1 of 51
INTRODUCTION
• IDENTIFYING QUICK WINS
• CONTINUOUS DEPLOYMENT
• API FIRST APPROACH
• SHIFTING FROM MONOLITHIC TO
MICROSERVICES
• FEATURE CANDIDATES FOR REAL IMPACT
• GROWING THE TEAMS TO MAKE IT HAPPEN
PLEASE ASK QUESTIONS!
TYPES OF QUICK WINS
• RESOLVE AS MANY BUGS AS POSSIBLE
• UPGRADE THE LOOK AND FEEL TO CURRENT
• TRANSPARENT CUSTOMER COMMUNICATION
• BUILD AROUND THE PLATFORM, NOT IN IT
FIXING CUSTOMER ISSUES
THERE ARE 900 ”BUGS” IN THE SYSTEM OVER THE PAST FEW YEARS
BUG BASHING FIRST
• PLATFORM TEAM IN BUG BASHING MODE
• PRIORITIZING THE LOW HANGING FRUIT
• FIXING THE TOP ISSUES OUR CUSTOMERS ARE
DEALING WITH
• COMMUNICATE OUR RE-FOCUS TO THE
CUSTOMERS
“
”
DELETED CODE IS DEBUGGED CODE.
- JEFF SICKEL
• THIS EFFORT IS HAPPENING NOW AND WILL CONTINUE THROUGH-OUT THIS YEAR
• FOCUSING ON CODE REMOVAL, OR REFACTORING OFF EXISTING PLATFORM
TRANSPARENCY WITH THE CUSTOMER
• STATUS PAGE
• FEATURE REQUESTS
• OWNING UP TO OUR PAST
MODERNIZE THE PLATFORM UI
FRESHENING UP OUR PLATFORM’S LOOK AND FEEL IS AN EASY WIN
APPLYING THE
MODERNIZATION
ADMIN UI REFRESH
APPLYING THE
MODERNIZATION
ADMIN UI REFRESH
APPLYING THE
MODERNIZATION
ADMIN UI REFRESH
APPLYING THE
MODERNIZATION
STOREFRONT REFRESH
APPLYING THE
MODERNIZATION
STOREFRONT REFRESH
“
”
SIMPLICITY IS THE ULTIMATE FORM OF
SOPHISTICATION.
- LEONARDO DA VINCI
• ADMIN RESKIN TO BE LAUNCHED IN Q2
• NEW STOREFRONT TO BE LAUNCHED IN Q2
START WITH CONTINUOUS DELIVERY
• UNDERSTAND ROAD BLOCKS
• WORK TO REMOVE ROAD BLOCKS
• AUTOMATE PATH TO PRODUCTION
• PERFORM PATH TO PRODUCTION MANUALLY
• TEST AUTOMATICALLY
• MEASURE AUTOMATICALLY
THEN CONTINUOUS DEPLOYMENT
• AUTOMATE LAST STEPS THROUGH
• AUTOMATIC TESTING – RESULTS
• AUTOMATIC MEASUREMENT – RESULTS
CI/CD STRATEGIES
• A / B – BLUE / GREEN – CANARY
• DARK LAUNCHING
• SLOW BLEED OVER OF TRAFFIC
• NON-DESTRUCTIVE DEPLOYMENTS
• ROLL BACK BECOMES SWAP TO LAST
• EXCEPT DB
• MEASURE ANYTHING / MEASURE EVERYTHING
• CREATE AND WATCH BASELINES
• LISTEN FOR UNACCEPTABLE DRIFT
• EXCEPTIONS, OUTAGES, RESPONSE TIMES
• DASHBOARD FOR ”ALL THE THINGS”
• PROD LIKE EVERYWHERE
“
”
PROGRAM TESTING CAN BE USED TO
SHOW THE PRESENCE OF BUGS, BUT
NEVER TO SHOW THEIR ABSENCE!
- EDSGER DIJKSTRA
• AS SIMPLE AS POSSIBLE, LESS COMPLEXITY IS BETTER
• PROD LIKE FROM THE START ENABLES NO SURPRISES DOWN THE ROAD
• MEASURE ANYTHING, MEASURE EVERYTHING
DOG FOODING MAKES THE BEST API
• ENABLES CUSTOMER TO EXTEND THE PLATFORM
• DECOUPLE THE FRONT END FROM THE BACKEND
• OPEN UP MOBILE OPPORTUNITIES
• OPEN APP STORE FOR VOLUSION
• OPEN NEW MARKETS FOR VOLUSION
A COLLECTION OF SMALL API’S
• CAN BE WEB API
• CAN BE NODE.JS AND LAMBDA
• FRONTED BY GATEWAY
• DEPLOYS SEPARATE FROM FRONT END
• VERSIONED INDIVIDUALLY
From one big code base
To small specific
code bases
“
”
PLAN TO THROW ONE AWAY; YOU WILL,
ANYHOW.
- FRED BROOKS
• SMALL, PURPOSE BUILT APPS, WILL LAST LONGER
• SMALL, PURPOSE BUILT APPS, ARE EASY TO RE-WRITE
WHAT IS A MICROSERVICE?
• IT DEPENDS!
• CAN BE A 10 LINE LAMBDA METHOD
• CAN BE A WEB API PROJECT
• ALWAYS – JUST ENOUGH, NO MORE
• AUTONOMOUS
• HIGH RATE OF CHANGE NOT NECESSARY
N-TIER OF THE 90’S
• A COLLECTION OF LAYERS TO SEPARATE
CROSS CUTTING RESPONSIBILITIES
• ADDING FEATURES GOES SLOWER AS
UNDERSTANDING IMPACT GETS DIFFICULT
• SMALL CHANGES REQUIRE FULL TEST
SUITE EXECUTION
DEATH STAR
ARCHITECTURE
• A COLLECTION OF SERVICES THAT DO
THEIR SINGLE JOB WELL
• EACH SERVICE USES THE TECH THAT BEST
SOLVES THE JOB
• WIDTH VS. DEPTH APPROACH
GO FASTER, MOVE THE
COMPLEXITY
• INFRASTRUCTURE COMPLEXITY IS
INITIALLY HIGHER WITH MICROSERVICES,
BUT CAN ADD FEATURES FASTER
• LOWER INITIAL INFRASTRUCTURE
FRICTION IN MONOLITH, FEATURES GET
HARDER TO ADD OVER TIME
“
”
PERFECTION IS ACHIEVED NOT WHEN
THERE IS NOTHING MORE TO ADD, BUT
RATHER WHEN THERE IS NOTHING MORE
TO TAKE AWAY
- ANTOINE DE SAINT-EXUPERY
• JUST ENOUGH CODE, AND NO MORE
• NO PRECONCEIVED TECHNOLOGY CHOICES MADE UP FRONT
• CAN BE 5 LINES OF CODE, CAN BE A VISUAL STUDIO “PROJECT”
HOW TO IDENTIFY
• CAUSES INTERNAL CUSTOMERS PAIN
• CAUSES EXTERNAL CUSTOMERS PAIN
• IMPACTS STABILITY OF THE PLATFORM
• NOT PART OF OUR CORE OFFERING
• REQUIRES COMPLEX UNDERSTANDING
• RIDDLED WITH BUGS
• BUILT ON OLD, NO LONGER SUPPORTED,
TECHNOLOGY
• GET OUT OF THE HABIT OF
“NOT INVENTED HERE”
WE CAN BUY SOME FEATURES
• SEARCH, TAX, SHIPPING, IMAGE RESIZE, APPLICATION ACCELERATION,CDN
VOLUSION SEARCH
• CUSTOM BUILT ON SQL SERVER
• MORE COMPLEX THAN NEEDED
• INDEXING CAN CAUSE OUTAGES
• MISSINGFEATURES
• HARD TO SET UP
• CONFUSES CUSTOMERS
SEARCH AS A SERVICE
• ANOTHER COMPANY’S CORE OFFERING
• FACETED & FILTERING OUT OF THE BOX
• RE-INDEXING IN REAL TIME
• MULTI-LANGUAGE SUPPORT
• SUPPORTED BY THEM, NOT US
• PROMOTES EROSION OF OLD TECH
WE CAN BUILD OTHER FEATURES
• STORE FRONTS – API’S – ADMIN INTERFACE – STYLE EDITOR – PRODUCT CATALOG
STORE FRONTS CAN BE RE-WRITTEN
REASONS TO REFACTOR
• NEW RESPONSIVE BASE THEME
• STYLE EDITOR
• HTML RESTRUCTURE
• HTML 5
REASONS TO RE-WRITE
• MOVE OF OF ASP CLASSIC
• DECOUPLE FROM THE PLATFORM
• SEPARATE DEPLOYMENT FREQUENCY
• ONE TEAM OWNERSHIP
WHERE DO WE START?
LOOK AT THE
PLATFORM
IDENTIFY TARGET:
SEARCH
• SEARCH AS A SERVICE
• ADDS FEATURES: BOOST, FILTERING,
FACETING, AUTO-INDEXING
• STABILIZES PLATFORM
• REDUCES DATA FOOT PRINT
• REDUCES INFRASTRUCTURE FOOTPRINT
DO THE WORK
• BUILD NEW SEARCH UI
• SYNC STORE DATA TO SEARCH SERVICE
• HOOK INTO DATA UPDATES
• HOOK INTO DATA IMPORTER
• ADD FEATURE TOGGLES
• SLOWLY ROLL STORES OVER TO NEW SEARCH
IDENTIFY TARGET:
STOREFRONT
• ALREADY UPDATING THE STRUCTURE
• ADDING NEW THEME STRATEGY
• ADDING STYLE EDITOR
• API’S COMING ON LINE
DO THE WORK
• STOREFRONT AS STAND ALONE APP
• BUILT FROM THE API OUT
• STRUCTURED FOR FLEXIBLE THEMING
• HEAVILY CACHEABLE (CDN)
THE GOAL IS TO ERODE
THE PLATFORM
WE ARE STILL AFLOAT BUT WE NEED TO
RE-PLATFORM AS QUICKLY AS WE CAN
• SMALLER AND LIGHTER COMPONENTS
• BUILD A FEELING OF OWNERSHIP
• GET IN FRONT OF OUR COMPETITION
from oil tanker
to
container ship
NOT LESS FEATURES!
JUST LESS COMPLEXITY IN THE FEATURES
THINK LEGO!
THAT LOOKS LIKE A
LOT OF WORK!
• WE’VE ALREADY STARTED:
• BUG BASHING
• ADMIN REFACTOR
• STYLE EDITOR
• CONTENT BUILDER
• SEARCH AS A SERVICE
WE WANT
TO GO FASTER!
• FORMALIZING THE “API TEAM”
• EXPANDING THE FRONT END TEAM
• EXPANDING THE PLATFORM TEAM
• GROWING QA
• ADDING DEVOPS
• REALIGNING PROCESSES
BUT WE CAN’T FORGET
• WE NEED PASSION
• SELF DRIVEN
• HIGHLY MOTIVATED
• EAGER TO SOLVE PROBLEMS
Reigniting the Volusion platform

More Related Content

Viewers also liked

Microservices pros and cons
Microservices pros and consMicroservices pros and cons
Microservices pros and consAndrew Siemer
 
Microservices pros and cons dark
Microservices pros and cons darkMicroservices pros and cons dark
Microservices pros and cons darkAndrew Siemer
 
Microservices pros and cons - houston tech fest
Microservices pros and cons - houston tech festMicroservices pros and cons - houston tech fest
Microservices pros and cons - houston tech festAndrew Siemer
 
The Journey from Monolith to Microservices: a Guided Adventure
The Journey from Monolith to Microservices: a Guided AdventureThe Journey from Monolith to Microservices: a Guided Adventure
The Journey from Monolith to Microservices: a Guided AdventureVMware Tanzu
 
Breaking the Monolith
Breaking the MonolithBreaking the Monolith
Breaking the MonolithVMware Tanzu
 
Pivotal Cloud Foundry: A Technical Overview
Pivotal Cloud Foundry: A Technical OverviewPivotal Cloud Foundry: A Technical Overview
Pivotal Cloud Foundry: A Technical OverviewVMware Tanzu
 
AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture P...
AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture P...AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture P...
AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture P...Amazon Web Services
 
AWS re:Invent 2016: Serverless Architectural Patterns and Best Practices (ARC...
AWS re:Invent 2016: Serverless Architectural Patterns and Best Practices (ARC...AWS re:Invent 2016: Serverless Architectural Patterns and Best Practices (ARC...
AWS re:Invent 2016: Serverless Architectural Patterns and Best Practices (ARC...Amazon Web Services
 
Pros and Cons of a MicroServices Architecture talk at AWS ReInvent
Pros and Cons of a MicroServices Architecture talk at AWS ReInventPros and Cons of a MicroServices Architecture talk at AWS ReInvent
Pros and Cons of a MicroServices Architecture talk at AWS ReInventSudhir Tonse
 
AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)
AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)
AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)Amazon Web Services
 

Viewers also liked (10)

Microservices pros and cons
Microservices pros and consMicroservices pros and cons
Microservices pros and cons
 
Microservices pros and cons dark
Microservices pros and cons darkMicroservices pros and cons dark
Microservices pros and cons dark
 
Microservices pros and cons - houston tech fest
Microservices pros and cons - houston tech festMicroservices pros and cons - houston tech fest
Microservices pros and cons - houston tech fest
 
The Journey from Monolith to Microservices: a Guided Adventure
The Journey from Monolith to Microservices: a Guided AdventureThe Journey from Monolith to Microservices: a Guided Adventure
The Journey from Monolith to Microservices: a Guided Adventure
 
Breaking the Monolith
Breaking the MonolithBreaking the Monolith
Breaking the Monolith
 
Pivotal Cloud Foundry: A Technical Overview
Pivotal Cloud Foundry: A Technical OverviewPivotal Cloud Foundry: A Technical Overview
Pivotal Cloud Foundry: A Technical Overview
 
AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture P...
AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture P...AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture P...
AWS re:Invent 2016: From Monolithic to Microservices: Evolving Architecture P...
 
AWS re:Invent 2016: Serverless Architectural Patterns and Best Practices (ARC...
AWS re:Invent 2016: Serverless Architectural Patterns and Best Practices (ARC...AWS re:Invent 2016: Serverless Architectural Patterns and Best Practices (ARC...
AWS re:Invent 2016: Serverless Architectural Patterns and Best Practices (ARC...
 
Pros and Cons of a MicroServices Architecture talk at AWS ReInvent
Pros and Cons of a MicroServices Architecture talk at AWS ReInventPros and Cons of a MicroServices Architecture talk at AWS ReInvent
Pros and Cons of a MicroServices Architecture talk at AWS ReInvent
 
AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)
AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)
AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)
 

Similar to Reigniting the Volusion platform

Continuous integration using Jenkins and Sonar
Continuous integration using Jenkins and SonarContinuous integration using Jenkins and Sonar
Continuous integration using Jenkins and SonarPascal Larocque
 
Agile lean workshop
Agile lean workshopAgile lean workshop
Agile lean workshopJesse Wang
 
DevOps Journey of Foundational Services at Haufe
DevOps Journey of Foundational Services at HaufeDevOps Journey of Foundational Services at Haufe
DevOps Journey of Foundational Services at HaufeHaufe-Lexware GmbH & Co KG
 
Choosing Javascript Libraries to Adopt for Development
Choosing Javascript Libraries to Adopt for DevelopmentChoosing Javascript Libraries to Adopt for Development
Choosing Javascript Libraries to Adopt for DevelopmentEdward Apostol
 
Agile vs Waterfall Project management
Agile vs Waterfall  Project management Agile vs Waterfall  Project management
Agile vs Waterfall Project management Kostiantyn Trefiak
 
DataArt Odessa IT talk: Ansible use-cases and custom modules
DataArt Odessa IT talk: Ansible use-cases and custom modulesDataArt Odessa IT talk: Ansible use-cases and custom modules
DataArt Odessa IT talk: Ansible use-cases and custom modulesKharchenkoKaterina
 
Webinar marketing sucess
Webinar marketing sucessWebinar marketing sucess
Webinar marketing sucessFaraad Coston
 
Testing Database Changes
Testing Database ChangesTesting Database Changes
Testing Database ChangesSazed Monsur
 
Operations management takira motors
Operations management takira motorsOperations management takira motors
Operations management takira motorsShrey Agarwal
 
Word press theme and plugins WordCamp Presentation
Word press theme and plugins WordCamp PresentationWord press theme and plugins WordCamp Presentation
Word press theme and plugins WordCamp PresentationAngela Samuels
 
LONDON SDET MEETUP - Difference between Selenium and Cypress presentation
LONDON SDET MEETUP - Difference between Selenium and Cypress presentationLONDON SDET MEETUP - Difference between Selenium and Cypress presentation
LONDON SDET MEETUP - Difference between Selenium and Cypress presentationSriram Angajala
 
Untangling the web - week 3
Untangling the web - week 3Untangling the web - week 3
Untangling the web - week 3Derek Jacoby
 
Architecting for Enterprise with JavaScript
Architecting for Enterprise with JavaScriptArchitecting for Enterprise with JavaScript
Architecting for Enterprise with JavaScriptKurtis Kemple
 
User stories and decomposing requirements
User stories and decomposing requirementsUser stories and decomposing requirements
User stories and decomposing requirementsAndy Brandt
 
Azure automation invades your data centre
Azure automation invades your data centreAzure automation invades your data centre
Azure automation invades your data centrekieranjacobsen
 
Surviving your frontend (WIP - Sneak Peak)
Surviving your frontend (WIP - Sneak Peak)Surviving your frontend (WIP - Sneak Peak)
Surviving your frontend (WIP - Sneak Peak)Sebastian Schürmann
 

Similar to Reigniting the Volusion platform (20)

Continuous integration using Jenkins and Sonar
Continuous integration using Jenkins and SonarContinuous integration using Jenkins and Sonar
Continuous integration using Jenkins and Sonar
 
Agile lean workshop
Agile lean workshopAgile lean workshop
Agile lean workshop
 
DevOps Journey of Foundational Services at Haufe
DevOps Journey of Foundational Services at HaufeDevOps Journey of Foundational Services at Haufe
DevOps Journey of Foundational Services at Haufe
 
Choosing Javascript Libraries to Adopt for Development
Choosing Javascript Libraries to Adopt for DevelopmentChoosing Javascript Libraries to Adopt for Development
Choosing Javascript Libraries to Adopt for Development
 
Agile vs Waterfall Project management
Agile vs Waterfall  Project management Agile vs Waterfall  Project management
Agile vs Waterfall Project management
 
DataArt Odessa IT talk: Ansible use-cases and custom modules
DataArt Odessa IT talk: Ansible use-cases and custom modulesDataArt Odessa IT talk: Ansible use-cases and custom modules
DataArt Odessa IT talk: Ansible use-cases and custom modules
 
My feedback on ddd europe
My feedback on ddd europeMy feedback on ddd europe
My feedback on ddd europe
 
SOLID Principles
SOLID PrinciplesSOLID Principles
SOLID Principles
 
Webinar marketing sucess
Webinar marketing sucessWebinar marketing sucess
Webinar marketing sucess
 
Testing Database Changes
Testing Database ChangesTesting Database Changes
Testing Database Changes
 
Operations management takira motors
Operations management takira motorsOperations management takira motors
Operations management takira motors
 
Word press theme and plugins WordCamp Presentation
Word press theme and plugins WordCamp PresentationWord press theme and plugins WordCamp Presentation
Word press theme and plugins WordCamp Presentation
 
Ppt gokraft.ppt
Ppt gokraft.pptPpt gokraft.ppt
Ppt gokraft.ppt
 
LONDON SDET MEETUP - Difference between Selenium and Cypress presentation
LONDON SDET MEETUP - Difference between Selenium and Cypress presentationLONDON SDET MEETUP - Difference between Selenium and Cypress presentation
LONDON SDET MEETUP - Difference between Selenium and Cypress presentation
 
Untangling the web - week 3
Untangling the web - week 3Untangling the web - week 3
Untangling the web - week 3
 
Architecting for Enterprise with JavaScript
Architecting for Enterprise with JavaScriptArchitecting for Enterprise with JavaScript
Architecting for Enterprise with JavaScript
 
User stories and decomposing requirements
User stories and decomposing requirementsUser stories and decomposing requirements
User stories and decomposing requirements
 
ProductCamp Atlanta 2019
ProductCamp Atlanta 2019ProductCamp Atlanta 2019
ProductCamp Atlanta 2019
 
Azure automation invades your data centre
Azure automation invades your data centreAzure automation invades your data centre
Azure automation invades your data centre
 
Surviving your frontend (WIP - Sneak Peak)
Surviving your frontend (WIP - Sneak Peak)Surviving your frontend (WIP - Sneak Peak)
Surviving your frontend (WIP - Sneak Peak)
 

More from Andrew Siemer

20 tips for website performance
20 tips for website performance20 tips for website performance
20 tips for website performanceAndrew Siemer
 
Grokking microservices in 5 minutes
Grokking microservices in 5 minutesGrokking microservices in 5 minutes
Grokking microservices in 5 minutesAndrew Siemer
 
Making your API behave like a big boy
Making your API behave like a big boyMaking your API behave like a big boy
Making your API behave like a big boyAndrew Siemer
 
Load testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew SiemerLoad testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew SiemerAndrew Siemer
 
Test driving Azure Search and DocumentDB
Test driving Azure Search and DocumentDBTest driving Azure Search and DocumentDB
Test driving Azure Search and DocumentDBAndrew Siemer
 
A tale of two clouds
A tale of two cloudsA tale of two clouds
A tale of two cloudsAndrew Siemer
 
Introduction to CQRS - command and query responsibility segregation
Introduction to CQRS - command and query responsibility segregationIntroduction to CQRS - command and query responsibility segregation
Introduction to CQRS - command and query responsibility segregationAndrew Siemer
 

More from Andrew Siemer (7)

20 tips for website performance
20 tips for website performance20 tips for website performance
20 tips for website performance
 
Grokking microservices in 5 minutes
Grokking microservices in 5 minutesGrokking microservices in 5 minutes
Grokking microservices in 5 minutes
 
Making your API behave like a big boy
Making your API behave like a big boyMaking your API behave like a big boy
Making your API behave like a big boy
 
Load testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew SiemerLoad testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew Siemer
 
Test driving Azure Search and DocumentDB
Test driving Azure Search and DocumentDBTest driving Azure Search and DocumentDB
Test driving Azure Search and DocumentDB
 
A tale of two clouds
A tale of two cloudsA tale of two clouds
A tale of two clouds
 
Introduction to CQRS - command and query responsibility segregation
Introduction to CQRS - command and query responsibility segregationIntroduction to CQRS - command and query responsibility segregation
Introduction to CQRS - command and query responsibility segregation
 

Recently uploaded

BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 

Recently uploaded (20)

BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 

Reigniting the Volusion platform

  • 1.
  • 2. INTRODUCTION • IDENTIFYING QUICK WINS • CONTINUOUS DEPLOYMENT • API FIRST APPROACH • SHIFTING FROM MONOLITHIC TO MICROSERVICES • FEATURE CANDIDATES FOR REAL IMPACT • GROWING THE TEAMS TO MAKE IT HAPPEN
  • 4.
  • 5. TYPES OF QUICK WINS • RESOLVE AS MANY BUGS AS POSSIBLE • UPGRADE THE LOOK AND FEEL TO CURRENT • TRANSPARENT CUSTOMER COMMUNICATION • BUILD AROUND THE PLATFORM, NOT IN IT
  • 6. FIXING CUSTOMER ISSUES THERE ARE 900 ”BUGS” IN THE SYSTEM OVER THE PAST FEW YEARS
  • 7. BUG BASHING FIRST • PLATFORM TEAM IN BUG BASHING MODE • PRIORITIZING THE LOW HANGING FRUIT • FIXING THE TOP ISSUES OUR CUSTOMERS ARE DEALING WITH • COMMUNICATE OUR RE-FOCUS TO THE CUSTOMERS
  • 8. “ ” DELETED CODE IS DEBUGGED CODE. - JEFF SICKEL • THIS EFFORT IS HAPPENING NOW AND WILL CONTINUE THROUGH-OUT THIS YEAR • FOCUSING ON CODE REMOVAL, OR REFACTORING OFF EXISTING PLATFORM
  • 9. TRANSPARENCY WITH THE CUSTOMER • STATUS PAGE • FEATURE REQUESTS • OWNING UP TO OUR PAST
  • 10. MODERNIZE THE PLATFORM UI FRESHENING UP OUR PLATFORM’S LOOK AND FEEL IS AN EASY WIN
  • 16. “ ” SIMPLICITY IS THE ULTIMATE FORM OF SOPHISTICATION. - LEONARDO DA VINCI • ADMIN RESKIN TO BE LAUNCHED IN Q2 • NEW STOREFRONT TO BE LAUNCHED IN Q2
  • 17.
  • 18. START WITH CONTINUOUS DELIVERY • UNDERSTAND ROAD BLOCKS • WORK TO REMOVE ROAD BLOCKS • AUTOMATE PATH TO PRODUCTION • PERFORM PATH TO PRODUCTION MANUALLY • TEST AUTOMATICALLY • MEASURE AUTOMATICALLY
  • 19. THEN CONTINUOUS DEPLOYMENT • AUTOMATE LAST STEPS THROUGH • AUTOMATIC TESTING – RESULTS • AUTOMATIC MEASUREMENT – RESULTS
  • 20. CI/CD STRATEGIES • A / B – BLUE / GREEN – CANARY • DARK LAUNCHING • SLOW BLEED OVER OF TRAFFIC • NON-DESTRUCTIVE DEPLOYMENTS • ROLL BACK BECOMES SWAP TO LAST • EXCEPT DB • MEASURE ANYTHING / MEASURE EVERYTHING • CREATE AND WATCH BASELINES • LISTEN FOR UNACCEPTABLE DRIFT • EXCEPTIONS, OUTAGES, RESPONSE TIMES • DASHBOARD FOR ”ALL THE THINGS” • PROD LIKE EVERYWHERE
  • 21. “ ” PROGRAM TESTING CAN BE USED TO SHOW THE PRESENCE OF BUGS, BUT NEVER TO SHOW THEIR ABSENCE! - EDSGER DIJKSTRA • AS SIMPLE AS POSSIBLE, LESS COMPLEXITY IS BETTER • PROD LIKE FROM THE START ENABLES NO SURPRISES DOWN THE ROAD • MEASURE ANYTHING, MEASURE EVERYTHING
  • 22.
  • 23. DOG FOODING MAKES THE BEST API • ENABLES CUSTOMER TO EXTEND THE PLATFORM • DECOUPLE THE FRONT END FROM THE BACKEND • OPEN UP MOBILE OPPORTUNITIES • OPEN APP STORE FOR VOLUSION • OPEN NEW MARKETS FOR VOLUSION
  • 24. A COLLECTION OF SMALL API’S • CAN BE WEB API • CAN BE NODE.JS AND LAMBDA • FRONTED BY GATEWAY • DEPLOYS SEPARATE FROM FRONT END • VERSIONED INDIVIDUALLY From one big code base To small specific code bases
  • 25. “ ” PLAN TO THROW ONE AWAY; YOU WILL, ANYHOW. - FRED BROOKS • SMALL, PURPOSE BUILT APPS, WILL LAST LONGER • SMALL, PURPOSE BUILT APPS, ARE EASY TO RE-WRITE
  • 26.
  • 27. WHAT IS A MICROSERVICE? • IT DEPENDS! • CAN BE A 10 LINE LAMBDA METHOD • CAN BE A WEB API PROJECT • ALWAYS – JUST ENOUGH, NO MORE • AUTONOMOUS • HIGH RATE OF CHANGE NOT NECESSARY
  • 28. N-TIER OF THE 90’S • A COLLECTION OF LAYERS TO SEPARATE CROSS CUTTING RESPONSIBILITIES • ADDING FEATURES GOES SLOWER AS UNDERSTANDING IMPACT GETS DIFFICULT • SMALL CHANGES REQUIRE FULL TEST SUITE EXECUTION
  • 29. DEATH STAR ARCHITECTURE • A COLLECTION OF SERVICES THAT DO THEIR SINGLE JOB WELL • EACH SERVICE USES THE TECH THAT BEST SOLVES THE JOB • WIDTH VS. DEPTH APPROACH
  • 30. GO FASTER, MOVE THE COMPLEXITY • INFRASTRUCTURE COMPLEXITY IS INITIALLY HIGHER WITH MICROSERVICES, BUT CAN ADD FEATURES FASTER • LOWER INITIAL INFRASTRUCTURE FRICTION IN MONOLITH, FEATURES GET HARDER TO ADD OVER TIME
  • 31. “ ” PERFECTION IS ACHIEVED NOT WHEN THERE IS NOTHING MORE TO ADD, BUT RATHER WHEN THERE IS NOTHING MORE TO TAKE AWAY - ANTOINE DE SAINT-EXUPERY • JUST ENOUGH CODE, AND NO MORE • NO PRECONCEIVED TECHNOLOGY CHOICES MADE UP FRONT • CAN BE 5 LINES OF CODE, CAN BE A VISUAL STUDIO “PROJECT”
  • 32.
  • 33. HOW TO IDENTIFY • CAUSES INTERNAL CUSTOMERS PAIN • CAUSES EXTERNAL CUSTOMERS PAIN • IMPACTS STABILITY OF THE PLATFORM • NOT PART OF OUR CORE OFFERING • REQUIRES COMPLEX UNDERSTANDING • RIDDLED WITH BUGS • BUILT ON OLD, NO LONGER SUPPORTED, TECHNOLOGY • GET OUT OF THE HABIT OF “NOT INVENTED HERE”
  • 34. WE CAN BUY SOME FEATURES • SEARCH, TAX, SHIPPING, IMAGE RESIZE, APPLICATION ACCELERATION,CDN
  • 35. VOLUSION SEARCH • CUSTOM BUILT ON SQL SERVER • MORE COMPLEX THAN NEEDED • INDEXING CAN CAUSE OUTAGES • MISSINGFEATURES • HARD TO SET UP • CONFUSES CUSTOMERS
  • 36. SEARCH AS A SERVICE • ANOTHER COMPANY’S CORE OFFERING • FACETED & FILTERING OUT OF THE BOX • RE-INDEXING IN REAL TIME • MULTI-LANGUAGE SUPPORT • SUPPORTED BY THEM, NOT US • PROMOTES EROSION OF OLD TECH
  • 37. WE CAN BUILD OTHER FEATURES • STORE FRONTS – API’S – ADMIN INTERFACE – STYLE EDITOR – PRODUCT CATALOG
  • 38. STORE FRONTS CAN BE RE-WRITTEN REASONS TO REFACTOR • NEW RESPONSIVE BASE THEME • STYLE EDITOR • HTML RESTRUCTURE • HTML 5 REASONS TO RE-WRITE • MOVE OF OF ASP CLASSIC • DECOUPLE FROM THE PLATFORM • SEPARATE DEPLOYMENT FREQUENCY • ONE TEAM OWNERSHIP
  • 39. WHERE DO WE START?
  • 41. IDENTIFY TARGET: SEARCH • SEARCH AS A SERVICE • ADDS FEATURES: BOOST, FILTERING, FACETING, AUTO-INDEXING • STABILIZES PLATFORM • REDUCES DATA FOOT PRINT • REDUCES INFRASTRUCTURE FOOTPRINT
  • 42. DO THE WORK • BUILD NEW SEARCH UI • SYNC STORE DATA TO SEARCH SERVICE • HOOK INTO DATA UPDATES • HOOK INTO DATA IMPORTER • ADD FEATURE TOGGLES • SLOWLY ROLL STORES OVER TO NEW SEARCH
  • 43. IDENTIFY TARGET: STOREFRONT • ALREADY UPDATING THE STRUCTURE • ADDING NEW THEME STRATEGY • ADDING STYLE EDITOR • API’S COMING ON LINE
  • 44. DO THE WORK • STOREFRONT AS STAND ALONE APP • BUILT FROM THE API OUT • STRUCTURED FOR FLEXIBLE THEMING • HEAVILY CACHEABLE (CDN)
  • 45. THE GOAL IS TO ERODE THE PLATFORM WE ARE STILL AFLOAT BUT WE NEED TO RE-PLATFORM AS QUICKLY AS WE CAN • SMALLER AND LIGHTER COMPONENTS • BUILD A FEELING OF OWNERSHIP • GET IN FRONT OF OUR COMPETITION from oil tanker to container ship
  • 46. NOT LESS FEATURES! JUST LESS COMPLEXITY IN THE FEATURES THINK LEGO!
  • 47.
  • 48. THAT LOOKS LIKE A LOT OF WORK! • WE’VE ALREADY STARTED: • BUG BASHING • ADMIN REFACTOR • STYLE EDITOR • CONTENT BUILDER • SEARCH AS A SERVICE
  • 49. WE WANT TO GO FASTER! • FORMALIZING THE “API TEAM” • EXPANDING THE FRONT END TEAM • EXPANDING THE PLATFORM TEAM • GROWING QA • ADDING DEVOPS • REALIGNING PROCESSES
  • 50. BUT WE CAN’T FORGET • WE NEED PASSION • SELF DRIVEN • HIGHLY MOTIVATED • EAGER TO SOLVE PROBLEMS

Editor's Notes

  1. Quick wins API first CI / CD Monolithic vs microservices Feature candidates for quick wins Growing the team
  2. Please ask questions in real time
  3. Start with quick wins Target making our customers happy and trust us
  4. * bugs * look and feel * user experience * how we communicate with our customers * build new apps over modifying existing code
  5. 900 bugs in the system Collected over 3 years
  6. * Raymond has been prioritizing the bugs * fixing what we can * stabilizing * looking for quick wins * looking for most reported issues * communicating our refocus
  7. The more code we delete the better!
  8. Status page, outages, impact to customers Give customer a voice to the dev team UserVoice
  9. reskinning is a quick win
  10. * from once or twice every two weeks * 20 times a day
  11. Road blocks Release management kept in the loop Steps that aren’t automated Testing requires eyes on Add more tests Measure automatically Button press to production becomes very stable
  12. Automate everything * need auditing in jira? Automate it!
  13. * extend the platform * decoupled * can do mobile better * can open an app store * expand into other markets (CMS)
  14. * no more monoliths!!! * right tech for the job * logical API - fronted by a gateway * different deployment story * focus on smaller batch size
  15. * as the app grows, the complexity grows * slower to add features to over time * complexity added to manage complexity * DDD, CQRS, Event Sourcing, BUS, IOC
  16. * its cheap to add a service * road to production has to be solid * manual management approach not possible
  17. * initially Monolith is cheaper * file > new solution > add projects > deploy * over time adding features gets hard * test execution times grow * technology choices made up front * most important feature makes all features most important - order management, cart - vs. product catalog, cms
  18. With these ideas - where do we begin?
  19. * look for pain * our pain * customer pain * stability * product purchase opportunities * most buggy * old tech - kill the "not invented here" mantra
  20. * Look for products * great at what they do * that feature is their core functionality * don't re-invent for solved problems
  21. * several meetings where search was complained about * missing features * hard to set up * complex * stability can be an issue
  22. * we have to build the UI * we need to import our data * need to keep data in sync * improves store front search * improves admin search * removes code from us
  23. * not everything can be outsourced though! * storefront upgrade * API's * admin interface * style editor * product catalog * things that make us special
  24. When we want to refactor we need a reason * embrace real responsive html * better user experience * requires html restructure Re-write also needs reasoning * get off of asp classic / vbscript * decouple from the mother ship * needs to live on grow on its own * team ownership
  25. Where do we start?
  26. * Highly stylized, low fidelity * start somewhere with low spaghetti factor
  27. * low touch * big feature gains * adds stability * let's us delete code
  28. * there are touch points to upgrade * can't just rip it out * need to support both initially * need a slow roll out * need to communicate to customers * slow roll out to customers
  29. Rinse and repeat * next candidate is storefront * already updating structure * building better responsive themes * building new style editor * great time to just rewrite it!
  30. * lots of low hanging fruit * will push the growth of our API's * can cache the experience * latest theming concepts up front * make our store fronts AWESOME!
  31. With each new thing or old thing made better * need to embrace getting off the existing mega platform * and embrace smaller lego pieces
  32. * formalizing the teams - api - ui - platform - qa - devops
  33. * Quality people over people now
  34. We are hiring for the API team Hiring for the front end team Then the QA and devops