SlideShare a Scribd company logo
1 of 50
Welcome!
Harmony: Design innovation in QuickBooks Online (QBO)
Amanda Linden, Design Leader, QuickBooks Web & Mobile
Girl Geek Dinner | Feb. 6, 2014
We used to work like this …

Requirements

3

Design

Build
We delivered …
… Complexity
Variances in interaction design across our products and within a product

5
… Confusion
Variances in tone and voice across our products and within a product

6
… Inconsistency
Visual design disparity across the ecosystem and within the products

7
… Loose connections
Showing our org structure in our designs

8
For the QuickBooks redesign, we worked differently

Design

Build
User
Experience

Requirements

9
We broke down the
application into components
Application components

11
Application components

12
We designed to enable two
core actions: create & find
Global create

14
Create and search

15
With these pieces in
place, developers could
create pages on their own
17
How elements appear on the screen

Transaction browser
(trowser)

Drawer

18
19
We had more time to focus
on innovation
One-click expense capture

21
Invoice customization

22
23
Thank you
JavaScript at Scale in QuickBooks Online (QBO)
Manasa Murthy, Senior Development Manager
Girl Geek Dinner | Feb. 6, 2014
What scale means for QBO
1.5M active users

Up to 150 workflows
Released in 174 countries
26
Technologies used in QBO
Client
Rendering

Data-Only
Transport

Developer
API Services
Global
Accounting
Engine

World-Wide
Data Centers

WAA
What matters most
Happy engineers – latest technology, Agility

Maintainability
Faster loading pages
Better quality

28
Functionality vs. complexity: what’s typical

Complexity

$(‘#typical’)

Functionality over time
29
Functionality vs. complexity: our goal

Complexity

Upfront investment yields
dividends as functionality
grows
Functionality over time
30
Scaled to 100+ engineers with
~100K lines of client code.
Complexity is still manageable.

31
Use OO JavaScript
return declare([Stateful, Evented], {
constructor: function (args) {
this.dirty = false;
},
isDirty: function () {
return this.dirty || this.inherited();
}
…
});

32
Two-way binding
Definition: The ability to bind changes to an object’s properties to changes in the UI, and vice versa.

<div data-qbo-bind="visible: showDate">
<div>${nls.date}</div>
<input class="dateInput” data-qbobind="value: date"
data-dojo-type="qbo/widgets/DateTextBox”/>
</div>

Our homegrown two-way binding framework is inspired by

33
CSS requires engineering design
• Proper CSS scoping
• Apply top-level scoped styles to enable progressive layout
• Use a pre-processor
.qbo {
.invoice {
background: $formBackground;
height: $formHeight - $marginHeight;
}
.menuVisible {
.forms {
margin-left: 0px;
}
}
}
34
Single-page application
• Entire page loaded only once
• Refresh only parts of the application
• Responsive UI

35
Asynchronous module definition
Definition: AMD is a JavaScript API that lets you define and manage modules and their dependencies.

define([
"dojo/_base/declare",
"libs/jquery",
"libs/highcharts",
"libs/underscore",
"libs/backbone"
], function(declare, $, Highcharts, _, Backbone) {
…
});
Provides a no-build (F5) dev experience. Also builds minified, optimized layers.
36
Unit test
define([
"intern!object”
], function (registerSuite) {
registerSuite({
Name: "sampleSuite",
Setup: function () {},
beforeEach: function () {},
afterEach: function () {},
teardown: function () {},
"test1”: function () {}
… //More tests
});
});
37

Services isolation allows you
to mock XHR calls.

intern
End results
Happy engineers
• Went from 2 months to 2 weeks to write a new form
• Build times went from 2 min to 0 min on client side

Maintainability
• ~100K lines of JavaScript
• Separation of concerns – JavaScript, Java, CSS, HTML
• Onboarding down to 1 week

Faster loading pages
• < 2 sec for top workflows
• Better performance across the globe

Better quality
• ~400 unit tests just on the client side
38
Thank you
Why we need more girl geeks
Anu Tewary, Director of Data Products and Founder of Technovation Challenge
Girl Geek Dinner | Feb. 6, 2014
My path to a career in technology

41
The Level Up team

42
The challenges
CHALLENGE 1:
Not enough girls enter the field
of technology. Girls see
themselves as users, not
innovators, of technology.
CHALLENGE 2:
Once in the field, not enough
women stay. 56% of women
leave the field mid-career.

43
The Technovation Challenge
• Girls program mobile apps to
solve problems in their
community.
• Girls pitch business plans for
funding.
• Mentors use their deep technical
expertise while gaining
experience launching a new
venture.

44
Girls as innovators
• When girls participate in the
innovation process, the outcome
is diverse.
• We get ideas for apps such as
Uber and Pinterest ahead of their
time!
• AND we get apps such as
Arrive, StudiCafe, IOU, and
MASH

45
Why is it great to be a woman in tech?
• Sometimes it isn’t ... it’s lonely. 
- There aren’t enough of us here ... but there should be. 
• It’s changing and what we’re doing here is making it better. 
- It’s fun to be part of the solution. 

46
Trending in the right direction

Varsha R.

Level Up Analytics interns
47
Inspire and be inspired!
Sign up to be a mentor! Email Judy@Iridescentlearning.org

48
Questions? Comments?
Meet for coffee?
anutewary@gmail.com
Q&A

More Related Content

Similar to Design innovation and JavaScript scaling in QuickBooks Online

It is a sunny day
It is a sunny dayIt is a sunny day
It is a sunny daybcoder
 
Friday final test
Friday final testFriday final test
Friday final testbcoder
 
Leveraging Design Systems to Streamline Web Projects
Leveraging Design Systems to Streamline Web ProjectsLeveraging Design Systems to Streamline Web Projects
Leveraging Design Systems to Streamline Web ProjectsMediacurrent
 
Building Engaging Customer Experiences Powered by MongoDB
Building Engaging Customer Experiences Powered by MongoDBBuilding Engaging Customer Experiences Powered by MongoDB
Building Engaging Customer Experiences Powered by MongoDBrivetlogic
 
Internship Presentation - Software Testing and Content Creator
Internship Presentation - Software Testing and Content CreatorInternship Presentation - Software Testing and Content Creator
Internship Presentation - Software Testing and Content CreatorWardah AK
 
GOOGLE DEVELOPERS STUDENT CLUB, MSIT Info Session.pdf
GOOGLE DEVELOPERS STUDENT CLUB, MSIT Info Session.pdfGOOGLE DEVELOPERS STUDENT CLUB, MSIT Info Session.pdf
GOOGLE DEVELOPERS STUDENT CLUB, MSIT Info Session.pdfIshikaPunchariya1
 
GDSC IIT Goa Info Session Slides
GDSC IIT Goa Info Session SlidesGDSC IIT Goa Info Session Slides
GDSC IIT Goa Info Session SlidesSEJALGUPTA44
 
UX, Agile and product management
UX, Agile and product managementUX, Agile and product management
UX, Agile and product managementPhil Barrett
 
DSC Aswan University info session
DSC Aswan University info sessionDSC Aswan University info session
DSC Aswan University info sessionAhmedHany131
 
App42 Student Lab - Android Game Dev Series V 0.1
App42 Student Lab - Android Game Dev Series V 0.1App42 Student Lab - Android Game Dev Series V 0.1
App42 Student Lab - Android Game Dev Series V 0.1ShepHertz
 
The Case for Embedded Analytics: Improve the Value of your Applications with ...
The Case for Embedded Analytics: Improve the Value of your Applications with ...The Case for Embedded Analytics: Improve the Value of your Applications with ...
The Case for Embedded Analytics: Improve the Value of your Applications with ...TIBCO Jaspersoft
 
Case Study 3 - Portfolio Project Final - Google UX Design Certificate
Case Study 3 - Portfolio Project Final - Google UX Design CertificateCase Study 3 - Portfolio Project Final - Google UX Design Certificate
Case Study 3 - Portfolio Project Final - Google UX Design CertificateAbelKCS
 
Abstracting the UI Layer for WebSphere Portal
Abstracting the UI Layer for WebSphere PortalAbstracting the UI Layer for WebSphere Portal
Abstracting the UI Layer for WebSphere PortalPerficient, Inc.
 
Join us at Confee
Join us at ConfeeJoin us at Confee
Join us at ConfeeGabor Orosz
 
Cybrilla brief company profile
Cybrilla brief company profileCybrilla brief company profile
Cybrilla brief company profileAnchal Jajodia
 
DevOps Indonesia #2 - Toolchain & Technology
DevOps Indonesia #2 - Toolchain & TechnologyDevOps Indonesia #2 - Toolchain & Technology
DevOps Indonesia #2 - Toolchain & TechnologyDevOps Indonesia
 
DevOps Indonesia - DevOps Toolchain and Technology
DevOps Indonesia - DevOps Toolchain and TechnologyDevOps Indonesia - DevOps Toolchain and Technology
DevOps Indonesia - DevOps Toolchain and TechnologyMade Mulia Indrajaya
 

Similar to Design innovation and JavaScript scaling in QuickBooks Online (20)

It is a sunny day
It is a sunny dayIt is a sunny day
It is a sunny day
 
Friday final test
Friday final testFriday final test
Friday final test
 
Leveraging Design Systems to Streamline Web Projects
Leveraging Design Systems to Streamline Web ProjectsLeveraging Design Systems to Streamline Web Projects
Leveraging Design Systems to Streamline Web Projects
 
GDSC_Introduction.pptx
GDSC_Introduction.pptxGDSC_Introduction.pptx
GDSC_Introduction.pptx
 
Building Engaging Customer Experiences Powered by MongoDB
Building Engaging Customer Experiences Powered by MongoDBBuilding Engaging Customer Experiences Powered by MongoDB
Building Engaging Customer Experiences Powered by MongoDB
 
Internship Presentation - Software Testing and Content Creator
Internship Presentation - Software Testing and Content CreatorInternship Presentation - Software Testing and Content Creator
Internship Presentation - Software Testing and Content Creator
 
Creative chaos overview code thinking
Creative chaos overview code thinkingCreative chaos overview code thinking
Creative chaos overview code thinking
 
GOOGLE DEVELOPERS STUDENT CLUB, MSIT Info Session.pdf
GOOGLE DEVELOPERS STUDENT CLUB, MSIT Info Session.pdfGOOGLE DEVELOPERS STUDENT CLUB, MSIT Info Session.pdf
GOOGLE DEVELOPERS STUDENT CLUB, MSIT Info Session.pdf
 
GDSC IIT Goa Info Session Slides
GDSC IIT Goa Info Session SlidesGDSC IIT Goa Info Session Slides
GDSC IIT Goa Info Session Slides
 
UX, Agile and product management
UX, Agile and product managementUX, Agile and product management
UX, Agile and product management
 
DSC Aswan University info session
DSC Aswan University info sessionDSC Aswan University info session
DSC Aswan University info session
 
App42 Student Lab - Android Game Dev Series V 0.1
App42 Student Lab - Android Game Dev Series V 0.1App42 Student Lab - Android Game Dev Series V 0.1
App42 Student Lab - Android Game Dev Series V 0.1
 
The Case for Embedded Analytics: Improve the Value of your Applications with ...
The Case for Embedded Analytics: Improve the Value of your Applications with ...The Case for Embedded Analytics: Improve the Value of your Applications with ...
The Case for Embedded Analytics: Improve the Value of your Applications with ...
 
Case Study 3 - Portfolio Project Final - Google UX Design Certificate
Case Study 3 - Portfolio Project Final - Google UX Design CertificateCase Study 3 - Portfolio Project Final - Google UX Design Certificate
Case Study 3 - Portfolio Project Final - Google UX Design Certificate
 
Abstracting the UI Layer for WebSphere Portal
Abstracting the UI Layer for WebSphere PortalAbstracting the UI Layer for WebSphere Portal
Abstracting the UI Layer for WebSphere Portal
 
Join us at Confee
Join us at ConfeeJoin us at Confee
Join us at Confee
 
Internship project presentation
Internship project presentationInternship project presentation
Internship project presentation
 
Cybrilla brief company profile
Cybrilla brief company profileCybrilla brief company profile
Cybrilla brief company profile
 
DevOps Indonesia #2 - Toolchain & Technology
DevOps Indonesia #2 - Toolchain & TechnologyDevOps Indonesia #2 - Toolchain & Technology
DevOps Indonesia #2 - Toolchain & Technology
 
DevOps Indonesia - DevOps Toolchain and Technology
DevOps Indonesia - DevOps Toolchain and TechnologyDevOps Indonesia - DevOps Toolchain and Technology
DevOps Indonesia - DevOps Toolchain and Technology
 

More from Intuit Inc.

State of Small Business – Growth and Success Report
State of Small Business – Growth and Success ReportState of Small Business – Growth and Success Report
State of Small Business – Growth and Success ReportIntuit Inc.
 
The State of Small Business Cash Flow
The State of Small Business Cash FlowThe State of Small Business Cash Flow
The State of Small Business Cash FlowIntuit Inc.
 
Small Business in the Age of AI
Small Business in the Age of AI Small Business in the Age of AI
Small Business in the Age of AI Intuit Inc.
 
Get financially Fit: Tips for Using QuickBooks
Get financially Fit: Tips for Using QuickBooksGet financially Fit: Tips for Using QuickBooks
Get financially Fit: Tips for Using QuickBooksIntuit Inc.
 
SEO, Social, and More: Digital Marketing for your Business
SEO, Social, and More: Digital Marketing for your BusinessSEO, Social, and More: Digital Marketing for your Business
SEO, Social, and More: Digital Marketing for your BusinessIntuit Inc.
 
Why Building Your Brand is Key to Getting Customers
Why Building Your Brand is Key to Getting CustomersWhy Building Your Brand is Key to Getting Customers
Why Building Your Brand is Key to Getting CustomersIntuit Inc.
 
Get Found Fast: Google AdWords Strategies for Growth
Get Found Fast: Google AdWords Strategies for GrowthGet Found Fast: Google AdWords Strategies for Growth
Get Found Fast: Google AdWords Strategies for GrowthIntuit Inc.
 
Giving Clients What They Want
Giving Clients What They WantGiving Clients What They Want
Giving Clients What They WantIntuit Inc.
 
What Accounting Will Look Like in 2030
What Accounting Will Look Like in 2030What Accounting Will Look Like in 2030
What Accounting Will Look Like in 2030Intuit Inc.
 
Pricing in the Digital Age
Pricing in the Digital Age Pricing in the Digital Age
Pricing in the Digital Age Intuit Inc.
 
Handbook: Power Panel on Apps you need to give you more time to serve your cl...
Handbook: Power Panel on Apps you need to give you more time to serve your cl...Handbook: Power Panel on Apps you need to give you more time to serve your cl...
Handbook: Power Panel on Apps you need to give you more time to serve your cl...Intuit Inc.
 
Handbook: Advanced QuickBooks Online - Handling Tricky Transactions
Handbook: Advanced QuickBooks Online - Handling Tricky TransactionsHandbook: Advanced QuickBooks Online - Handling Tricky Transactions
Handbook: Advanced QuickBooks Online - Handling Tricky TransactionsIntuit Inc.
 
Advanced QuickBooks Online - Handling Tricky Transactions
Advanced QuickBooks Online - Handling Tricky TransactionsAdvanced QuickBooks Online - Handling Tricky Transactions
Advanced QuickBooks Online - Handling Tricky TransactionsIntuit Inc.
 
Handling tricky transactions in QuickBooks Online
Handling tricky transactions in QuickBooks OnlineHandling tricky transactions in QuickBooks Online
Handling tricky transactions in QuickBooks OnlineIntuit Inc.
 
Social media is social business
Social media is social business  Social media is social business
Social media is social business Intuit Inc.
 
Conversation guide: Forming deep relationships with your clients
Conversation guide: Forming deep relationships with your clientsConversation guide: Forming deep relationships with your clients
Conversation guide: Forming deep relationships with your clientsIntuit Inc.
 
Making tax digital
Making tax digital  Making tax digital
Making tax digital Intuit Inc.
 
Giving clients what they want
Giving clients what they want Giving clients what they want
Giving clients what they want Intuit Inc.
 
100 percent cloud your action plan for success
100 percent cloud your action plan for success 100 percent cloud your action plan for success
100 percent cloud your action plan for success Intuit Inc.
 
Attracting and retaining top talent
Attracting and retaining top talent Attracting and retaining top talent
Attracting and retaining top talent Intuit Inc.
 

More from Intuit Inc. (20)

State of Small Business – Growth and Success Report
State of Small Business – Growth and Success ReportState of Small Business – Growth and Success Report
State of Small Business – Growth and Success Report
 
The State of Small Business Cash Flow
The State of Small Business Cash FlowThe State of Small Business Cash Flow
The State of Small Business Cash Flow
 
Small Business in the Age of AI
Small Business in the Age of AI Small Business in the Age of AI
Small Business in the Age of AI
 
Get financially Fit: Tips for Using QuickBooks
Get financially Fit: Tips for Using QuickBooksGet financially Fit: Tips for Using QuickBooks
Get financially Fit: Tips for Using QuickBooks
 
SEO, Social, and More: Digital Marketing for your Business
SEO, Social, and More: Digital Marketing for your BusinessSEO, Social, and More: Digital Marketing for your Business
SEO, Social, and More: Digital Marketing for your Business
 
Why Building Your Brand is Key to Getting Customers
Why Building Your Brand is Key to Getting CustomersWhy Building Your Brand is Key to Getting Customers
Why Building Your Brand is Key to Getting Customers
 
Get Found Fast: Google AdWords Strategies for Growth
Get Found Fast: Google AdWords Strategies for GrowthGet Found Fast: Google AdWords Strategies for Growth
Get Found Fast: Google AdWords Strategies for Growth
 
Giving Clients What They Want
Giving Clients What They WantGiving Clients What They Want
Giving Clients What They Want
 
What Accounting Will Look Like in 2030
What Accounting Will Look Like in 2030What Accounting Will Look Like in 2030
What Accounting Will Look Like in 2030
 
Pricing in the Digital Age
Pricing in the Digital Age Pricing in the Digital Age
Pricing in the Digital Age
 
Handbook: Power Panel on Apps you need to give you more time to serve your cl...
Handbook: Power Panel on Apps you need to give you more time to serve your cl...Handbook: Power Panel on Apps you need to give you more time to serve your cl...
Handbook: Power Panel on Apps you need to give you more time to serve your cl...
 
Handbook: Advanced QuickBooks Online - Handling Tricky Transactions
Handbook: Advanced QuickBooks Online - Handling Tricky TransactionsHandbook: Advanced QuickBooks Online - Handling Tricky Transactions
Handbook: Advanced QuickBooks Online - Handling Tricky Transactions
 
Advanced QuickBooks Online - Handling Tricky Transactions
Advanced QuickBooks Online - Handling Tricky TransactionsAdvanced QuickBooks Online - Handling Tricky Transactions
Advanced QuickBooks Online - Handling Tricky Transactions
 
Handling tricky transactions in QuickBooks Online
Handling tricky transactions in QuickBooks OnlineHandling tricky transactions in QuickBooks Online
Handling tricky transactions in QuickBooks Online
 
Social media is social business
Social media is social business  Social media is social business
Social media is social business
 
Conversation guide: Forming deep relationships with your clients
Conversation guide: Forming deep relationships with your clientsConversation guide: Forming deep relationships with your clients
Conversation guide: Forming deep relationships with your clients
 
Making tax digital
Making tax digital  Making tax digital
Making tax digital
 
Giving clients what they want
Giving clients what they want Giving clients what they want
Giving clients what they want
 
100 percent cloud your action plan for success
100 percent cloud your action plan for success 100 percent cloud your action plan for success
100 percent cloud your action plan for success
 
Attracting and retaining top talent
Attracting and retaining top talent Attracting and retaining top talent
Attracting and retaining top talent
 

Recently uploaded

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 

Recently uploaded (20)

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 

Design innovation and JavaScript scaling in QuickBooks Online

  • 2. Harmony: Design innovation in QuickBooks Online (QBO) Amanda Linden, Design Leader, QuickBooks Web & Mobile Girl Geek Dinner | Feb. 6, 2014
  • 3. We used to work like this … Requirements 3 Design Build
  • 5. … Complexity Variances in interaction design across our products and within a product 5
  • 6. … Confusion Variances in tone and voice across our products and within a product 6
  • 7. … Inconsistency Visual design disparity across the ecosystem and within the products 7
  • 8. … Loose connections Showing our org structure in our designs 8
  • 9. For the QuickBooks redesign, we worked differently Design Build User Experience Requirements 9
  • 10. We broke down the application into components
  • 13. We designed to enable two core actions: create & find
  • 16. With these pieces in place, developers could create pages on their own
  • 17. 17
  • 18. How elements appear on the screen Transaction browser (trowser) Drawer 18
  • 19. 19
  • 20. We had more time to focus on innovation
  • 23. 23
  • 25. JavaScript at Scale in QuickBooks Online (QBO) Manasa Murthy, Senior Development Manager Girl Geek Dinner | Feb. 6, 2014
  • 26. What scale means for QBO 1.5M active users Up to 150 workflows Released in 174 countries 26
  • 27. Technologies used in QBO Client Rendering Data-Only Transport Developer API Services Global Accounting Engine World-Wide Data Centers WAA
  • 28. What matters most Happy engineers – latest technology, Agility Maintainability Faster loading pages Better quality 28
  • 29. Functionality vs. complexity: what’s typical Complexity $(‘#typical’) Functionality over time 29
  • 30. Functionality vs. complexity: our goal Complexity Upfront investment yields dividends as functionality grows Functionality over time 30
  • 31. Scaled to 100+ engineers with ~100K lines of client code. Complexity is still manageable. 31
  • 32. Use OO JavaScript return declare([Stateful, Evented], { constructor: function (args) { this.dirty = false; }, isDirty: function () { return this.dirty || this.inherited(); } … }); 32
  • 33. Two-way binding Definition: The ability to bind changes to an object’s properties to changes in the UI, and vice versa. <div data-qbo-bind="visible: showDate"> <div>${nls.date}</div> <input class="dateInput” data-qbobind="value: date" data-dojo-type="qbo/widgets/DateTextBox”/> </div> Our homegrown two-way binding framework is inspired by 33
  • 34. CSS requires engineering design • Proper CSS scoping • Apply top-level scoped styles to enable progressive layout • Use a pre-processor .qbo { .invoice { background: $formBackground; height: $formHeight - $marginHeight; } .menuVisible { .forms { margin-left: 0px; } } } 34
  • 35. Single-page application • Entire page loaded only once • Refresh only parts of the application • Responsive UI 35
  • 36. Asynchronous module definition Definition: AMD is a JavaScript API that lets you define and manage modules and their dependencies. define([ "dojo/_base/declare", "libs/jquery", "libs/highcharts", "libs/underscore", "libs/backbone" ], function(declare, $, Highcharts, _, Backbone) { … }); Provides a no-build (F5) dev experience. Also builds minified, optimized layers. 36
  • 37. Unit test define([ "intern!object” ], function (registerSuite) { registerSuite({ Name: "sampleSuite", Setup: function () {}, beforeEach: function () {}, afterEach: function () {}, teardown: function () {}, "test1”: function () {} … //More tests }); }); 37 Services isolation allows you to mock XHR calls. intern
  • 38. End results Happy engineers • Went from 2 months to 2 weeks to write a new form • Build times went from 2 min to 0 min on client side Maintainability • ~100K lines of JavaScript • Separation of concerns – JavaScript, Java, CSS, HTML • Onboarding down to 1 week Faster loading pages • < 2 sec for top workflows • Better performance across the globe Better quality • ~400 unit tests just on the client side 38
  • 40. Why we need more girl geeks Anu Tewary, Director of Data Products and Founder of Technovation Challenge Girl Geek Dinner | Feb. 6, 2014
  • 41. My path to a career in technology 41
  • 42. The Level Up team 42
  • 43. The challenges CHALLENGE 1: Not enough girls enter the field of technology. Girls see themselves as users, not innovators, of technology. CHALLENGE 2: Once in the field, not enough women stay. 56% of women leave the field mid-career. 43
  • 44. The Technovation Challenge • Girls program mobile apps to solve problems in their community. • Girls pitch business plans for funding. • Mentors use their deep technical expertise while gaining experience launching a new venture. 44
  • 45. Girls as innovators • When girls participate in the innovation process, the outcome is diverse. • We get ideas for apps such as Uber and Pinterest ahead of their time! • AND we get apps such as Arrive, StudiCafe, IOU, and MASH 45
  • 46. Why is it great to be a woman in tech? • Sometimes it isn’t ... it’s lonely.  - There aren’t enough of us here ... but there should be.  • It’s changing and what we’re doing here is making it better.  - It’s fun to be part of the solution.  46
  • 47. Trending in the right direction Varsha R. Level Up Analytics interns 47
  • 48. Inspire and be inspired! Sign up to be a mentor! Email Judy@Iridescentlearning.org 48
  • 49. Questions? Comments? Meet for coffee? anutewary@gmail.com
  • 50. Q&A

Editor's Notes

  1. NOTES:
  2. NOTES:
  3. NOTES:
  4. NOTES:
  5. NOTES:
  6. NOTES:
  7. NOTES:
  8. NOTES:
  9. NOTES:
  10. NOTES:
  11. NOTES:
  12. NOTES:
  13. NOTES: