Digital Services Playbook

The American people expect to interact with government through digital channels such as websites, email, and mobile applications. By building digital services that meet their needs, we can make the delivery of our policy and programs more effective.

Today, too many of our digital services projects do not work well, are delivered late, or are over budget. To increase the success rate of these projects, the U.S. Government needs a new approach. We created a playbook of 13 key “plays” drawn from successful practices from the private sector and government that, if followed together, will help government build effective digital services.

Understand What People Need

We must begin digital projects by exploring and pinpointing the needs of the people who will use the service, and the ways the service will fit into their lives. Whether the users are members of the public or government employees, policy makers must include real people in their design process from the beginning. The needs of people — not constraints of government structures or silos — should inform technical and design decisions. We need to continually test the products we build with real people to keep us honest about what is important.

Key Questions
  1. Who are your primary users?
  2. What user needs will this service address?
  3. Why does the user want or need this service?
  4. Which people will have the most difficulty with the service?
  5. Which research methods were used?
  6. What were the key findings?
  7. How were the findings documented? Where can future team members access the documentation?
  8. How often are you testing with real people?
Checklist

Address the Whole Experience, from Start to Finish

We need to understand the different ways people will interact with our services, including the actions they take online, through a mobile application, on a phone, or in person. Every encounter — whether it’s online or offline — should move the user closer towards their goal.

Key Questions
  1. What are the different ways (both online and offline) that people currently accomplish the task the digital service is designed to help with?
  2. Where are user pain points in the current way people accomplish the task?
  3. Where does this specific project fit into the larger way people currently obtain the service being offered?
  4. What metrics will best indicate how well the service is working for its users?
Checklist

Make it Simple and Intuitive

Using a government service shouldn’t be stressful, confusing, or daunting. It’s our job to build services that are simple and intuitive enough that users succeed the first time, unaided.

Key Questions
  1. What primary tasks are the user trying to accomplish?
  2. Is the language as plain and universal as possible?
  3. What languages is your service offered in?
  4. If a user needs help while using the service, how do they go about getting it?
  5. How does the service’s design visually relate to other government services?
Checklist

Structure Budgets and Contracts to Support Delivery

To improve our chances of success when contracting out development work, we need to work with experienced budgeting and contracting officers. In cases where we use third parties to help build a service, a well-defined contract can facilitate good development practices like conducting a research and prototyping phase, refining product requirements as the service is built, evaluating open source alternatives, ensuring frequent delivery milestones, and allowing the flexibility to purchase cloud computing resources.

The TechFAR Handbook provides a detailed explanation of the flexibilities in the Federal Acquisition Regulation (FAR) that can help agencies implement this play.

Key Questions
  1. What is the scope of the project? What are the key deliverables?
  2. What are the milestones? How frequent are they?
  3. What are the performance metrics defined in the contract (e.g., response time, system uptime, time period to address priority issues)?
Checklist

Assign One Leader and Hold that Person Accountable

There must be a single product owner who has the authority and responsibility to assign tasks and work elements; make business, product, and technical decisions; and be accountable for the success or failure of the overall service. This product owner is ultimately responsible for how well the service meets the needs of its users, which is how a service should be evaluated. The product owner is responsible for ensuring that features are built and managing the feature and bug backlogs.

Key Questions
  1. Who is the product owner?
  2. What organizational changes have been made to ensure the product owner has sufficient authority over and support for the project?
  3. What does it take for the product owner to add or remove a feature from the service?
Checklist

Bring in Experienced Teams

We need talented people working in government who have experience creating modern digital services. This includes bringing in seasoned product managers, engineers, and designers. When outside help is needed, our teams should work with contracting officers who understand how to evaluate third-party technical competency so our teams can be paired with contractors who are good at both building and delivering effective digital services. The makeup and experience requirements of the team will vary depending on the scope of the project.

Checklist

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.

Key Questions
  1. What is your development stack and why did you choose it?
  2. Which databases are you using and why did you choose them?
  3. How long does it take for a new team member to start contributing?
Checklist

Deploy in a Flexible Hosting Environment

Our services should be deployed on flexible infrastructure, where resources can be provisioned in real-time to meet spikes in traffic and user demand. Our digital services are crippled when we host them in data centers that market themselves as “cloud hosting” but require us to manage and maintain hardware directly. This outdated practice wastes time, weakens our disaster recovery plans, and results in significantly higher costs.

Key Questions
  1. Where is your service hosted?
  2. What hardware does your service use to run?
  3. What is the demand or usage pattern for your service?
  4. What happens to your service when it experiences a surge in traffic or load?
  5. How much capacity is available in your hosting environment?
  6. How long does it take you to provision a new resource, like an application server?
  7. How have you designed your service to scale based on demand?
  8. How are you paying for your hosting infrastructure (e.g., by the minute, hourly, daily, monthly, fixed)?
  9. Is your service hosted in multiple regions, availability zones, or data centers?
  10. In the event of a catastrophic disaster to a datacenter, how long will it take to have the service operational?
  11. What would be the impact of a prolonged downtime window?
  12. What data redundancy do you have built into the system, and what would be the impact of a catastrophic data loss?
  13. How often do you need to contact a person from your hosting provider to get resources or to fix an issue?
Checklist

Automate Testing and Deployments

Today, developers write automated scripts that can verify thousands of scenarios in minutes and then deploy updated code into production environments multiple times a day. They use automated performance tests which simulate surges in traffic to identify performance bottlenecks. While manual tests and quality assurance are still necessary, automated tests provide consistent and reliable protection against unintentional regressions, and make it possible for developers to confidently release frequent updates to the service.

Key Questions
  1. What percentage of the code base is covered by automated tests?
  2. How long does it take to build, test, and deploy a typical bug fix?
  3. How long does it take to build, test, and deploy a new feature into production?
  4. How frequently are builds created?
  5. What test tools are used?
  6. Which deployment automation or continuous integration tools are used?
  7. What is the estimated maximum number of concurrent users who will want to use the system?
  8. How many simultaneous users could the system handle, according to the most recent capacity test?
  9. How does the service perform when you exceed the expected target usage volume? Does it degrade gracefully or catastrophically?
  10. What is your scaling strategy when demand increases suddenly?
Checklist

Manage Security and Privacy through Reusable Processes

Our digital services have to protect sensitive information and keep systems secure. This is typically a process of continuous review and improvement which should be built into the development and maintenance of the service. At the start of designing a new service or feature, the team lead should engage the appropriate privacy, security, and legal officer(s) to discuss the type of information collected, how it should be secured, how long it is kept, and how it may be used and shared. The sustained engagement of a privacy specialist helps ensure that personal data is properly managed. In addition, a key process to building a secure service is comprehensively testing and certifying the components in each layer of the technology stack for security vulnerabilities, and then to re-use these same pre-certified components for multiple services.

The following checklist provides a starting point, but teams should work closely with their privacy specialist and security engineer to meet the needs of the specific service.

Key Questions
  1. Does the service collect personal information from the user? How is the user notified of this collection?
  2. Does it collect more information than necessary? Could the data be used in ways an average user wouldn’t expect?
  3. How does a user access, correct, delete, or remove personal information?
  4. Will any of the personal information stored in the system be shared with other services, people, or partners?
  5. How and how often is the service tested for security vulnerabilities?
  6. How can someone from the public report a security issue?
Checklist

Use Data to Drive Decisions

At every stage of a project, we should measure how well our service is working for our users. This includes measuring how well a system performs and how people are interacting with it in real-time. Our teams and agency leadership should carefully watch these metrics to find issues and identify which bug fixes and improvements should be prioritized. Along with monitoring tools, a feedback mechanism should be in place for people to report issues directly.

Key Questions
  1. What are the key metrics for the service?
  2. How have these metrics performed over the life of the service?
  3. Which system monitoring tools are in place?
  4. What is the targeted average response time for your service? What percent of requests take more than 1 second, 2 seconds, 4 seconds, and 8 seconds?
  5. What is the average response time and percentile breakdown (percent of requests taking more than 1s, 2s, 4s, and 8s) for the top 10 transactions?
  6. What is the volume of each of your service’s top 10 transactions? What is the percentage of transactions started vs. completed?
  7. What is your service’s monthly uptime target?
  8. What is your service’s monthly uptime percentage, including scheduled maintenance? Excluding scheduled maintenance?
  9. How does your team receive automated alerts when incidents occur?
  10. How does your team respond to incidents? What is your post-mortem process?
  11. Which tools are in place to measure user behavior?
  12. What tools or technologies are used for A/B testing?
  13. How do you measure customer satisfaction?
Checklist

Default to Open

When we collaborate in the open and publish our data publicly, we can improve Government together. By building services more openly and publishing open data, we simplify the public’s access to government services and information, allow the public to contribute easily, and enable reuse by entrepreneurs, nonprofits, other agencies, and the public.

Key Questions
  1. How are you collecting user feedback for bugs and issues?
  2. If there is an API, what capabilities does it provide? Is it versioned? Who uses it? How is it documented?
  3. If the codebase has not been released under an open source license, explain why.
  4. What components are made available to the public as open source?
  5. What datasets are made available to the public?
Checklist