front-end culture @ booking.com

85
Front-end culture @ Booking.com Eduardo Shiota

Upload: eduardo-shiota-yasuda

Post on 05-Apr-2017

720 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Front-end Culture @ Booking.com

Front-end culture @ Booking.com

Eduardo Shiota

Page 2: Front-end Culture @ Booking.com

Eduardo [email protected]@shiota

Page 3: Front-end Culture @ Booking.com
Page 4: Front-end Culture @ Booking.com
Page 5: Front-end Culture @ Booking.com

www.workingatbooking.com

Page 6: Front-end Culture @ Booking.com

Front-end culture @ Booking.com

Page 7: Front-end Culture @ Booking.com

What is the role of a front-end developer?

Page 8: Front-end Culture @ Booking.com

”Transforming mockups into HTML and CSS.”

Page 9: Front-end Culture @ Booking.com

”Doing design, HTML, CSS, and a bit of JavaScript.”

Page 10: Front-end Culture @ Booking.com

”Writing scalable JavaScript and crafting fast websites.”

Page 11: Front-end Culture @ Booking.com
Page 12: Front-end Culture @ Booking.com

Largest accommodations reservation website in the world.

Page 13: Front-end Culture @ Booking.com

Founded in 1996.Current version is 13 years old.

Page 14: Front-end Culture @ Booking.com

Developers and designers touch the same codebase every day.

Page 15: Front-end Culture @ Booking.com
Page 16: Front-end Culture @ Booking.com

I’m not here to talk about frameworks and libraries.

Page 17: Front-end Culture @ Booking.com

We must deliver the best experience, as frictionless as possible, and grow and adapt fast to the customer’s need.

Page 18: Front-end Culture @ Booking.com

Experimentation

Monitoring

Empowerment

ContinuousImprovement

Site speed

Page 19: Front-end Culture @ Booking.com

Experimentation

Page 20: Front-end Culture @ Booking.com
Page 21: Front-end Culture @ Booking.com

Buy now

Buy now

vs

Page 22: Front-end Culture @ Booking.com

Buy now

Buy now

if track(my_experiment)50%

50%

Page 23: Front-end Culture @ Booking.com

Buy now

Buy now

Logged in/outLanguage/currencyCountry of originBrowser/OS/Device…

Visited productsNavigation flowSearch criteriaValidation errors…

Customer’s city/statePayment typeCustomer service callsCancellations…

Page load timeWallclock/CPUNumber of queriesServer/client-side errors…

Page 24: Front-end Culture @ Booking.com

Buy now Buy now

Duration: 14 daysVisitors: 45.140 (22.570 per variant)

Transactions

Average price

339 (1.5%) 407 (1.8%)+20%

$ 42,00 $ 42,84+2%

Page 25: Front-end Culture @ Booking.com

Everything we do at Booking—including technical decisions—is done through A/B testing.

Page 26: Front-end Culture @ Booking.com

“But my design is so much better and more intuitive than what we have! We don’t need an A/B test.”— the majority of designers

Page 27: Front-end Culture @ Booking.com

Quiz time!

Page 28: Front-end Culture @ Booking.com

Which one had a better performance?

A: Raise your left hand B: Raise your right hand

Inconclusive: Don’t raise your hands

Page 29: Front-end Culture @ Booking.com

Which one had a better performance?

1.7% drop in bounce rates

Page 30: Front-end Culture @ Booking.com

Which one had a better performance?

A: Raise your left hand B: Raise your right hand

Inconclusive: Don’t raise your hands

Page 31: Front-end Culture @ Booking.com

Which one had a better performance?

203% increase in CTR

Page 32: Front-end Culture @ Booking.com

Which one had a better performance?

A: Raise your left hand B: Raise your right hand

Inconclusive: Don’t raise your hands

Page 33: Front-end Culture @ Booking.com

Which one had a better performance?

43.4% increase in sales

Page 34: Front-end Culture @ Booking.com

Which one had a better performance?

A: Raise your left hand B: Raise your right hand

Inconclusive: Don’t raise your hands

Page 35: Front-end Culture @ Booking.com

Which one had a better performance?

No conclusive impact on any main metric

Page 36: Front-end Culture @ Booking.com

if track('new_button')render 'new_button.inc'

elserender 'button.inc'

Page 37: Front-end Culture @ Booking.com

if track('new_button') == 1render 'new_button.inc'

if track('new_button') == 2render 'new_button_v2.inc'

elserender 'button.inc'

Page 38: Front-end Culture @ Booking.com

if (track('increase_gallery_size')) {require('gallery').init({size: 20

});} else {require('gallery').init({size: 10

});}

Page 39: Front-end Culture @ Booking.com

Buy now

Buy now

vsNet conversion

Clickthrough ratesValidation errors

Page 40: Front-end Culture @ Booking.com

vsJS Errors

Net conversion (per UA)Page load time

jQuery 1.11.3

jQuery 3.0

Page 41: Front-end Culture @ Booking.com

vsTime to render

(Net conversion per UA)Page load time

Virtual DOM

Morphdom

Page 42: Front-end Culture @ Booking.com

”In god we trust, all others must bring data.”

Page 43: Front-end Culture @ Booking.com

Net conversion is one of many proxy metrics for the user’s experience.

Page 44: Front-end Culture @ Booking.com

Monitoring

Page 45: Front-end Culture @ Booking.com

We have dashboards showing us what happens in every single part of the application.

Page 46: Front-end Culture @ Booking.com
Page 47: Front-end Culture @ Booking.com

Everything generates an event.

Page 48: Front-end Culture @ Booking.com

action => ’hotel’,referrer => ’http://booking.com’,country => ’us’,ip => ’222.222.2.22’,git_tag => ’20160625-120178’,node => ’xx555-33’,browser => ’chrome’,version => ’49’,js_error => {

file => ’hotel.js’,error => ’undefined B is not a function’,stack => ’...’,line_number => 337

},js_data => {

first_load => 4343,first_paint => 1200

}is_robot => 0,...

Event

DB

Page 49: Front-end Culture @ Booking.com

Events DB Graphite metrics

Page 50: Front-end Culture @ Booking.com

If something happens, we can quickly react and debug.

Page 51: Front-end Culture @ Booking.com
Page 52: Front-end Culture @ Booking.com

Site speed

Page 53: Front-end Culture @ Booking.com

The customer must be able to make a reservation, regardless of being behind China’s firewall or using a fiber connection in Germany.

Page 54: Front-end Culture @ Booking.com

1st DOM Content Ready1st Load

Avg. DOM Content ReadyAvg. Load

Body size in bytesWallclock

CPUMemory usage

Page 55: Front-end Culture @ Booking.com

Service Workers

Cache management and offline first.

Page 56: Front-end Culture @ Booking.com

Critical rendering path

Inlining above-the-fold resources.

Page 57: Front-end Culture @ Booking.com

Asynchrnonous assets and templates

On-demand resources loading.

Page 58: Front-end Culture @ Booking.com

Assets pre-fetching

Pre-fetching assets for the next step in the customer’s journey.

Page 59: Front-end Culture @ Booking.com

WebP? HTTP/2?

Page 60: Front-end Culture @ Booking.com

All performance changes are done and measured through our A/B testing tool.

Page 61: Front-end Culture @ Booking.com

Empowerment

Page 62: Front-end Culture @ Booking.com

Every developer and designer has the power to make a decision and execute it on every step of the process.

Page 63: Front-end Culture @ Booking.com

Conception of ideas

Backlog management

Implementation discussions

Designing and coding

QualityAssurance

Deploy to production

A/B test configuration and

start

Data analysis and decision making

Learnings and follow ups

Page 64: Front-end Culture @ Booking.com

Everyone is equally responsible for making decisions and the product’s success; there are no ”HiPPOs”.

Page 65: Front-end Culture @ Booking.com

Our data is available for all developers and designers.

Page 66: Front-end Culture @ Booking.com

(View our videos at the PlanetBooking YouTube channel)

Page 67: Front-end Culture @ Booking.com

Continuous Improvement

Page 68: Front-end Culture @ Booking.com

Our product is over 10 years old, and is continously growing and evolving.

Page 69: Front-end Culture @ Booking.com
Page 70: Front-end Culture @ Booking.com

We cannot afford redesigns and refactoring code all the time.

Page 71: Front-end Culture @ Booking.com

All of our efforts are always focused on the customer, and our velocity must allow us to react accordingly.

Page 72: Front-end Culture @ Booking.com

beneficial for customers

beneficial for the company

beneficial for developers

Page 73: Front-end Culture @ Booking.com

What does ”high performance” mean?

Page 74: Front-end Culture @ Booking.com

It means delivering the best experience, as frictionless as possible, and growing and adapting fast to the customer’s need.

Page 75: Front-end Culture @ Booking.com

It means doing experimentation. We make data-driven decisions, and we know we’re building the best experience for our customers.

Page 76: Front-end Culture @ Booking.com

It means monitoring everything that happens. We’re sure that, if the customer’s experience is broken, we’re able to react fast.

Page 77: Front-end Culture @ Booking.com

It means giving power to developers. Everyone is responsible for deciding the product’s future.

Page 78: Front-end Culture @ Booking.com

It means constantly improving and adapting to the customer, the market, and to new technologies.

Page 79: Front-end Culture @ Booking.com

Technology alone won’t give you a high performance.

Page 80: Front-end Culture @ Booking.com
Page 81: Front-end Culture @ Booking.com

Don’t love the tools, love the challenge.

Page 82: Front-end Culture @ Booking.com

You are responsible for the future of your product.

Page 83: Front-end Culture @ Booking.com

”Keep the customer at the centre of everything you do.”

Page 84: Front-end Culture @ Booking.com
Page 85: Front-end Culture @ Booking.com

Dank jullie [email protected]@shiota