Clash of the Titans: Releasing the Kraken | NodeJS @paypal

23
clash of the titans @billwscott on twitter bill scott. sr. dir. user interface engineering @paypal fluent plenary. may 30, 2013. san francisco. releasing the kraken: nodejs @paypal
  • date post

    17-Oct-2014
  • Category

    Technology

  • view

    5.825
  • download

    1

description

FluentConf 2013 Plenary. http://www.youtube.com/watch?v=tZWGb0HU2QM&list=SP055Epbe6d5avZGXwE5u039VQq_oQFgrc&index=9 How do you take a large titan like PayPal and move it from a culture of a long shelf life to a culture of rapid experimentation? You set the UI free by adding liberal doses of NodeJS, JavaScript templating & libraries, JSON, Github and Lean Startup/UX. Bill will explain the transformation that is in process to revolutionize the technical and experience stack at PayPal.

Transcript of Clash of the Titans: Releasing the Kraken | NodeJS @paypal

Page 1: Clash of the Titans: Releasing the Kraken | NodeJS @paypal

clash of the titans

@billwscott on twitterbill scott. sr. dir. user interface engineering @paypal

fluent plenary. may 30, 2013. san francisco.

releasing the kraken: nodejs @paypal

Page 2: Clash of the Titans: Releasing the Kraken | NodeJS @paypal

16 different test cells in the initial PS3 Launch (2010)

focus is on build/measure/learn

four distinct PS3 experiences launched on same day

typical netflix release

Page 3: Clash of the Titans: Releasing the Kraken | NodeJS @paypal

the epiphanyengineer for volatility. for change. for learning.

Page 4: Clash of the Titans: Releasing the Kraken | NodeJS @paypal

however, paypal circa 2011...

not invented here. risk averse. culture

of long shelf life.

Page 5: Clash of the Titans: Releasing the Kraken | NodeJS @paypal

In 2011, even a simple content copy change

could take as much as 6 weeks to get live to site

Page 6: Clash of the Titans: Releasing the Kraken | NodeJS @paypal

tangled up technologyone of the root problems

technology and processes not suited for • rapid experimentation• build/measure/learn

Page 7: Clash of the Titans: Releasing the Kraken | NodeJS @paypal

existing stack wasn’t designed for experimentation

this new stack was not conducive to prototyping

followed an “enterprise application” model. ui gets built into the “server app”

ajax/components all done server-side (subclass java controller)!

java(components)

jsp

proprietary uiprototyping was hard

“ui bits” mostly lived here

Page 8: Clash of the Titans: Releasing the Kraken | NodeJS @paypal

paypal vs netflix

Page 9: Clash of the Titans: Releasing the Kraken | NodeJS @paypal

new dna @paypaljanuary 2012fleshed out ui layer that could support rapid experimentation

march 2012david Marcus becomes president of PayPal

april 2012kick off of lean project using nodejs & dustjs

Page 10: Clash of the Titans: Releasing the Kraken | NodeJS @paypal

hermes project lean ux in action

from whiteboard to code from code to usabilitylearningsstart again

Page 11: Clash of the Titans: Releasing the Kraken | NodeJS @paypal

1st step: fire up a prototype stack (nodejs)

utilize opens source stack

express, connect, require.js

bring in javascript templating and other open source ui goodness

node.js

ui bits

prototypestack

Page 12: Clash of the Titans: Releasing the Kraken | NodeJS @paypal

2nd step: bootstrap with bootstrap

able to create a new branded look in a few hours

enabled sketch to codenode.js

ui bits

prototypestack

Page 13: Clash of the Titans: Releasing the Kraken | NodeJS @paypal

3rd step: use javascript templating

text templates get compiled to javascript<p>Hello {name}</p>

dustjs templates execute wherever there is javascript

templates = JS{dust}

JavaScriptcompiles to...

javascript isevaluatedto render ui

Page 14: Clash of the Titans: Releasing the Kraken | NodeJS @paypal

4th step: make ui bits portable to legacy

JS templating can be run in client browser or server on the production stack

we can drag & drop the ui bits from prototyping stack to the production stack

rhinoscript enabled stack parity

java (rhinoscript)node.js

{dust}JS template

prototypestack

productionstack

{dust}JS template

client ORserver

either stack

Page 15: Clash of the Titans: Releasing the Kraken | NodeJS @paypal

before node &leanux

Page 16: Clash of the Titans: Releasing the Kraken | NodeJS @paypal

after node & leanux

Page 17: Clash of the Titans: Releasing the Kraken | NodeJS @paypal

5th step: bring node to productionproject kraken

enable all of the standard paypal services

but do it in a friendly npm waymonitoring, logging, security, content, locale resolution, analytics,authentication, dust rendering,experimentation, packaging, application framework, deployment,session management, service access, etc.

CLI MVC framework/scaffolding. hello world in 1 minute

Page 18: Clash of the Titans: Releasing the Kraken | NodeJS @paypal

java (rhinoscript)

productionstack

{dust}JS template

6th step: one stack to rule them all

node.js

{dust}JS template

prototypestack

Page 19: Clash of the Titans: Releasing the Kraken | NodeJS @paypal

6th step: one stack to rule them all

choose where you want to run the templates

kraken

prototype & production stack

clientserver

contains “webcore” for scaffolding and providing a lightweight framework for dev & production

Page 20: Clash of the Titans: Releasing the Kraken | NodeJS @paypal

npm.paypal.com

bower.paypal.com

enables building in standard components & styles in less than a

minuteprovides blessed set of modules first. can provide protection

from blacklist modules

modules for easy integration

Page 21: Clash of the Titans: Releasing the Kraken | NodeJS @paypal

github for CI/CD

Page 22: Clash of the Titans: Releasing the Kraken | NodeJS @paypal

start like walmart labsuse as an api server to proxy old services and then retire them

or start like us, trello and othersuse as a rapid prototyping stackprove it out in a sandbox and then scaledo it in parallel and test till scales

do it with talentensure best developers are on the initial work to set the standard

getting node into your tent

I am hiring!