SlideShare ist ein Scribd-Unternehmen logo
1 von 84
Building a modular front-end framework
and style guide for a large organization
Scott Cranfill and Mollie Bates
OSCON – June 22, 2015
2
Overview
 Problem: How do you keep design and code consistent
with a large, remote team working across disciplines and
different projects?
 Our solution, in one sentence: Design and publish your
standards in the open, and build a front-end framework that
enables developers to easily implement and maintain them.
CFPB Design Manual:
cfpb.github.io/design-manual
Capital Framework
cfpb.github.io/capital-framework
3
5
CFPB’s mission
The CFPB is a 21st century agency that helps consumer
finance markets work by making rules more effective, by
consistently and fairly enforcing those rules, and by
empowering consumers to take more control over their
economic lives.
This is the footer
7
Our core functions
 Write rules, supervise companies and enforce federal
consumer financial protection laws
 Restrict unfair, deceptive or abusive acts or practices
 Take consumer complaints
 Promote financial education
8
Our core functions
 Research consumer behavior
 Monitor financial markets for new risks to consumers
 Enforce laws that outlaw discrimination and other unfair
treatment to consumers
9
We achieve our mission through
 Data-driven analysis
 Innovative use of technology
 Valuing the best people and great teamwork
This is the footer
11
Technology and Innovation Fellowship
 30 fellows hired in January 2013 from all over the country
• Quadrupled the size of the Design & Development Team
 Second class began in January 2015; 15 retained from
original class and 23 new fellows added
12
Our team today
1 creative director
7 managers/producers
11 graphic designers
9 UX designers
13 front-end developers
20 back-end developers
2 multimedia
13
Our team today
1 creative director
7 managers/producers
7 4 graphic designers
8 1 UX designers
11 2 front-end developers
9 11 back-end developers
2 multimedia
14
Project teams
 Teams are mostly remote
 1–2 each of UX, graphic design, front-end development, back-end
development
 Plus a product owner and scrum master, Agile methodology
 Develop in the open whenever possible
• cfpb.github.io/source-code-policy
This is the footer
This is the footer
17
CFPB design principles
1. Public service, public trust
2. Aesthetic integrity
3. Coherent end-to-end user experience
4. Give the user control
5. Design with data
6. Inclusion and accessibility
This is the footer
19
20
This is the footer
This is the footer
This is the footer
This is the footer
25
26
Coding standards
 No standard build process
 Mixture of Less and straight CSS
 Wild west of JavaScript library usage
 Coding style anarchy
27
Why we needed shared standards
 Large group of designers and developers working on
separate projects, across the country
 Off-site contractors working on web products, print
collateral, and marketing
 Consistent branding and user experience builds trust with
consumers
This is the footer
This is the footer
30
Design Manual goals
 Establish an empirical source of the latest standards
 Ensure that employees and contract agencies understand how to
use our brand and UI patterns effectively, and in a way that
is consistent with existing work
 Enable other government agencies to use or learn from our
standards
This is the footer
This is the footer
This is the footer
This is the footer
This is the footer
This is the footer
This is the footer
This is the footer
This is the footer
This is the footer
This is the footer
Join the conversation!
github.com/cfpb/design-manual/issues
42
43
“A framework, you say?”
44
45
What is it?
1. A collection of modular HTML/CSS/JavaScript
components
2. A build process that brings them together
3. A recommended workflow that eases the burden of
keeping the front end in sync across multiple projects with
different developers
“You’ve heard of Bootstrap, right?”
46
Because government.
47
Because government usability.
48
49
Why build our own?
 Browser support
 Accessibility
• Section 508
• WCAG 2.0 Level AA
 Effort
 Modularity
Modularity
51
Advantages of a modular structure
 Ease of updating
 Use only what you need
 Encourages contributions
52
Workflow for an existing project
edit project source
edit
component
source
rebuild
component
push
component to
remote repo
clone
install Grunt
dependencies
install cf or
third-party
components build project
test in
browser
This is the footer
54
Workflow for an existing project
edit project source
edit
component
source
rebuild
component
push
component to
remote repo
clone
install Grunt
dependencies
install cf or
third-party
components build project
test in
browser
Component update workflow in detail
cf-buttons
1.1.0
cf.gov hmda-site future-project
Component update workflow in detail
cf-buttons
1.1.0
cf-buttons
1.1.0
Component update workflow in detail
cf-buttons
new-feature
future-project
58
Modifying dependency version for testing
Component update workflow in detail
cf-buttons
1.1.0
cf-buttons
new-feature
60
Component update workflow in detail
cf.gov hmda-site future-project
cf-buttons
1.2.0
cf.gov hmda-site future-project
This is the footer
This is the footer
This is the footer
64
Capital Framework/Design Manual integration
 Design Manual is built on Capital Framework
 When design standard is updated, to see in the manual,
must be updated in the framework
 Interdependency keeps designers and developers in sync
This is the footer
This is the footer
This is really hard.
67
This is the footer
This is the footer
This is the footer
This is the footer
This is the footer
This is the footer
This is the footer
This is the footer
This is the footer
This is the footer
Give it a try!
78
79
Getting started docs:
cfpb.github.io/capital-framework
80
Contribute!
github.com/cfpb/capital-framework
81
This is the footer
83
In summary
 Problem: How do you keep design and code consistent
with a large, remote team working across disciplines and
different projects?
 Our solution, in one sentence: Design and publish your
standards in the open, and build a front-end framework that
enables developers to easily implement and maintain them.
scott.cranfill@cfpb.gov, @scott_ish
mollie.bates@cfpb.gov, @mebates
Thank you! Questions?
84

Weitere ähnliche Inhalte

Ähnlich wie CFPB Design Manual & Capital Framework at OSCON

Modernize Development with Agile Engineering Practices
Modernize Development with Agile Engineering PracticesModernize Development with Agile Engineering Practices
Modernize Development with Agile Engineering PracticesCollabNet
 
Guiding a Product Roadmap in a Chaotic World
Guiding a Product Roadmap in a Chaotic WorldGuiding a Product Roadmap in a Chaotic World
Guiding a Product Roadmap in a Chaotic WorldEric de Jager
 
A One Stop Solution Platform for various Services Helping Tools.pptx
A One Stop Solution Platform for various Services Helping Tools.pptxA One Stop Solution Platform for various Services Helping Tools.pptx
A One Stop Solution Platform for various Services Helping Tools.pptxSHIVAMGIRI35
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycleAfrasiyab Haider
 
INTERFACE by apidays 2023 - Governance Doesn't Have to be a Dirty Word, Jason...
INTERFACE by apidays 2023 - Governance Doesn't Have to be a Dirty Word, Jason...INTERFACE by apidays 2023 - Governance Doesn't Have to be a Dirty Word, Jason...
INTERFACE by apidays 2023 - Governance Doesn't Have to be a Dirty Word, Jason...apidays
 
CodeValue Architecture Next 2018 - Executive track dilemmas and solutions in...
CodeValue Architecture Next 2018 - Executive track  dilemmas and solutions in...CodeValue Architecture Next 2018 - Executive track  dilemmas and solutions in...
CodeValue Architecture Next 2018 - Executive track dilemmas and solutions in...Erez PEDRO
 
Agile ALM with Traceability: Release of codeBeamer 5.5
Agile ALM with Traceability: Release of codeBeamer 5.5 Agile ALM with Traceability: Release of codeBeamer 5.5
Agile ALM with Traceability: Release of codeBeamer 5.5 Intland Software GmbH
 
JourneyToLowCode_3of4.pdf
JourneyToLowCode_3of4.pdfJourneyToLowCode_3of4.pdf
JourneyToLowCode_3of4.pdfVaibhavVaidya30
 
IBM Innovate - Uderstanding DevOps
IBM Innovate - Uderstanding DevOpsIBM Innovate - Uderstanding DevOps
IBM Innovate - Uderstanding DevOpsSanjeev Sharma
 
Application Migration: How to Start, Scale and Succeed
Application Migration: How to Start, Scale and SucceedApplication Migration: How to Start, Scale and Succeed
Application Migration: How to Start, Scale and SucceedVMware Tanzu
 
Migrating from ClearCase
Migrating from ClearCaseMigrating from ClearCase
Migrating from ClearCaseCollabNet
 
DELIVER QUALITY SOFTWARE PRODUCTS BY FOLLOWING SIMPLE STEPS
DELIVER QUALITY SOFTWARE PRODUCTS BY FOLLOWING SIMPLE STEPSDELIVER QUALITY SOFTWARE PRODUCTS BY FOLLOWING SIMPLE STEPS
DELIVER QUALITY SOFTWARE PRODUCTS BY FOLLOWING SIMPLE STEPSTechahead Software
 
Draftkings: Launching w/ Confidence at Scale, FutureStack17 NYC
Draftkings: Launching w/ Confidence at Scale, FutureStack17 NYCDraftkings: Launching w/ Confidence at Scale, FutureStack17 NYC
Draftkings: Launching w/ Confidence at Scale, FutureStack17 NYCNew Relic
 
Why MVP Development Matters Creating User-Centric Products?
Why MVP Development Matters Creating User-Centric Products?Why MVP Development Matters Creating User-Centric Products?
Why MVP Development Matters Creating User-Centric Products?Amplework Software Pvt. Ltd.
 
Project_Proposal.docx - bbb-extensions.googlecode.com
Project_Proposal.docx - bbb-extensions.googlecode.comProject_Proposal.docx - bbb-extensions.googlecode.com
Project_Proposal.docx - bbb-extensions.googlecode.combutest
 
Agile Tour Dublin 2013 - Product Lines and Agile
Agile Tour Dublin 2013 - Product Lines and AgileAgile Tour Dublin 2013 - Product Lines and Agile
Agile Tour Dublin 2013 - Product Lines and AgileParaic Hegarty
 
Reduce Time to Value: Focus First on Configuration Management Debt
Reduce Time to Value: Focus First on Configuration Management DebtReduce Time to Value: Focus First on Configuration Management Debt
Reduce Time to Value: Focus First on Configuration Management DebtChris Sterling
 

Ähnlich wie CFPB Design Manual & Capital Framework at OSCON (20)

Modernize Development with Agile Engineering Practices
Modernize Development with Agile Engineering PracticesModernize Development with Agile Engineering Practices
Modernize Development with Agile Engineering Practices
 
Guiding a Product Roadmap in a Chaotic World
Guiding a Product Roadmap in a Chaotic WorldGuiding a Product Roadmap in a Chaotic World
Guiding a Product Roadmap in a Chaotic World
 
A One Stop Solution Platform for various Services Helping Tools.pptx
A One Stop Solution Platform for various Services Helping Tools.pptxA One Stop Solution Platform for various Services Helping Tools.pptx
A One Stop Solution Platform for various Services Helping Tools.pptx
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
 
INTERFACE by apidays 2023 - Governance Doesn't Have to be a Dirty Word, Jason...
INTERFACE by apidays 2023 - Governance Doesn't Have to be a Dirty Word, Jason...INTERFACE by apidays 2023 - Governance Doesn't Have to be a Dirty Word, Jason...
INTERFACE by apidays 2023 - Governance Doesn't Have to be a Dirty Word, Jason...
 
CodeValue Architecture Next 2018 - Executive track dilemmas and solutions in...
CodeValue Architecture Next 2018 - Executive track  dilemmas and solutions in...CodeValue Architecture Next 2018 - Executive track  dilemmas and solutions in...
CodeValue Architecture Next 2018 - Executive track dilemmas and solutions in...
 
DevOps for Enterprise Systems - Rosalind Radcliffe
DevOps for Enterprise Systems - Rosalind RadcliffeDevOps for Enterprise Systems - Rosalind Radcliffe
DevOps for Enterprise Systems - Rosalind Radcliffe
 
Web20 report excerpt
Web20 report excerptWeb20 report excerpt
Web20 report excerpt
 
Agile ALM with Traceability: Release of codeBeamer 5.5
Agile ALM with Traceability: Release of codeBeamer 5.5 Agile ALM with Traceability: Release of codeBeamer 5.5
Agile ALM with Traceability: Release of codeBeamer 5.5
 
JourneyToLowCode_3of4.pdf
JourneyToLowCode_3of4.pdfJourneyToLowCode_3of4.pdf
JourneyToLowCode_3of4.pdf
 
BUDDY White Paper
BUDDY White PaperBUDDY White Paper
BUDDY White Paper
 
IBM Innovate - Uderstanding DevOps
IBM Innovate - Uderstanding DevOpsIBM Innovate - Uderstanding DevOps
IBM Innovate - Uderstanding DevOps
 
Application Migration: How to Start, Scale and Succeed
Application Migration: How to Start, Scale and SucceedApplication Migration: How to Start, Scale and Succeed
Application Migration: How to Start, Scale and Succeed
 
Migrating from ClearCase
Migrating from ClearCaseMigrating from ClearCase
Migrating from ClearCase
 
DELIVER QUALITY SOFTWARE PRODUCTS BY FOLLOWING SIMPLE STEPS
DELIVER QUALITY SOFTWARE PRODUCTS BY FOLLOWING SIMPLE STEPSDELIVER QUALITY SOFTWARE PRODUCTS BY FOLLOWING SIMPLE STEPS
DELIVER QUALITY SOFTWARE PRODUCTS BY FOLLOWING SIMPLE STEPS
 
Draftkings: Launching w/ Confidence at Scale, FutureStack17 NYC
Draftkings: Launching w/ Confidence at Scale, FutureStack17 NYCDraftkings: Launching w/ Confidence at Scale, FutureStack17 NYC
Draftkings: Launching w/ Confidence at Scale, FutureStack17 NYC
 
Why MVP Development Matters Creating User-Centric Products?
Why MVP Development Matters Creating User-Centric Products?Why MVP Development Matters Creating User-Centric Products?
Why MVP Development Matters Creating User-Centric Products?
 
Project_Proposal.docx - bbb-extensions.googlecode.com
Project_Proposal.docx - bbb-extensions.googlecode.comProject_Proposal.docx - bbb-extensions.googlecode.com
Project_Proposal.docx - bbb-extensions.googlecode.com
 
Agile Tour Dublin 2013 - Product Lines and Agile
Agile Tour Dublin 2013 - Product Lines and AgileAgile Tour Dublin 2013 - Product Lines and Agile
Agile Tour Dublin 2013 - Product Lines and Agile
 
Reduce Time to Value: Focus First on Configuration Management Debt
Reduce Time to Value: Focus First on Configuration Management DebtReduce Time to Value: Focus First on Configuration Management Debt
Reduce Time to Value: Focus First on Configuration Management Debt
 

Kürzlich hochgeladen

Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 

Kürzlich hochgeladen (20)

Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 

CFPB Design Manual & Capital Framework at OSCON

Hinweis der Redaktion

  1. http://www.consumerfinance.gov/
  2. http://www.consumerfinance.gov/the-bureau/ We were created by the Dodd Frank Wall Street Reform and Consumer Protection Act – which was signed into law on July 21, 2010. We launched our first website less than 7 months later and officially opened our doors in July 2011 …
  3. which means that yesterday was our fourth birthday! http://www.consumerfinance.gov/blog/four-years-working-for-you/
  4. Technology is core to accomplishing our mission. We need to develop and leverage technology to enhance our reach, impact, and effectiveness. We also want to serve as a model for innovation within government.
  5. http://www.consumerfinance.gov/jobs/technology-innovation-fellows/
  6. https://cfpb.github.io/
  7. https://cfpb.github.io/design-manual/guides/design-principles.html
  8. We had traditional design standards in the form of a printed style guide, which went through several iterations from 2011 to 2013. Though it spoke to some aspects of web design – most notably, basic 508 accessibility guidelines– It did not include interactive web patterns.
  9. The early design staff also made a smart move to prioritize tools for all of our employees -- in the form of Microsoft Office templates -- so everyone at the Bureau could all be part of disseminating our brand. We continually maintain and update these templates.
  10. consumerfinance.gov on the day that the first fellows started, January 2013
  11. http://www.consumerfinance.gov/es/
  12. http://www.consumerfinance.gov/hmda/
  13. So, by September 2013, we have a landscape that looks like this – and there are still more examples of divergent designs that were live at that time that could be shown. Actually, all three of these designs are still live! Unifying disparate designs across many projects is a long process, and we still have a lot of work to do.
  14. We weren’t the first to think of this, of course. Many corporations have digital style guides or web patterns, and we were heavily influenced by the UK’s amazing Government Service Design Manual.
  15. https://cfpb.github.io/design-manual/
  16. It includes guides like our design principles,
  17. traditional style guide elements like logo standards,
  18. our full color palette,
  19. and our custom icon set. These standards were ripped straight from our printed style guide, and transferred over with little to no discussion.
  20. But the manual also now includes user interface elements like links
  21. and buttons. These did require a lot of discussion,
  22. and we used GitHub to do it. We discuss new standards and changes to existing standards in issues
  23. so you can hop on anytime and see our open discussions and process.
  24. In each issue, you can see us discuss and debate: Best practices for design Alignment to our brand Learnings from past usability testing 508 compliance Ease of implementation for our developers https://github.com/cfpb/design-manual/issues/143
  25. This isn’t the most efficient way to make decisions, but it is collaborative, inclusive, transparent and works for us. The documentation is open and extensive, so new employees (and the public!) can see how and why decisions were made.
  26. As the Design Manual was off and running and picking up steam, the front-end development team knew that we needed a way to catalogue all of the recommended code needed to produce the web design patterns being standardized there. So, we decided to build our own in-house framework, which we call “Capital Framework”.
  27. Here’s what it means to us…
  28. The framework comprises these three things:
  29. I kid a little bit, but I’m also serious. Maybe not for the reasons you think, though. It’s not that we’re afraid of using third party software. On the contrary, we love standing on the shoulders of open source software, and as mentioned earlier, we even have an official policy that encourages it!
  30. The real answer is because it’s ultimately better for our users—both the public, who will be using the products that run on the framework, and our developers, who use the framework itself to develop the products.
  31. What do we mean by modular? Well, this means we break the framework down into pieces, which we call “components”. Each component has a narrow focus, like defining typographical styles, specifying button types and states, or providing icons. We store each component in its own GitHub repository. Breaking it up like this is helpful because by making the framework a set of modular components, versus one monolithic folder (like other frameworks), it becomes easier to update it in bite-sized chunks, rather than all at once, and it becomes easier to share and distribute updates to each project using the framework. This approach was inspired by the Topcoat project from Adobe (shout out to Garth Brathwaite, who just presented here in another room last session), and is now gaining popularity with new frameworks like Basscss.
  32. A quick rundown of how npm and Bower dependency management works, for those who might not be familiar. In your project’s source code, you can create these two configuration files, package.json for npm, and bower.json for Bower. In these files, you can list dependencies, which are other packages (also called modules or components) that others have written, or maybe you’ve written yourself. Having them listed in these files will tell npm and Bower to look at their package registries and fetch each of these dependencies at the specified version number.
  33. So, back to the workflow. Here are the basic steps: Clone the project you’re starting to work on to your local development environment. Run `npm install` to get build dependencies installed. Run `bower install` to get front-end dependencies installed. Run `grunt` to build the project. Test it out in the browser. From there, there are two paths of work, so to speak. First to work on project-specific code, following the top loop, you’d edit the project source, build, test again, rinse and repeat. As you’re working on your project, you might find the need to update a Capital Framework component, which will take us down the lower loop path. To update a component, you’d edit the component’s source, push the new version, update your dependency version in the project and reinstall the component. Rebuild and test to ensure the update didn’t break anything. Editing the component and testing it out is a little more complicated than that, and I’ll give an example of that now.
  34. We use a mixture of milestones, labels, and checklists in GitHub. Process is documented in the ReadMe
  35. Non-developers can use Prose.io to update the design manual.
  36. http://www.consumerfinance.gov/your-story/
  37. http://www.consumerfinance.gov/owning-a-home
  38. http://www.consumerfinance.gov/eregulations
  39. http://www.consumerfinance.gov/complaints
  40. http://www.consumerfinance.gov/complaintdatabase/
  41. http://beta.consumerfinance.gov/
  42. We continue to evaluate technologies and consider whether to incorporate them into CF. Gulp? cssnext? ES6? And at a higher level of government, a project partially inspired by our work is taking shape...
  43. https://pages.18f.gov/govt-wide-patternlibrary/
  44. https://github.com/18F/govt-wide-patternlibrary
  45. https://cfpb.github.io/capital-framework/
  46. Also, we could use your help! If you give it a try, please let us know what you think can be added or improved. Or do it yourself :) We love to receive issues and pull requests from the public.
  47. Like this one, from our former CFPB colleague and Capital Framework co-creator Mike Morici.