Skip to content

US Digital Services Playbook Play 8

mattkwong-kpmg edited this page Feb 26, 2017 · 4 revisions

#Play 8: Choose a Modern Technology Stack The technology decisions we make need to enable development teams to work efficiently and enable services to scale easily and cost-effectively. Our choices for hosting infrastructure, databases, software frameworks, programming languages and the rest of the technology stack should seek to avoid vendor lock-in and match what successful modern consumer and enterprise software companies would choose today. In particular, digital services teams should consider using open source, cloud-based, and commodity solutions across the technology stack, because of their widespread adoption and support by successful consumer and enterprise technology companies in the private sector. ##Checklist

  • 1. Choose software frameworks that are commonly used by private-sector companies creating similar services

We are using modern technology and tools per RFI prototype requirements e.g Google's Angular 2. Consult our Development Guide for more details.

  • 2. Whenever possible, ensure that software can be deployed on a variety of commodity hardware types

Per the RFI requirements, we used Docker to containerize and make portable our entire application.

  • 3. Ensure that each project has clear, understandable instructions for setting up a local development environment, and that team members can be quickly added or removed from projects

Consult our Development Guide for details on how to set up a local development environment. Adding new team members is easy as all collaboration and communication are consolidated on Github and Slack.

  • 4. Consider open source software solutions at every layer of the stack

Per the RFI requirements, we evaluated open source solutions at every layer of the stock and used them wherever possible. Consult our Development Guide for details about the software we used.

##Key Questions

  1. What is your development stack and why did you choose it?

Consult our Development Guide for these details.

  1. Which databases are you using and why did you choose them?

We decided to use Neo4j as our database solution. We selected it because it is modern, open-source, and saw opportunities to use its graph database characteristics for our prototype.

  1. How long does it take for a new team member to start developing?

Between adding new team members on Github and Slack, and them setting up their development environment by consulting the Development Guide, it takes about a day.

#US Digital Services Playbook

  1. Play 1 Understand what people need
  2. Play 2 Address the whole experience, from start to finish
  3. Play 3 Make it simple and intuitive
  4. Play 4 Build the service using agile and iterative practices
  5. Play 5 Structure budgets and contracts to support delivery
  6. Play 6 Assign one leader and hold that person accountable
  7. Play 7 Bring in experienced teams
  8. Play 8 Choose a modern technology stack
  9. Play 9 Deploy in flexible hosting environment
  10. Play 10 Automate testing and deployments
  11. Play 11 Manage security and privacy through reusable processes
  12. Play 12 Use data to drive decisions
  13. Play 13 Default to open
Clone this wiki locally