21
Repainting the Plane… at 30,000 Feet Andrew Morton Senior Engineer, Recurly @drewish Andy Montgomery Head of Design, Recurly @mntgmry

Repainting the Plane... at 30,000 Feet

  • Upload
    recurly

  • View
    69

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Repainting the Plane... at 30,000 Feet

Repainting the Plane…at 30,000 Feet

Andrew MortonSenior Engineer, Recurly@drewish

Andy MontgomeryHead of Design, Recurly@mntgmry

Page 2: Repainting the Plane... at 30,000 Feet

Background

Page 3: Repainting the Plane... at 30,000 Feet

Provide a significant visual overhaul.Don’t disrupt customer workflows.

Page 4: Repainting the Plane... at 30,000 Feet

But… People Don’t Like Change

Page 5: Repainting the Plane... at 30,000 Feet

Limited Design Resources

Page 6: Repainting the Plane... at 30,000 Feet

The Elements of User Experience

Visual Design Interface Design

Interaction DesignInformation Architecture

Page 7: Repainting the Plane... at 30,000 Feet

Visual System and Style Guide

Page 8: Repainting the Plane... at 30,000 Feet

+JSON API

Page 9: Repainting the Plane... at 30,000 Feet

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

Page 10: Repainting the Plane... at 30,000 Feet

API team also started running into “issues”

PROBLEMS• Wanted to build a production

grade API

• Needed to build 90+ API controllers

Page 11: Repainting the Plane... at 30,000 Feet

Changing Course

Page 12: Repainting the Plane... at 30,000 Feet

Simplifying Scope

Page 13: Repainting the Plane... at 30,000 Feet

Factors in Decision

CHANGING COURSE

We wanted to:

• Stay with Rails

• Develop new UI in parallel

• Use the HTML components

• Keep webpack as our build system

Page 14: Repainting the Plane... at 30,000 Feet

Rails Engine

Page 15: Repainting the Plane... at 30,000 Feet

What’s a Rails Engine?

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…”

Page 16: Repainting the Plane... at 30,000 Feet

Benefits

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

Page 17: Repainting the Plane... at 30,000 Feet
Page 18: Repainting the Plane... at 30,000 Feet

Drawbacks

RAILS ENGINE• Created an implicit interface

across two projects

• Was hard to test in isolation — thankfully our QA team likes Selenium tests

Page 19: Repainting the Plane... at 30,000 Feet

Summary

RAILS ENGINE• Worked well, but not a long

term solution

• Planning to deprecate the engine and move contents to app

Page 20: Repainting the Plane... at 30,000 Feet

Next Steps

FUTURE WORK• Improve site navigation and

structure

• More creative/intuitive interaction design (minimize clicks)

• Focus more on React components than AngularJS apps

Page 21: Repainting the Plane... at 30,000 Feet

Want to Help?

https://recurly.com/[email protected]