Bill scott sr. director, user interface engineering, paypal. O’Reilly Fluent webcast. May 15, 2013 bill scott sr. director,

Slides:



Advertisements
Similar presentations
Castafiore platform Consists or intend to consist of 1.Advanced Web framework 2.Advanced Graph database 3.Designer studio (something like visual basic)
Advertisements

Syncsort Data Integration Update Summary Helping Data Intensive Organizations Across the Big Data Continuum Hadoop – The Operating System.
A Blackboard Building Block™ Crash Course for Web Developers
John Culviner johnculviner.com DEMO CODE:
Alpha Anywhere Product Roadmap and Overview
DiscoverDefineDesignDevelopDeliver PROCESS TM. Intelligaia Technology confidential & proprietary Discover Overview: Gather information, brainstorm, competitive.
SCRUM John Drew. SCRUM - overview Scrum is a project management discipline that has evolved since the early 1990s to deliver software that meets business.
Atlassian Africa South Africa 2015 Jonathan Singh.
LinkedIn Mobile How we do we do it?. Build Design Code Testing Deploy Platform iOS Android Browser Other.
DISTRICT OF NORTH VANCOUVER GEOweb PROPERTY VIEWER DESIGNING FOR SIMPLICITY GEOweb PROPERTY VIEWER DESIGNING FOR SIMPLICITY.
Migrating a Monolithic App to Microservices on Cloud Foundry Brian K. Martin, Bluemix Tony Erwin, Bluemix UI
Build /16/2017 © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION.
WHAT IS AJAX? Zack Sheppard [zts2101] WHIM April 19, 2011.
1 CS6320 – Why Servlets? L. Grewe 2 What is a Servlet? Servlets are Java programs that can be run dynamically from a Web Server Servlets are Java programs.
Comp2513 Java Servlet Basics Daniel L. Silver, Ph.D.
COMP 350: Object Oriented Analysis and Design Lecture 2
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
What is Web Design The term “web design” has come to encompass a number of disciplines, including: Visual (graphic) design User interface and experience.
Enabling lean with tech lessons learned applying lean at paypal bill scott sr. director, user interface engineering, paypal Lean Startup.
Development of mobile applications using PhoneGap and HTML 5
Creating a SharePoint App with Microsoft Access Services
Quick Tour of the Web Technologies: The BIG picture LECTURE A bird’s eye view of the different web technologies that we shall explore and study.
Jason Garoutte Siteforce: Build and Run Amazing Websites in the Cloud.
User Group 2015 Version 5 Features & Infrastructure Enhancements.
Java Server Pages (JSP) Presented by: Ananth Prasad & Alex Ivanov May 10, 2001.
Sitefinity CMS Technical Overview & Developer’s Perspective
Ori Calvo, 2010 “If people want to have maximum reach across *all* devices then HTML will provide the broadest reach” Scott Guthrie,
Engineering Fellow, Intuit
The powerful capabilities of JBoss Middleware as cloud based services on OpenShift. Build applications. Integrate with other systems Orchestrate using.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
TEMPLE ANALYTICS MERCK CHALLENGE By Team Jeffrey Diana.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Dr. Tom WayCSC Software Processes CSC 4700 Software Engineering.
Todd Snyder Development Team Lead Infragistics Experience Design Group.
Introducing NativeScript [Pavel Kolev Software Telerik: a Progress company]
JSF Introduction Copyright © Liferay, Inc. All Rights Reserved. No material may be reproduced electronically or in print without written permission.
Toward the Next Generation of Ingres Administration Tools UKIUA 2010 June 8, 2010.
TechEd /24/2017 2:42 AM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
New Selectors Extension Module Webinar March 11th, 2010.
Team Foundation Server 2012 Maximiliano Déboli Director de Desarrollo Microsoft Azure MVP
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
Esri UC 2014 | Demo Theater | Using ArcGIS Online App Logins in Node.js James Tedrick.
CentralCampus Group: May13-26 – William Van Walbeek & Paul Wilson Client: Google, Muthu Muthusrinivasan Advisor: Manimaran Govindarasu Abstract Introduction.
Java Servlets and Java Server Pages
Intended for Knowledge Sharing only Optimizing Product Decisions with Insights THE PRODUCT MANAGEMENT & INNOVATION EVENT 2016 Jan 2016.
Introduction to ASP.NET development. Background ASP released in 1996 ASP supported for a minimum 10 years from Windows 8 release ASP.Net 1.0 released.
Introduction to Node.js® Jitendra Kumar Patel Saturday, January 31, 2015.
1 Cutting Edge FE technologies for complex product August 6, 2015.
Profound.js: The future of open source development on IBM i
Lean With MEAN.
AuraPortal Cloud Helps Empower Organizations to Organize and Control Their Business Processes via Applications on the Microsoft Azure Cloud Platform MICROSOFT.
Branding Without MasterPages, the Future of UX in SharePoint Online
The CareWeb Framework Douglas K. Martin, MD
BMC Integration Service Overview and Architecture
Angular 4 + TypeScript Getting Started
Web Software Model CS 4640 Programming Languages for Web Applications
Haritha Dasari Josue Balandrano Coronel -
CS 577b: Software Engineering II
User Interface / User Experience Demo
A lot of Software Development is about learning
MVC in ASP.NET Core: The new kid on the block
Design and Maintenance of Web Applications in J2EE
MEAN stack L. Grewe.
Introduction to SharePoint Framework
INTRODUCTION TO By Stepan Vardanyan.
ASP.NET Imran Rashid CTO at ManiWeber Technologies.
Angular.
Presentation transcript:

bill scott sr. director, user interface engineering, paypal. O’Reilly Fluent webcast. May 15, 2013 bill scott sr. director, user interface engineering, paypal. O’Reilly Fluent webcast. May 15, 2013 kicking up the dust with nodejs refactoring paypal’s tech stack to enable lean ux

at Netflix 90% or more of the “ui bits” were thrown away every year. doesn’t take too many tests to result in lots of throw away code. followed buid/test/learn

the epiphany design for volatility

paypal vs netflix

paypal circa 2011 roll your own. disconnected delivery experience. culture of long shelf life. inward focus. risk averse.

tangled up technology big problem. technology and processes not geared to build/test/learn.

new jan 2012 fleshed out ui layer that could support rapid experimentation march 2012 david Marcus becomes president of PayPal april 2012 formed lean ux team to reinvent checkout experience jan 2012 fleshed out ui layer that could support rapid experimentation march 2012 david Marcus becomes president of PayPal april 2012 formed lean ux team to reinvent checkout experience

in the midst of transformation

a tale of two stacks (c++ & java) two non-standard stacks new stack tied to Java “one word” change could take 6 weeks to fix on c++ stack two non-standard stacks new stack tied to Java “one word” change could take 6 weeks to fix on c++ stack c++java xmljsp proprietary ui old new’ish long release cycles

decision was to move to java migration was already in place to leave the c++/xml stack behind some odd choices preceded this: write everything in java (html, css & js!!) migration was already in place to leave the c++/xml stack behind some odd choices preceded this: write everything in java (html, css & js!!) c++java xmljsp proprietary ui X old new’ish

but we wanted to support lean ux whiteboard to code code to usability product/design team user interface engineers usability/customers enabling a living spec engineering stack requirements treat prototype & production the same allow rapid sketch to code life cycle allow quick changes during usability studies (RITE) support being the “living spec” engineering stack requirements treat prototype & production the same allow rapid sketch to code life cycle allow quick changes during usability studies (RITE) support being the “living spec”

lean ux designing products for build/measure/learn (lean startup) requires 3 rules to be followed at all times get to & maintain a shared understanding form deep collaboration across disciplines keep continuous customer feedback flowing designing products for build/measure/learn (lean startup) requires 3 rules to be followed at all times get to & maintain a shared understanding form deep collaboration across disciplines keep continuous customer feedback flowing

free to iterate and drive agile user interface engineering - agile scrum team user interface engineering - agile scrum team lean ux - lean team track lean ux - lean team track engineering - agile scrum team engineering - agile scrum team sprint 0 usabilityusabilityusabilityusabilityusability releasereleasereleaserelease { agile FOCUS ON LEARNING FOCUS ON DELIVERING (& LEARNING)

lean engineering engineering for learning

old stack not designed for learning this new stack was not conducive to prototyping followed an “enterprise application” model. ui gets built into the “app” ajax/components all done server-side (subclass java controller) this new stack was not conducive to prototyping followed an “enterprise application” model. ui gets built into the “app” ajax/components all done server-side (subclass java controller) java jsp proprietary ui prototyping was hard “ui bits” could only live here

step 1 set the ui bits free

separate the ui bits code = JS (backbone) templates = JS {dust} style = CSS (less)images re-engineered the user interface stack so that the only artifacts are: javascript css images re-engineered the user interface stack so that the only artifacts are: javascript css images ditched the server-side mentality to creating UIs no more server-side only templates no more server-side components no more server-side managing the ui ditched the server-side mentality to creating UIs no more server-side only templates no more server-side components no more server-side managing the ui

use javascript templating templates get converted to javascript Hello {name} we use dust.js templates get converted to javascript Hello {name} we use dust.js code = JS (backbone) templates = JS {dust} style = CSS (less)images JavaScript compiles to... javascript executed to generate ui

ui bits now just natural web artifacts server-side language independent server/client agnostic CDN ready cacheable rapid to create server-side language independent server/client agnostic CDN ready cacheable rapid to create code = JS (backbone) templates = JS {dust} style = CSS (less)images

portable in all directions 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 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 java (rhinoscript ) node.js {dust} JS template prototypestack productionstack {dust} client OR server either stack

started using nodejs for proto stack whiteboard to code code to usability product/design team user interface engineers usability/customers enabled rapid development (coupled with dustjs) node.js (set up as prototype stack) backbone{dust}lessimages

free to turn sketch to code forcing function. brought about a close collaboration between engineering and design created a bridge for shared understanding required a lot of confidence and transparency forcing function. brought about a close collaboration between engineering and design created a bridge for shared understanding required a lot of confidence and transparency

free to test frequently with users

step 2 embrace open source

use open source religiously

work in open source model internal github revolutionized our internal development rapidly replaced centralized platform teams innovation democratized every developer encouraged to experiment and generate repos to share as well as to fork/pull request internal github revolutionized our internal development rapidly replaced centralized platform teams innovation democratized every developer encouraged to experiment and generate repos to share as well as to fork/pull request

give back to open source we have a string of projects that will be open sourced node bootstrap (similar to yeoman) contributions to bootstrap (for accessibility) and more... we have a string of projects that will be open sourced node bootstrap (similar to yeoman) contributions to bootstrap (for accessibility) and more...

step 3 release the kraken

project kraken ready nodejs for production enable all of standard paypal services but do it in a friendly npm way monitoring, logging, security, content, local resolution, analytics, authentication, dust rendering, experimentation, packaging, application framework, deployment, session management, service access, etc. mvc framework/scaffolding. hello world in 1 minute. enable all of standard paypal services but do it in a friendly npm way monitoring, logging, security, content, local resolution, analytics, authentication, dust rendering, experimentation, packaging, application framework, deployment, session management, service access, etc. mvc framework/scaffolding. hello world in 1 minute.

one stack to rule them all single stack creates seamless movement between lean ux and agile blended team app is the ui single stack creates seamless movement between lean ux and agile blended team app is the ui node.js {dust} JS template prototype & production stack client server

introducing nodejs into your org get the camel’s nose under the tent - start as an API proxy (shim) to really old services - use as a rapid prototyping stack move into the tent - find a good proof of concept API or application to begin to scale - do it in parallel and test till scales do it with talent - ensure best developers are on the initial work to set the standard get the camel’s nose under the tent - start as an API proxy (shim) to really old services - use as a rapid prototyping stack move into the tent - find a good proof of concept API or application to begin to scale - do it in parallel and test till scales do it with talent - ensure best developers are on the initial work to set the standard

a few other key items github democratizes coding & decentralizes teams bower provides a clean way to componentize the ui requirejs makes packaging simple and enforces modules running internal npm service drives modularization having a CLI for creating/extending apps is empowering less cleans up css code backbone provides standard client event modeling github democratizes coding & decentralizes teams bower provides a clean way to componentize the ui requirejs makes packaging simple and enforces modules running internal npm service drives modularization having a CLI for creating/extending apps is empowering less cleans up css code backbone provides standard client event modeling

set the ui free embrace open source release the kraken the steps we took

follow me on