32
| Slide 1 | STYLIGHT | Proud to bleed purple | @stylight ONE PRODUCT – MANY COUNTRIES How we scaled STYLIGHT to 10 countries

One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Embed Size (px)

Citation preview

Page 1: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

|Slide 1 | STYLIGHT | Proud to bleed purple | @stylight

ONE PRODUCT – MANY COUNTRIESHow we scaled STYLIGHT to 10 countries

Page 2: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Slide 2 | STYLIGHT | Proud to bleed purple | @stylight

WHAT IS STYLIGHT ABOUT?The best way to shop fashion

Page 3: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Slide 3 | STYLIGHT | Proud to bleed purple | @stylight

WHAT IS STYLIGHT ABOUT?Internationalization

Page 4: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Slide 4 | STYLIGHT | Proud to bleed purple | @stylight

WHAT IS STYLIGHT ABOUT?Some Stats

• 100 employee• 10 countries (three more planed for this year)• 5 years old• Headquarted in Munich

Page 5: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Slide 5 | STYLIGHT | Proud to bleed purple | @stylight

WHAT IS STYLIGHT ABOUT?How do we earn money

OrganicSocial Media

PerformanceMarketing

cpc

Page 6: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Slide 6 | STYLIGHT | Proud to bleed purple | @stylight

INTERNATIONALIZATION

Page 7: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Slide 7 | STYLIGHT | Proud to bleed purple | @stylight

INTERNATIONALIZATIONIsn’t a website global by default?

• eCommerce is a local business• Trends vary by country• Each country has their own preferences with payment and logistics

• We target the main stream• The website needs to be in the local language – to foster trust• A English-only website isn’t an option

Page 8: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Slide 8 | STYLIGHT | Proud to bleed purple | @stylight

INTERNATIONALIZATIONOur approach

Fundamental approach:The very same codebase for all countries, but we localize content• Language• Products and ranking• Editorial content

Why?• Scales• We can roll out features quickly to all countries• Easy to maintain for engineering• Little extra infrastructure needed when adding a new country

Page 9: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Slide 9 | STYLIGHT | Proud to bleed purple | @stylight

INTERNATIONALIZATIONAtomic Unit “site”

Triple of• Language• Country• Domain

Advantages• Adaptable per country, even though

it might be the same language(Moin / Servus / Grützi)

• Supports multi-lingual countries(fr.stylight.ch)

• SEO: improved targeting and risk diversion

Page 10: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Slide 10 | STYLIGHT | Proud to bleed purple | @stylight

INTERNATIONALIZATIONThe company needs to internationalized as well

• With a single code base, country managers wouldn’t be able to request their-country-only features=> we do not have country managers

• Functional organization• Per functional team, there’s someone in charge of each site• Ideal exchange of know-how within the team• Teams have to sit together

Page 11: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Slide 11 | STYLIGHT | Proud to bleed purple | @stylight

INTERNATIONALIZATIONThe company needs to internationalized as well

• All employees shall be in a single office• Natives of each country are essential to build a local product

=> We relocate everyone to Munich, one awesome shared office

• Email and VoIP emulate local presences• Single location simplifies creating and maintaining a good company culture• Works well for most countries, most issues around visa regulations

But there are limits to it• Some countries require a local presence – be it for networking or being it hard to

get people to relocate• Legal entity required to conduct business in some countries

Page 12: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Slide 12 | STYLIGHT | Proud to bleed purple | @stylight

INTERNATIONALIZATIONWhich country to go to?

• GDP is a good proxy within Europe• Market entry with existing partners

• Shops• Advertising partners• Payment providers

• Source tax regulations• Google’s AdWords team has good insights when evaluating other countries

Page 13: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Slide 13 | STYLIGHT | Proud to bleed purple | @stylight

DEVELOPMENT PROCESS

Page 14: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Slide 14 | STYLIGHT | Proud to bleed purple | @stylight

DEVELOPMENT PROCESSHow do we structure the engineering department

• 18 engineers / designers / DevOps• 6 nationalities, all based in Munich• SCRUM, 3 teams

• Website• Mobile• Internal Tools

• Website and mobile share the same product owner to keep the products in sync• We’re data driven – each feature has to prevail in an A/B test

Page 15: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Slide 15 | STYLIGHT | Proud to bleed purple | @stylight

DEVELOPMENT PROCESSOne country is in the lead

Code the feature

A/B test in DE

Localization

Global roll-out

Page 16: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Slide 16 | STYLIGHT | Proud to bleed purple | @stylight

LOCALIZATION

Page 17: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Slide 17 | STYLIGHT | Proud to bleed purple | @stylight

LOCALIZATIONWe adapt to each country

• Define the tune for each country (i.e. what “to heart” means)• During development, create all content in English• Translate using a web-based tool (as of now Weblate)

• It’s not that easy to judge the quality of a translation, if you don’t speak that particular language

• Translators rarely know where the translated string is located on the website• Build process checks that all translations are in place• Date and currency formatting can easily be handled via libraries

(more technical details in tomorrow’s talk)

Page 18: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Slide 18 | STYLIGHT | Proud to bleed purple | @stylight

LOCALIZATIONHow do we maintain efficiency?

Engineering perspective• Once central location where we maintain the list of available sites• Aim at configs relying on this central location• Fall back solution: generator scripts

• During database design – think of places where the site reference could make sense later

• Don’t do hacks. Seriously. It will hurt you at some point• Don’t put text in pictures• Chose one currency for evaluating A/B tests across countries• Add Google translate to all text fields with the internal tools

Page 19: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Slide 19 | STYLIGHT | Proud to bleed purple | @stylight

LOCALIZATIONHow do we maintain efficiency?

Content perspective• „One Country First“ – each campaign is being tested in one country first• If successful, the content is centrally produced• Countries can pull the content and then translate it

Þ Ensures quality, avoids irrelevant content for countries

Products perspective• Match products across countries• Store as much as possible information globally, as little as necessary local.

Example: product category vs. product price

Page 20: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Slide 20 | STYLIGHT | Proud to bleed purple | @stylight

LAUNCH

Page 21: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Slide 21 | STYLIGHT | Proud to bleed purple | @stylight

LAUNCH2-3 months until go-live

• 5 phases until go-live• All parts of the company are somehow involved

• I.e. domain registry, tune of the language, launch event• We use asana as our task manager

• We copy the process template to launch new countries• A single person is in charge, maintains the process

• Stand-Up meetings before we move on to each new phase, examine the task list• Do we have any blockers?• Can we proceed to the next phase?• Did we encounter any special cases for this country?

Page 22: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Slide 22 | STYLIGHT | Proud to bleed purple | @stylight

LAUNCHPhase 0 - Preperations

• Hire natives• Register domain• Apply for ssl certificate (EV certificates might take a while)• Research the legal situation

• Is our technology compliant for a given country• Can local companies to business with our German entity

Page 23: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Slide 23 | STYLIGHT | Proud to bleed purple | @stylight

LAUNCHPhase I – Enabling

• Translate the category tree• Translate the brand book / fix tune• Acquire first partner shop

Page 24: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Slide 24 | STYLIGHT | Proud to bleed purple | @stylight

LAUNCHPhase II - Engineering

• Distribute configuration files• Pixel• Analytics• SSL certificates

• Generate site specific setups• Install solr cores• Generate default URLs• Setup domain on loadbalancers

• Content• Duplicate CMS templates• Create language property files

• Enable domain in local DNS servers (enables local testing)

Page 25: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Slide 25 | STYLIGHT | Proud to bleed purple | @stylight

LAUNCHPhase III - Content

• Prepare marketing material• SEO: titles & descriptions• SEM: templates, keywords• Display: banner

• Translation• Translate CMS content (About us, Magazin)• Translate language files for the website / mobile apps

• Have first partner shops integrated

Page 26: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Slide 26 | STYLIGHT | Proud to bleed purple | @stylight

LAUNCHPhase IV – Go-Live

• 404-Check with a crawler• Switch DNS• Launch-Event

Page 27: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Slide 27 | STYLIGHT | Proud to bleed purple | @stylight

LAUNCHLessons learned

• Internally have your DNS already point to your setup – enable internal testing• Launch with a count-down is hard• Start translating early and proceed with iterations. • For engineering: add multiple countries in parallel

Page 28: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Slide 28 | STYLIGHT | Proud to bleed purple | @stylight

STUPID MISTAKES WE MADE

Page 29: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Slide 29 | STYLIGHT | Proud to bleed purple | @stylight

STUPID MISTAKES WE MADEAnd you can hopefully avoid

• It’s not enough to have someone that speaks a certain language – he needs to be a native from that country• Sales period in France• When do kids in Netherlands do get their presents?

• You need to watch out when summing fields in the DB and currencies are involved

• Do not handle upper / lower case in the language file if you have design issues in mind

• Some languages are very different from your own• 1 product, 100 products is only the start… some languages are way more

complicated here• Word order „Nike Schuhe“ vs. „chaussures de Nike“• There are special chars you ain’t have seen yet (i.e. in SEO)

Page 30: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Slide 30 | STYLIGHT | Proud to bleed purple | @stylight

STUPID MISTAKES WE MADEAnd you can hopefully avoid

• Make use of libraries for localization where ever possible• Check if your font supports all languages, i.e. Cyrillic• Be aware to what time zone you configure your tools and if they match• Seasons: if you have snow in the northern hemisphere, it might not be the same

in Australia…

Page 31: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Slide 31 | STYLIGHT | Proud to bleed purple | @stylight

THANKS FOR YOUR ATTENTION!

We‘re hiring!

Page 32: One Product - Many Countries. How we scaled STYLIGHT to 10 countries

Sebastian Schuon Co-Founder & CTO [email protected]

http://www.stylight.com/Engineering/

Slide 32 | STYLIGHT | Proud to bleed purple | @stylight