Reigniting the Volusion platform

51
REIGNITING THE VOLUSION PLATFORM A PATH TO A BRIGHTER FUTURE, ONE FEATURE AT A TIME

Transcript of Reigniting the Volusion platform

Page 1: Reigniting the Volusion platform

REIGNITING THE VOLUSION PLATFORMA PATH TO A BRIGHTER FUTURE, ONE FEATURE AT A

TIME

Page 2: Reigniting the Volusion platform

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

Page 3: Reigniting the Volusion platform

PLEASE ASK QUESTIONS!

Page 4: Reigniting the Volusion platform

QUICK WINS FIRSTMAKING OUR CUSTOMERS TRUST US AGAIN!

Page 5: Reigniting the Volusion platform

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

Page 6: Reigniting the Volusion platform

FIXING CUSTOMER ISSUESTHERE ARE 900 ”BUGS” IN THE SYSTEM OVER THE PAST FEW YEARS

Page 7: Reigniting the Volusion platform

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

Page 8: Reigniting the Volusion platform

“”

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

Page 9: Reigniting the Volusion platform

TRANSPARENCY WITH THE CUSTOMER• STATUS PAGE• FEATURE REQUESTS

• OWNING UP TO OUR PAST

Page 10: Reigniting the Volusion platform

MODERNIZE THE PLATFORM UIFRESHENING UP OUR PLATFORM’S LOOK AND FEEL IS AN EASY WIN

Page 11: Reigniting the Volusion platform

APPLYING THE MODERNIZATION

ADMIN UI REFRESH

Page 12: Reigniting the Volusion platform

APPLYING THE MODERNIZATION

ADMIN UI REFRESH

Page 13: Reigniting the Volusion platform

APPLYING THE MODERNIZATION

ADMIN UI REFRESH

Page 14: Reigniting the Volusion platform

APPLYING THE MODERNIZATION

STOREFRONT REFRESH

Page 15: Reigniting the Volusion platform

APPLYING THE MODERNIZATION

STOREFRONT REFRESH

Page 16: Reigniting the Volusion platform

“”

SIMPLICITY IS THE ULTIMATE FORM OF SOPHISTICATION.

- LEONARDO DA VINCI

• ADMIN RESKIN TO BE LAUNCHED IN Q2

• NEW STOREFRONT TO BE LAUNCHED IN Q2

Page 17: Reigniting the Volusion platform

CONTINUOUS DEPLOYMENT

FROM ONCE EVERY TWO WEEKS, TO TWENTY TIMES A DAY!

Page 18: Reigniting the Volusion platform

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

Page 19: Reigniting the Volusion platform

THEN CONTINUOUS DEPLOYMENT• AUTOMATE LAST STEPS THROUGH• AUTOMATIC TESTING – RESULTS• AUTOMATIC MEASUREMENT –

RESULTS

Page 20: Reigniting the Volusion platform

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

Page 21: Reigniting the Volusion platform

“”

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

Page 22: Reigniting the Volusion platform

API FIRSTTHE BEGINNINGS OF OUR SOFTWARE AS A SERVICE

APPROACH

Page 23: Reigniting the Volusion platform

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

Page 24: Reigniting the Volusion platform

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

Page 25: Reigniting the Volusion platform

“”

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

Page 26: Reigniting the Volusion platform

FROM MONOLITHIC TO MICROSERVICES

SMALL PURPOSE BUILT SERVICES, RIGHT TECH TO DO THE JOB

Page 27: Reigniting the Volusion platform

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

Page 28: Reigniting the Volusion platform

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

Page 29: Reigniting the Volusion platform

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

Page 30: Reigniting the Volusion platform

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

Page 31: Reigniting the Volusion platform

“”

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”

Page 32: Reigniting the Volusion platform

FEATURE CANDIDATES

WHERE DO WE START?

Page 33: Reigniting the Volusion platform

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”

Page 34: Reigniting the Volusion platform

WE CAN BUY SOME FEATURES• SEARCH, TAX, SHIPPING, IMAGE RESIZE, APPLICATION ACCELERATION, CDN

Page 35: Reigniting the Volusion platform

VOLUSION SEARCH

• CUSTOM BUILT ON SQL SERVER

• MORE COMPLEX THAN NEEDED

• INDEXING CAN CAUSE OUTAGES

• MISSING FEATURES

• HARD TO SET UP

• CONFUSES CUSTOMERS

Page 36: Reigniting the Volusion platform

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

Page 37: Reigniting the Volusion platform

WE CAN BUILD OTHER FEATURES• STORE FRONTS – API’S – ADMIN INTERFACE – STYLE EDITOR – PRODUCT CATALOG

Page 38: Reigniting the Volusion platform

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

Page 39: Reigniting the Volusion platform

WHERE DO WE START?

Page 40: Reigniting the Volusion platform

LOOK AT THE PLATFORM

Page 41: Reigniting the Volusion platform

IDENTIFY TARGET:SEARCH

• SEARCH AS A SERVICE

• ADDS FEATURES: BOOST, FILTERING, FACETING, AUTO-INDEXING

• STABILIZES PLATFORM

• REDUCES DATA FOOT PRINT

• REDUCES INFRASTRUCTURE FOOTPRINT

Page 42: Reigniting the Volusion platform

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

Page 43: Reigniting the Volusion platform

IDENTIFY TARGET:

STOREFRONT• ALREADY UPDATING THE

STRUCTURE

• ADDING NEW THEME STRATEGY

• ADDING STYLE EDITOR

• API’S COMING ON LINE

Page 44: Reigniting the Volusion platform

DO THE WORK• STOREFRONT AS STAND ALONE

APP

• BUILT FROM THE API OUT

• STRUCTURED FOR FLEXIBLE THEMING

• HEAVILY CACHEABLE (CDN)

Page 45: Reigniting the Volusion platform

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 tankerto

container ship

Page 46: Reigniting the Volusion platform

NOT LESS FEATURES!

JUST LESS COMPLEXITY IN THE FEATURES

THINK LEGO!

Page 47: Reigniting the Volusion platform

GROWING THE TEAMS

Page 48: Reigniting the Volusion platform

THAT LOOKS LIKE A LOT OF

WORK!• WE’VE ALREADY STARTED:• BUG BASHING• ADMIN REFACTOR• STYLE EDITOR• CONTENT BUILDER• SEARCH AS A SERVICE

Page 49: Reigniting the Volusion platform

WE WANT TO GO FASTER!• FORMALIZING THE “API TEAM”

• EXPANDING THE FRONT END TEAM

• EXPANDING THE PLATFORM TEAM

• GROWING QA

• ADDING DEVOPS

• REALIGNING PROCESSES

Page 50: Reigniting the Volusion platform

BUT WE CAN’T FORGET

• WE NEED PASSION

• SELF DRIVEN

• HIGHLY MOTIVATED

• EAGER TO SOLVE PROBLEMS

Page 51: Reigniting the Volusion platform

QUESTIONS?@ASIEMER