about- face: reflections on growing an open-source mentality

75
About-Face REFLECTIONS ON GROWING AN OPEN-SOURCE MENTALITY

Upload: icemobile

Post on 15-Jan-2017

134 views

Category:

Technology


2 download

TRANSCRIPT

About-FaceREFLECTIONS ON GROWING ANOPEN-SOURCE MENTALITY

About-FaceHOW I SNUCK A CULTURE TALK INTO

NODEDAY AMSTERDAM

Self-DestructHOW TO WRITE A

SELF-DEFEATING TALK

PLEASE ALLOW MYSELFTO PROPERLY

INTRODUCE MYSELF

Jean-Charles Sisktwitter/@jcse • github/jasisk • jeancharles@paypal

▸ BOSTON, MA, USA▸ ENGINEER▸ PAYPAL

"I have hats older than your country."— Europeans

Jean-Charles Sisktwitter/@jcse • github/jasisk • jeancharles@paypal

▸ BOSTON, MA, USA▸ ENGINEER▸ PAYPAL

i saidYES

THE JOBI HAVE

I work, primarily, onOPEN SOURCE SOFTWARE

JOB IWISH I HADMATCHING FAMILY

SWEATSHIRT MODEL

NODEJS

you're in luck,I AM NOT GOING TO TALK ABOUT NODEJS

SINCE ADOPTING NODEJS IN 2012

▸ massive growth in app-engineer developed componentry▸ greatly improved developer happiness▸ significantly faster time to live

OUR APPLICATIONSAPPEAR TO HAVE BEENBUILT IN THE 21ST CENTURY

REMEMBER WHEN PAYPAL LOOKED LIKE THIS?

Technology adoption checklist:▸ TECHNOLOGY▸ PROCESS▸ CULTURE

don't worry,I'M STILL NOT GOING TO

TALK ABOUT NODEJS

Technology adoption checklist:▸ TECHNOLOGY▸ PROCESS▸ CULTURE

NODEJS WAS ATROJAN HORSE

"If one sticks to the idea that once set, a plan should not be changed, a business

cannot exist for long."— Taiichi Ohno

But first:A BRIEF HISTORY

OOPS

PAYPAL IN THEMID-AUGHTS WAS

DRIVEN EXCLUSIVELYBY RISK MITIGATION

SLOW BY DESIGN

Developers:CREATURES OF HABIT

TRUSTNO ONE

nih(NOT INVENTED HERE)

GREAT FOR FARMS—NOT GREAT FOR YOUUNLESS YOU FARM, IN WHICH CASE I'M IMPRESSED

"everything is a secret andI trust no one."

— Developers

PAYPAL IN THEMID-AUGHTS WAS

DRIVEN EXCLUSIVELYBY RISK MITIGATION

!

THE CULTURE WAS THE REAL REASON FOR THE DECISION TO CHANGE

THE TECHNOLOGY WAS HOW WE SOLD IT

HOW?

start small

TEAR ITDOWN

BUILD ITBACK UP

TRANSPARENTLY?

CONSIDER EVERYTHING BUTDON'T BE AFRAID TO SAY NO

TRANSPARENCY:

I lied.

ENJOY THE FOLLOWING NODEJS CODE

HOW TO WRITE AN EXPRESS APPimport Express from 'express';

const app = Express();

app.listen(8000);

HOW TO WRITE A KRAKEN APPimport Express from 'express';import Kraken from 'kraken-js';

const app = Express();

app.use(Kraken());app.listen(8000);

HOW TO WRITE A PAYPAL APPimport Express from 'express';import Kraken from 'kraken-js';import PayPal from 'paypalize';

const app = Express();const opts = PayPal();

app.use(Kraken(opts));app.listen(8000);

So …WHAT DOES

THAT GIVE US?

dynamic service mapping, local secrets decryption,service configuration, PayPal standard configuration(csrf, x-frame, etc), central logging, central cookiehandling, central device-detection, central sessionhandling, central exception tracking, monitoring,

analytics, app heath-checks, infra-specific uncaughtexception handling, CDN awareness …

… you generally wouldn't know that unless you read the README.

RELY ON EXISTINGCOMMUNITY CONVENTIONS

when you're not wasting time learning and fighting your internal systems, you have time to accomplish the job you signed up for

Homework:SEE WHAT KATHY SIERRA HAS TO SAY

ABOUT DEPLETING COGNITIVE RESOURCES1

1 youtu.be/FKTxC9pl-WM

"Fine, but that's a lot of work for one line. Isn't that too magical?"

— you

AbsolutelyBUT THERE'S A CATCH

EVERYTHING IS IN THE OPENWITH AN EMPHASIS ONDOCUMENTATION AND

DISCOVERABILITY

"What about our process?We can't make [custom-x]

an open process."— you

K. DON'T.BUT FIND A WAY TO MAKE IT WORK

HOOK INTO COMMON PROCESSES▸ Source Control

▸ Continuous Integration▸ Distribution Service▸ Deployment

consider optimismASSUME SUCCESS AND

GOOD INTENTIONS FOR NON-CRITICAL SYSTEMS AND APPLICATIONS

ADOPTING COMMON CONVENTIONAND BUILDING IN THE OPEN

BUILDS TRUST

PROMOTING TRUST:COMMUNITY

BUILDING COMMUNITY:

CULTURE

… big finish …

IT SHOULD COME AS NO SURPRISE THAT THESE ARE PRECISELY THE WAYS LARGE-

SCALE OPEN-SOURCE PROJECTS WORK

… wall of text alert …

Building our projects as if they're open-source even with no intention of ever opening them up has lead to better documentation, discoverability,

ownership, responsibility, code-quality, efficacy, etc.

By emulating practices we've seen and used in the open-source community, we've seen tremendous growth from both seasoned

developers and new hires alike.

By simply adopting open principles,PayPal is a measurably better place to work.

Thanks.@JCSE