SlideShare a Scribd company logo
Repainting the Plane…
at 30,000 Feet
Andrew Morton
Senior Engineer, Recurly
@drewish
Andy Montgomery
Head of Design, Recurly
@mntgmry
2
Background
3
Provide a significant visual overhaul.
Don’t disrupt customer workflows.
4
But… People Don’t Like Change
5
Limited Design Resources
6
The Elements of User Experience
Visual Design
Interface Design
Interaction Design
Information Architecture
7
Visual System and Style Guide
+
JSON API
9
Front-end team
started running
into “issues”
PROBLEMS
• Many edge cases to consider
• Duplicating a lot of Ruby logic in
JavaScript
• JS folks didn’t fully understand all
the Rails app’s functionality
• A *lot* of pages to move into an
Angular app
10
API team also
started running
into “issues”
PROBLEMS
• Wanted to build a production grade
API
• Needed to build 90+ API controllers
11
Changing Course
12
Simplifying Scope
Factors in
Decision
13
CHANGING COURSE
We wanted to:
• Stay with Rails
• Develop new UI in parallel
• Use the HTML components
• Keep webpack as our build system
14
Rails Engine
What’s a Rails
Engine?
15
RAILS ENGINE
“Rails::Engine allows you to wrap a
specific Rails application or subset of
functionality and share it with other
applications or within a larger
packaged application…”
Benefits
16
RAILS ENGINE
• Allowed a parallel set of views,
styles and JS — only added to the
view path when user toggles a
session variable
• Allowed use of webpack — assets
are statically compiled in the gem
• Decoupled the UI changes from the
API work
17
Drawbacks
18
RAILS ENGINE
• Created an implicit interface across
two projects
• Was hard to test in isolation —
thankfully our QA team likes
Selenium tests
Summary
19
RAILS ENGINE
• Worked well, but not a long term
solution
• Planning to deprecate the engine
and move contents to app
Next Steps
20
FUTURE WORK
• Improve site navigation and
structure
• More creative/intuitive interaction
design (minimize clicks)
• Focus more on React components
than AngularJS apps
21
Want to Help?
https://recurly.com/jobs
jobs@recurly.com

More Related Content

What's hot

Scaffolding in One Asp.Net
Scaffolding in One Asp.NetScaffolding in One Asp.Net
Scaffolding in One Asp.Net
Lohith Goudagere Nagaraj
 
Web development - Developing Web as A Team
Web development -  Developing Web as A TeamWeb development -  Developing Web as A Team
Web development - Developing Web as A Team
Muhammad Akbar Yasin
 
Krishi suchak
Krishi suchakKrishi suchak
Krishi suchak
Nischal0101
 
Headless CMS for Digital Agencies - Case Study by Andy Thompson
Headless CMS for Digital Agencies - Case Study by Andy ThompsonHeadless CMS for Digital Agencies - Case Study by Andy Thompson
Headless CMS for Digital Agencies - Case Study by Andy Thompson
Kentico Software
 
React js vs angularjs
React js vs angularjsReact js vs angularjs
React js vs angularjs
Metricoid Technology
 
Polymer
PolymerPolymer
Polymer
Josef Ježek
 
How to be a full stack developer
How to be a full stack developerHow to be a full stack developer
How to be a full stack developer
Adam Štipák
 
Web vitals
Web vitalsWeb vitals
Web vitals
Harish Karthick
 
Kendo UI Wrappers in ASP.NET Core
Kendo UI Wrappers in ASP.NET CoreKendo UI Wrappers in ASP.NET Core
Kendo UI Wrappers in ASP.NET Core
Lohith Goudagere Nagaraj
 
Steve Bailey — Core Web Vitals & Roadblocks to Success
Steve Bailey — Core Web Vitals & Roadblocks to SuccessSteve Bailey — Core Web Vitals & Roadblocks to Success
Steve Bailey — Core Web Vitals & Roadblocks to Success
Semrush
 
React vs Angular, who wins the competition?
React vs Angular, who wins the competition?React vs Angular, who wins the competition?
React vs Angular, who wins the competition?
Brocoders - Software Development Company
 
Interoperability of components built with different frameworks
Interoperability of components built with different frameworksInteroperability of components built with different frameworks
Interoperability of components built with different frameworks
Souvik Basu
 
Core Web Vitals - The Modern Web Experience
Core Web Vitals - The Modern Web ExperienceCore Web Vitals - The Modern Web Experience
Core Web Vitals - The Modern Web Experience
Cakra Danu Sedayu
 
Angular js Fundamentals
Angular js FundamentalsAngular js Fundamentals
Angular js Fundamentals
Renien Joseph
 
ReactJS or Angular
ReactJS or AngularReactJS or Angular
ReactJS or Angular
boyney123
 
Mike_Robertson_Resume (1)
Mike_Robertson_Resume (1)Mike_Robertson_Resume (1)
Mike_Robertson_Resume (1)
Michael Robertson
 
Angular overview
Angular overviewAngular overview
Angular overview
Thanvilahari
 
Angular js in your next web application
Angular js in your next web applicationAngular js in your next web application
Angular js in your next web application
Mobiloitte
 
angular-formly presentation
angular-formly presentationangular-formly presentation
angular-formly presentation
Annia Martinez
 
Demystifying Web Vitals
Demystifying Web VitalsDemystifying Web Vitals
Demystifying Web Vitals
Samar Panda
 

What's hot (20)

Scaffolding in One Asp.Net
Scaffolding in One Asp.NetScaffolding in One Asp.Net
Scaffolding in One Asp.Net
 
Web development - Developing Web as A Team
Web development -  Developing Web as A TeamWeb development -  Developing Web as A Team
Web development - Developing Web as A Team
 
Krishi suchak
Krishi suchakKrishi suchak
Krishi suchak
 
Headless CMS for Digital Agencies - Case Study by Andy Thompson
Headless CMS for Digital Agencies - Case Study by Andy ThompsonHeadless CMS for Digital Agencies - Case Study by Andy Thompson
Headless CMS for Digital Agencies - Case Study by Andy Thompson
 
React js vs angularjs
React js vs angularjsReact js vs angularjs
React js vs angularjs
 
Polymer
PolymerPolymer
Polymer
 
How to be a full stack developer
How to be a full stack developerHow to be a full stack developer
How to be a full stack developer
 
Web vitals
Web vitalsWeb vitals
Web vitals
 
Kendo UI Wrappers in ASP.NET Core
Kendo UI Wrappers in ASP.NET CoreKendo UI Wrappers in ASP.NET Core
Kendo UI Wrappers in ASP.NET Core
 
Steve Bailey — Core Web Vitals & Roadblocks to Success
Steve Bailey — Core Web Vitals & Roadblocks to SuccessSteve Bailey — Core Web Vitals & Roadblocks to Success
Steve Bailey — Core Web Vitals & Roadblocks to Success
 
React vs Angular, who wins the competition?
React vs Angular, who wins the competition?React vs Angular, who wins the competition?
React vs Angular, who wins the competition?
 
Interoperability of components built with different frameworks
Interoperability of components built with different frameworksInteroperability of components built with different frameworks
Interoperability of components built with different frameworks
 
Core Web Vitals - The Modern Web Experience
Core Web Vitals - The Modern Web ExperienceCore Web Vitals - The Modern Web Experience
Core Web Vitals - The Modern Web Experience
 
Angular js Fundamentals
Angular js FundamentalsAngular js Fundamentals
Angular js Fundamentals
 
ReactJS or Angular
ReactJS or AngularReactJS or Angular
ReactJS or Angular
 
Mike_Robertson_Resume (1)
Mike_Robertson_Resume (1)Mike_Robertson_Resume (1)
Mike_Robertson_Resume (1)
 
Angular overview
Angular overviewAngular overview
Angular overview
 
Angular js in your next web application
Angular js in your next web applicationAngular js in your next web application
Angular js in your next web application
 
angular-formly presentation
angular-formly presentationangular-formly presentation
angular-formly presentation
 
Demystifying Web Vitals
Demystifying Web VitalsDemystifying Web Vitals
Demystifying Web Vitals
 

Similar to Repainting the Plane... at 30,000 Feet

How to Successfully Implement Headless Drupal
How to Successfully Implement Headless DrupalHow to Successfully Implement Headless Drupal
How to Successfully Implement Headless Drupal
Acquia
 
Social Network
Social NetworkSocial Network
Social Network
SiliconPrime
 
Riding The N Train: How we dismantled Groupon's Ruby on Rails Monolith
Riding The N Train: How we dismantled Groupon's Ruby on Rails MonolithRiding The N Train: How we dismantled Groupon's Ruby on Rails Monolith
Riding The N Train: How we dismantled Groupon's Ruby on Rails Monolith
Sean McCullough
 
Eureko frameworks
Eureko frameworksEureko frameworks
Eureko frameworks
Görkem Sazara
 
Transitioning Groupon to Node.js - EmpireJS 2014
Transitioning Groupon to Node.js - EmpireJS 2014Transitioning Groupon to Node.js - EmpireJS 2014
Transitioning Groupon to Node.js - EmpireJS 2014
Sean McCullough
 
Mule ESB Intro
Mule ESB IntroMule ESB Intro
Mule ESB Intro
Noga Manela
 
The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...
Mark Roden
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...
Mark Leusink
 
Anjular js
Anjular jsAnjular js
Anjular js
Naga Dinesh
 
Single Page Applications in Drupal
Single Page Applications in DrupalSingle Page Applications in Drupal
Single Page Applications in Drupal
Chris Tankersley
 
FULL stack -> MEAN stack
FULL stack -> MEAN stackFULL stack -> MEAN stack
FULL stack -> MEAN stack
Ashok Raj
 
AngularJS in Production (CTO Forum)
AngularJS in Production (CTO Forum)AngularJS in Production (CTO Forum)
AngularJS in Production (CTO Forum)
Alex Ross
 
Ui technologies
Ui technologiesUi technologies
Ui technologies
Mallikarjuna G D
 
7 effective reasons why you should use angular js for mobile app development
7 effective reasons why you should use angular js for mobile app development7 effective reasons why you should use angular js for mobile app development
7 effective reasons why you should use angular js for mobile app development
Moon Technolabs Pvt. Ltd.
 
20 Tips for High Performance Responsive Design that the Pros Won’t Tell You
20 Tips for High Performance Responsive Design that the Pros Won’t Tell You20 Tips for High Performance Responsive Design that the Pros Won’t Tell You
20 Tips for High Performance Responsive Design that the Pros Won’t Tell You
Patrick Collins
 
AEM 6.0 Touch-optimized UI
AEM 6.0 Touch-optimized UIAEM 6.0 Touch-optimized UI
AEM 6.0 Touch-optimized UI
Gilles Knobloch
 
Developing a practical HTML5 magazine workflow
Developing a practical HTML5 magazine workflowDeveloping a practical HTML5 magazine workflow
Developing a practical HTML5 magazine workflow
Michael Kowalski
 
Angular JS, A dive to concepts
Angular JS, A dive to conceptsAngular JS, A dive to concepts
Angular JS, A dive to concepts
Abhishek Sur
 
apidays LIVE Helsinki - The quick growth forced change from legacy to decoupl...
apidays LIVE Helsinki - The quick growth forced change from legacy to decoupl...apidays LIVE Helsinki - The quick growth forced change from legacy to decoupl...
apidays LIVE Helsinki - The quick growth forced change from legacy to decoupl...
apidays
 
The Delight and Difficulties of Universal Java Script with React
The Delight and Difficulties of Universal Java Script with ReactThe Delight and Difficulties of Universal Java Script with React
The Delight and Difficulties of Universal Java Script with React
New Relic
 

Similar to Repainting the Plane... at 30,000 Feet (20)

How to Successfully Implement Headless Drupal
How to Successfully Implement Headless DrupalHow to Successfully Implement Headless Drupal
How to Successfully Implement Headless Drupal
 
Social Network
Social NetworkSocial Network
Social Network
 
Riding The N Train: How we dismantled Groupon's Ruby on Rails Monolith
Riding The N Train: How we dismantled Groupon's Ruby on Rails MonolithRiding The N Train: How we dismantled Groupon's Ruby on Rails Monolith
Riding The N Train: How we dismantled Groupon's Ruby on Rails Monolith
 
Eureko frameworks
Eureko frameworksEureko frameworks
Eureko frameworks
 
Transitioning Groupon to Node.js - EmpireJS 2014
Transitioning Groupon to Node.js - EmpireJS 2014Transitioning Groupon to Node.js - EmpireJS 2014
Transitioning Groupon to Node.js - EmpireJS 2014
 
Mule ESB Intro
Mule ESB IntroMule ESB Intro
Mule ESB Intro
 
The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...
 
Anjular js
Anjular jsAnjular js
Anjular js
 
Single Page Applications in Drupal
Single Page Applications in DrupalSingle Page Applications in Drupal
Single Page Applications in Drupal
 
FULL stack -> MEAN stack
FULL stack -> MEAN stackFULL stack -> MEAN stack
FULL stack -> MEAN stack
 
AngularJS in Production (CTO Forum)
AngularJS in Production (CTO Forum)AngularJS in Production (CTO Forum)
AngularJS in Production (CTO Forum)
 
Ui technologies
Ui technologiesUi technologies
Ui technologies
 
7 effective reasons why you should use angular js for mobile app development
7 effective reasons why you should use angular js for mobile app development7 effective reasons why you should use angular js for mobile app development
7 effective reasons why you should use angular js for mobile app development
 
20 Tips for High Performance Responsive Design that the Pros Won’t Tell You
20 Tips for High Performance Responsive Design that the Pros Won’t Tell You20 Tips for High Performance Responsive Design that the Pros Won’t Tell You
20 Tips for High Performance Responsive Design that the Pros Won’t Tell You
 
AEM 6.0 Touch-optimized UI
AEM 6.0 Touch-optimized UIAEM 6.0 Touch-optimized UI
AEM 6.0 Touch-optimized UI
 
Developing a practical HTML5 magazine workflow
Developing a practical HTML5 magazine workflowDeveloping a practical HTML5 magazine workflow
Developing a practical HTML5 magazine workflow
 
Angular JS, A dive to concepts
Angular JS, A dive to conceptsAngular JS, A dive to concepts
Angular JS, A dive to concepts
 
apidays LIVE Helsinki - The quick growth forced change from legacy to decoupl...
apidays LIVE Helsinki - The quick growth forced change from legacy to decoupl...apidays LIVE Helsinki - The quick growth forced change from legacy to decoupl...
apidays LIVE Helsinki - The quick growth forced change from legacy to decoupl...
 
The Delight and Difficulties of Universal Java Script with React
The Delight and Difficulties of Universal Java Script with ReactThe Delight and Difficulties of Universal Java Script with React
The Delight and Difficulties of Universal Java Script with React
 

More from Recurly

Build vs. Buy: The business-critical checklist
Build vs. Buy: The business-critical checklistBuild vs. Buy: The business-critical checklist
Build vs. Buy: The business-critical checklist
Recurly
 
CUTTING FAILED PAYMENTS AND REDUCING CHURN
CUTTING FAILED PAYMENTS AND REDUCING CHURNCUTTING FAILED PAYMENTS AND REDUCING CHURN
CUTTING FAILED PAYMENTS AND REDUCING CHURN
Recurly
 
HOW MUCH YOUR RELATIVE CHURN RATE MATTERS
HOW MUCH YOUR RELATIVE CHURN RATE MATTERSHOW MUCH YOUR RELATIVE CHURN RATE MATTERS
HOW MUCH YOUR RELATIVE CHURN RATE MATTERS
Recurly
 
Start Calculating Customer Churn Correctly
Start Calculating Customer Churn CorrectlyStart Calculating Customer Churn Correctly
Start Calculating Customer Churn Correctly
Recurly
 
6 Reasons to Outsource Your Recurring Billing Solution
6 Reasons to Outsource Your Recurring Billing Solution6 Reasons to Outsource Your Recurring Billing Solution
6 Reasons to Outsource Your Recurring Billing Solution
Recurly
 
How To Address Failed Credit Card Payments For Business Owners
How To Address Failed Credit Card Payments For Business OwnersHow To Address Failed Credit Card Payments For Business Owners
How To Address Failed Credit Card Payments For Business Owners
Recurly
 

More from Recurly (6)

Build vs. Buy: The business-critical checklist
Build vs. Buy: The business-critical checklistBuild vs. Buy: The business-critical checklist
Build vs. Buy: The business-critical checklist
 
CUTTING FAILED PAYMENTS AND REDUCING CHURN
CUTTING FAILED PAYMENTS AND REDUCING CHURNCUTTING FAILED PAYMENTS AND REDUCING CHURN
CUTTING FAILED PAYMENTS AND REDUCING CHURN
 
HOW MUCH YOUR RELATIVE CHURN RATE MATTERS
HOW MUCH YOUR RELATIVE CHURN RATE MATTERSHOW MUCH YOUR RELATIVE CHURN RATE MATTERS
HOW MUCH YOUR RELATIVE CHURN RATE MATTERS
 
Start Calculating Customer Churn Correctly
Start Calculating Customer Churn CorrectlyStart Calculating Customer Churn Correctly
Start Calculating Customer Churn Correctly
 
6 Reasons to Outsource Your Recurring Billing Solution
6 Reasons to Outsource Your Recurring Billing Solution6 Reasons to Outsource Your Recurring Billing Solution
6 Reasons to Outsource Your Recurring Billing Solution
 
How To Address Failed Credit Card Payments For Business Owners
How To Address Failed Credit Card Payments For Business OwnersHow To Address Failed Credit Card Payments For Business Owners
How To Address Failed Credit Card Payments For Business Owners
 

Recently uploaded

International Upcycling Research Network advisory board meeting 4
International Upcycling Research Network advisory board meeting 4International Upcycling Research Network advisory board meeting 4
International Upcycling Research Network advisory board meeting 4
Kyungeun Sung
 
按照学校原版(UIUC文凭证书)伊利诺伊大学|厄巴纳-香槟分校毕业证快速办理
按照学校原版(UIUC文凭证书)伊利诺伊大学|厄巴纳-香槟分校毕业证快速办理按照学校原版(UIUC文凭证书)伊利诺伊大学|厄巴纳-香槟分校毕业证快速办理
按照学校原版(UIUC文凭证书)伊利诺伊大学|厄巴纳-香槟分校毕业证快速办理
kuapy
 
定制美国西雅图城市大学毕业证学历证书原版一模一样
定制美国西雅图城市大学毕业证学历证书原版一模一样定制美国西雅图城市大学毕业证学历证书原版一模一样
定制美国西雅图城市大学毕业证学历证书原版一模一样
qo1as76n
 
AHMED TALAAT ARCHITECTURE PORTFOLIO .pdf
AHMED TALAAT ARCHITECTURE PORTFOLIO .pdfAHMED TALAAT ARCHITECTURE PORTFOLIO .pdf
AHMED TALAAT ARCHITECTURE PORTFOLIO .pdf
talaatahm
 
一比一原版(Vancouver毕业证书)温哥华岛大学毕业证如何办理
一比一原版(Vancouver毕业证书)温哥华岛大学毕业证如何办理一比一原版(Vancouver毕业证书)温哥华岛大学毕业证如何办理
一比一原版(Vancouver毕业证书)温哥华岛大学毕业证如何办理
ijk38lw
 
NHR Engineers Portfolio 2023 2024 NISHANT RATHI
NHR Engineers Portfolio 2023 2024 NISHANT RATHINHR Engineers Portfolio 2023 2024 NISHANT RATHI
NHR Engineers Portfolio 2023 2024 NISHANT RATHI
NishantRathi18
 
Getting Data Ready for Culture Hack by Neontribe
Getting Data Ready for Culture Hack by NeontribeGetting Data Ready for Culture Hack by Neontribe
Getting Data Ready for Culture Hack by Neontribe
Harry Harrold
 
一比一原版阿肯色大学毕业证(UCSF毕业证书)如何办理
一比一原版阿肯色大学毕业证(UCSF毕业证书)如何办理一比一原版阿肯色大学毕业证(UCSF毕业证书)如何办理
一比一原版阿肯色大学毕业证(UCSF毕业证书)如何办理
bo44ban1
 
一比一原版亚利桑那大学毕业证(UA毕业证书)如何办理
一比一原版亚利桑那大学毕业证(UA毕业证书)如何办理一比一原版亚利桑那大学毕业证(UA毕业证书)如何办理
一比一原版亚利桑那大学毕业证(UA毕业证书)如何办理
21uul8se
 
Heuristics Evaluation - How to Guide.pdf
Heuristics Evaluation - How to Guide.pdfHeuristics Evaluation - How to Guide.pdf
Heuristics Evaluation - How to Guide.pdf
Jaime Brown
 
Graphic Design Tools and Software .pptx
Graphic Design Tools and Software   .pptxGraphic Design Tools and Software   .pptx
Graphic Design Tools and Software .pptx
Virtual Real Design
 
CocaCola_Brand_equity_package_2012__.pdf
CocaCola_Brand_equity_package_2012__.pdfCocaCola_Brand_equity_package_2012__.pdf
CocaCola_Brand_equity_package_2012__.pdf
PabloMartelLpez
 
Introduction to User experience design for beginner
Introduction to User experience design for beginnerIntroduction to User experience design for beginner
Introduction to User experience design for beginner
ellemjani
 
哪里办理美国中央华盛顿大学毕业证双学位证书原版一模一样
哪里办理美国中央华盛顿大学毕业证双学位证书原版一模一样哪里办理美国中央华盛顿大学毕业证双学位证书原版一模一样
哪里办理美国中央华盛顿大学毕业证双学位证书原版一模一样
qo1as76n
 
Divertidamente SLIDE.pptxufururururuhrurid8dj
Divertidamente SLIDE.pptxufururururuhrurid8djDivertidamente SLIDE.pptxufururururuhrurid8dj
Divertidamente SLIDE.pptxufururururuhrurid8dj
lunaemel03
 
一比一原版美国哥伦比亚大学毕业证Columbia成绩单一模一样
一比一原版美国哥伦比亚大学毕业证Columbia成绩单一模一样一比一原版美国哥伦比亚大学毕业证Columbia成绩单一模一样
一比一原版美国哥伦比亚大学毕业证Columbia成绩单一模一样
881evgn0
 
Discovering the Best Indian Architects A Spotlight on Design Forum Internatio...
Discovering the Best Indian Architects A Spotlight on Design Forum Internatio...Discovering the Best Indian Architects A Spotlight on Design Forum Internatio...
Discovering the Best Indian Architects A Spotlight on Design Forum Internatio...
Designforuminternational
 
一比一原版马来西亚世纪大学毕业证成绩单一模一样
一比一原版马来西亚世纪大学毕业证成绩单一模一样一比一原版马来西亚世纪大学毕业证成绩单一模一样
一比一原版马来西亚世纪大学毕业证成绩单一模一样
k4krdgxx
 
ARENA - Young adults in the workplace (Knight Moves).pdf
ARENA - Young adults in the workplace (Knight Moves).pdfARENA - Young adults in the workplace (Knight Moves).pdf
ARENA - Young adults in the workplace (Knight Moves).pdf
Knight Moves
 
LGBTQIA Pride Month presentation Template
LGBTQIA Pride Month presentation TemplateLGBTQIA Pride Month presentation Template
LGBTQIA Pride Month presentation Template
DakshGudwani
 

Recently uploaded (20)

International Upcycling Research Network advisory board meeting 4
International Upcycling Research Network advisory board meeting 4International Upcycling Research Network advisory board meeting 4
International Upcycling Research Network advisory board meeting 4
 
按照学校原版(UIUC文凭证书)伊利诺伊大学|厄巴纳-香槟分校毕业证快速办理
按照学校原版(UIUC文凭证书)伊利诺伊大学|厄巴纳-香槟分校毕业证快速办理按照学校原版(UIUC文凭证书)伊利诺伊大学|厄巴纳-香槟分校毕业证快速办理
按照学校原版(UIUC文凭证书)伊利诺伊大学|厄巴纳-香槟分校毕业证快速办理
 
定制美国西雅图城市大学毕业证学历证书原版一模一样
定制美国西雅图城市大学毕业证学历证书原版一模一样定制美国西雅图城市大学毕业证学历证书原版一模一样
定制美国西雅图城市大学毕业证学历证书原版一模一样
 
AHMED TALAAT ARCHITECTURE PORTFOLIO .pdf
AHMED TALAAT ARCHITECTURE PORTFOLIO .pdfAHMED TALAAT ARCHITECTURE PORTFOLIO .pdf
AHMED TALAAT ARCHITECTURE PORTFOLIO .pdf
 
一比一原版(Vancouver毕业证书)温哥华岛大学毕业证如何办理
一比一原版(Vancouver毕业证书)温哥华岛大学毕业证如何办理一比一原版(Vancouver毕业证书)温哥华岛大学毕业证如何办理
一比一原版(Vancouver毕业证书)温哥华岛大学毕业证如何办理
 
NHR Engineers Portfolio 2023 2024 NISHANT RATHI
NHR Engineers Portfolio 2023 2024 NISHANT RATHINHR Engineers Portfolio 2023 2024 NISHANT RATHI
NHR Engineers Portfolio 2023 2024 NISHANT RATHI
 
Getting Data Ready for Culture Hack by Neontribe
Getting Data Ready for Culture Hack by NeontribeGetting Data Ready for Culture Hack by Neontribe
Getting Data Ready for Culture Hack by Neontribe
 
一比一原版阿肯色大学毕业证(UCSF毕业证书)如何办理
一比一原版阿肯色大学毕业证(UCSF毕业证书)如何办理一比一原版阿肯色大学毕业证(UCSF毕业证书)如何办理
一比一原版阿肯色大学毕业证(UCSF毕业证书)如何办理
 
一比一原版亚利桑那大学毕业证(UA毕业证书)如何办理
一比一原版亚利桑那大学毕业证(UA毕业证书)如何办理一比一原版亚利桑那大学毕业证(UA毕业证书)如何办理
一比一原版亚利桑那大学毕业证(UA毕业证书)如何办理
 
Heuristics Evaluation - How to Guide.pdf
Heuristics Evaluation - How to Guide.pdfHeuristics Evaluation - How to Guide.pdf
Heuristics Evaluation - How to Guide.pdf
 
Graphic Design Tools and Software .pptx
Graphic Design Tools and Software   .pptxGraphic Design Tools and Software   .pptx
Graphic Design Tools and Software .pptx
 
CocaCola_Brand_equity_package_2012__.pdf
CocaCola_Brand_equity_package_2012__.pdfCocaCola_Brand_equity_package_2012__.pdf
CocaCola_Brand_equity_package_2012__.pdf
 
Introduction to User experience design for beginner
Introduction to User experience design for beginnerIntroduction to User experience design for beginner
Introduction to User experience design for beginner
 
哪里办理美国中央华盛顿大学毕业证双学位证书原版一模一样
哪里办理美国中央华盛顿大学毕业证双学位证书原版一模一样哪里办理美国中央华盛顿大学毕业证双学位证书原版一模一样
哪里办理美国中央华盛顿大学毕业证双学位证书原版一模一样
 
Divertidamente SLIDE.pptxufururururuhrurid8dj
Divertidamente SLIDE.pptxufururururuhrurid8djDivertidamente SLIDE.pptxufururururuhrurid8dj
Divertidamente SLIDE.pptxufururururuhrurid8dj
 
一比一原版美国哥伦比亚大学毕业证Columbia成绩单一模一样
一比一原版美国哥伦比亚大学毕业证Columbia成绩单一模一样一比一原版美国哥伦比亚大学毕业证Columbia成绩单一模一样
一比一原版美国哥伦比亚大学毕业证Columbia成绩单一模一样
 
Discovering the Best Indian Architects A Spotlight on Design Forum Internatio...
Discovering the Best Indian Architects A Spotlight on Design Forum Internatio...Discovering the Best Indian Architects A Spotlight on Design Forum Internatio...
Discovering the Best Indian Architects A Spotlight on Design Forum Internatio...
 
一比一原版马来西亚世纪大学毕业证成绩单一模一样
一比一原版马来西亚世纪大学毕业证成绩单一模一样一比一原版马来西亚世纪大学毕业证成绩单一模一样
一比一原版马来西亚世纪大学毕业证成绩单一模一样
 
ARENA - Young adults in the workplace (Knight Moves).pdf
ARENA - Young adults in the workplace (Knight Moves).pdfARENA - Young adults in the workplace (Knight Moves).pdf
ARENA - Young adults in the workplace (Knight Moves).pdf
 
LGBTQIA Pride Month presentation Template
LGBTQIA Pride Month presentation TemplateLGBTQIA Pride Month presentation Template
LGBTQIA Pride Month presentation Template
 

Repainting the Plane... at 30,000 Feet

Editor's Notes

  1. Recurly is a 5 year old subscription billing company. We use rails heavily (as well as Node and Java). We have a Rails app that our merchants use to manage their customers and subscriptions This is the story of how we updated the app design without “landing the plane”
  2. How this all started? design team’s frustration with the existing, outdated UI limitations we felt in making improvements for the customer experience creative interaction solutions (We were living an iTunes circa 2002 world.) different eras of design and styling across the app. Different approaches a full redesign of the product from the ground up page by page updates to particularly bad pages, etc. But as we thought about it more, we settled on a core principle for the project.
  3. The design update should provide a significant visual overhaul without disrupting our merchant’s workflows. (Reflect back on how this principle applies to the various approaches and their feasibility. )
  4. But, people still don’t like change! However we also knew that change was necessary in order to achieve the larger improvements our customers wanted and the design quality the average consumer (and business person) has become accustomed to. For that reason we determined for this redesign that we would strive to make as few changes to the functionality and existing workflows as possible. Changing one thing on your customers is hard enough but we knew combining a new look with new workflows would be significantly disruptive.
  5. design resourcing standpoint team would be small and the timeline compressed for completing this project. Making changes to both the look and the functionality would require more time for research and testing, if not a larger team.
  6. Let’s talk about this in terms of the Jesse James Garrett’s “Elements of User Experience” Diagram — However, long-term, we knew that getting this new visual UI system in place would enable us to make larger IA and interaction design changes in the future. Incremental approach enable us to update the product visually as well as create a more sustainable codebase. As customers adjust to the new look, it paves the way for larger functional changes in the future. Taking a systematic approach today would pay dividends in the future.
  7. This framework (visual refresh without changes to the layout or workflows) helped to speed the design process immensely. didn’t have to make decisions about where elements would go on the page or how they would interact with each other. freed us up to focus primarily on aesthetics and usability, creating a visual system and style guide that would work for all the existing views in the product. Very systematic approach cataloging all of the various design elements in the current app and compiling them into consistent components and design patterns. The goal was to take a very disorganized collection of UI elements and turn it into a predictable design system with HTML components. Eventually this would allow developers to follow patterns rather than relying on one off designs for each page.
  8. At the same time, the engineering team determined this would be a good time to move the UI from a Rails to a single-page app using the Angular.js framework. It would be supported by a new JSON API. The engineering team began the process of stubbing out API endpoints and generating the front-end code to support a new design. Excited to have it driving API work, would need a full API to support it and at the end you’d end up with a full function API… If your spidey sense is telling this sounds like trouble…
  9. All of our functionality isn’t always apparent. Merchants can enable things like support for multiple currencies, VAT and sales tax. That expands the number of permutations that need designs, programming and testing. Duplicated a lot of helpers and logic that had crept into the views The front-end team was new to Recurly and didn’t have a ton of experience with app or fully understand how much there was to convert. One described it as an iceberg where much of the functionality is hidden from view.
  10. Everyone was excited about building out a new “v3” API and there were lots of *little* things to fix - improve the naming on some entities and attributes - improve error handling There were 90 something controllers, that just a huge amount of functionality to build out and write tests for. Side note: We wanted the API controllers separate from the UI controllers because we’d been burned back on v1. It was hard to improve the UI and preserve API compatibility, so the UI functionality was moved into its own controller.
  11. As the person responsible for customer’s good experience with our product, I started to get really concerned. The single-page app, while allowing for some nice interactions (infinitely scrolling tables, etc.) was also introducing a variety of new variables: a traditional web form approach is two different screens, View and Edit. single-page app, it was actually easier to make it a single screen, with two different states, Viewing and Editing. slick interactions, it also meant we needed to spend a great deal more time thinking through how this would change the UI and what those interactions would look like in each state. Had we been merely reskinning the old pages, all the logic and screens would be predictable and only the visual layer updated. engineering approach, with the new API, effectively meant that all of the existing app logic had to be recreated from scratch. All of the edge-cases and various scenarios we’d solved for over the years were being rediscovered all over again.
  12. Based on these concerns we pulled the team together to figure out how we could get the project back on track to deliver on the initial promise. discussions and some research, we decided to radically simplify the scope. We already had a design system created and built out HTML components and the style guide that we really wanted to continue to us.
  13. Parallel allowed us to jump back and forth between new and old, if there was a bug, customers would be able to work around it Had a build a UI library of components for the Angular app. Would be great if we could avoid moving over to Rails asset pipeline and continue using webpack for CSS preprocessing and JS minification/bundling
  14. Here’s where I admit that I’m not a rails expert. Rails engines are a relatively old concept in the community but it was totally new to me. There were a few blog posts that were very helpful in realizing the potential of the rails engine: http://www.shopify.com/technology/15646068-rebuilding-the-shopify-admin-improving-developer-productivity-by-deleting-28-000-lines-of-javascript http://tech.taskrabbit.com/blog/2014/02/11/rails-4-engines/
  15. We don’t have time to go into the details of rails engines, but conceptually you can think of it as a rails app that can be embedded in another app. I really just wanted to make people aware of them because the give you a pretty powerful tool for organizing and sharing code between rails apps. While doing some research for this talk I discovered our pivotal labs hosts did several great posts on how they used rails engines: http://pivotallabs.com/migrating-from-a-single-rails-app-to-a-suite-of-rails-engines/ We used the engine in a very simple way to just package up the new views, styling, and JS code.
  16. Allowed us to create new views that could live alongside existing views minimizing disruption Also included logic to gate access to the new UI, first to our employees, then beta testers, then all merchants We’re still using webpack for bundling and minification. JS and CSS are statically compiled in the engine’s asset folder
  17. Adding new features requires changes to both projects. There’s a risk that someone making changes to the main app won’t realize that the engine is impacted.
  18. Using the engine was a success for the migration but it’s not a long term solution.
  19. Andy Improve site navigation and structure (reference Elements of UX) More creative/intuitive interaction design (minimize clicks) Andrew Avoid big bangs. React components let us consume the same API but we can do specific pages in the app where we get the most bang for the buck
  20. We’re starting up an office in Boulder and looking for senior rails devs. There’s a few of us here in the green Recurly shirts so if you’re interested come up and talk to us after this.