How We’re Building Great Digital Products Inside Government
The Mayor’s Office for Economic Opportunity (NYC Opportunity) builds and manages an array of digital products that are used to improve the lives of low-income New Yorkers. The Product Team and Service Design Studio conduct user research, create user experiences, and work closely with internal and external technology teams to prototype, develop, and set ongoing strategy for these digital services.
We have been building our practice over the past couple of years to include ways of working that are newer to government. We are constantly learning and borrowing from colleagues in private and public sector practice, and iterating to meet new needs and challenges. We wrote this short primer on our process to share replicable strategies with other public sector design and development teams.
Nimble in-house team
We have built a nimble in-house team with core skill sets to build and support our product portfolio. Our Product Team currently includes two product managers, two front end developers, a business analyst, a content strategist, and a training and outreach specialist. We currently have a vacancy for a full stack developer. Our Service Design Studio team includes a deputy director, a studio manager, and two designers; these staff are supported by the Studio’s founding partner, Citi Community Development, which provided critical early-stage support and expertise for the creation and launch of the Studio, and continues to be a close collaborator as we work to further institutionalize service design within New York City government. Both teams are overseen by the Director of Design and Product. We also work closely with other teams including our Enterprise Data Solutions Team, Technology Infrastructure Team, and Programs and Evaluation Team.
In building the team, it has worked well to hire the roles in pairs, with two people having similar skills. This allows each role to immediately have a small community of practice. They can bounce ideas off each other, review work, and give input on how to advance ways of working, while also having independent tasks and responsibilities. For example, our two product managers started close together. They each manage separate products, but share best practices in product management and create standardized processes and templates together.
In addition to our full time staff, we have also created an apprenticeship program to build additional capacity and provide experience to current or recently graduated students who are interested in working in government. The apprentices are fully integrated into the process and take on assignments to help us achieve our goals and also build their portfolios. We hope that our apprentices seek roles in the public sector, and regardless are “government smart” design and digital professionals.
We engage strong partners to help us deliver on products. For some projects, we have engaged partners for end-to-end design and development, for other projects, we have engaged partners for development only, or filling gaps in resources. Our partners have helped us learn new tools and processes and influenced our culture while the team was still coming on board. By defining clear roles and scope of work, many of our design and development partners have worked seamlessly into the government process for product delivery.
Working within the enterprise
We partner with the Department of Information Technology & Telecommunications (DoITT) to utilize shared citywide infrastructure. By using shared infrastructure, like Amazon Web Services and WP Engine, we are also able to reduce costs and shorten project timelines as we do not have to account for new infrastructure procurement. This has helped us move products that were previously locally hosted to the cloud.
When making decisions about technology, we also ensure that we build things that can be maintained, often looking to solutions that are already supported and have precedent in the City. Where possible, we look for solutions that can be maintained by non-technical staff, so that our developers can be utilized on the tasks that require their expertise.
We follow security policies and guidelines established by DoITT to ensure that our products are secure and protect the privacy of our users.
We have introduced Agile methods into our process. This includes whole team daily stand-up where we share what we’re working on, what we need help with, and any big announcements. Daily face time with every team member ensures that we’re always communicating and sharing updates.
We also use a sprint-based methodology to break development into 1–2 week phases with discrete tasks. This helps us break larger releases into manageable chunks of work, see and respond to completed or in-progress features and reprioritize if a task takes more or less time than expected. Whether working on a new product, conducting regular maintenance or updating content, the sprints help keep us on track.
We also continuously iterate on our process. At the end of each sprint, the product manager hosts a “retrospective” for all involved team members where each person shares ideas for what the team should keep doing, stop doing, and start doing to better communicate and collaborate. The product manager and team work to implement that feedback into the next sprint with the focus of continual learning and improvement.
Incorporating design and user experience at every stage
Human-centered design is at the core of how we work. In addition to running our software development in sprints, we also incorporate design sprints. When working on a new product or feature, this may look like an initial design discovery sprint with designers in the field talking to residents and other stakeholders about their needs, followed by a user experience and prototype sprint where designers and developers turn what they’ve heard into a mockup and prototype, followed by testing that prototype in the field with users. All team members participate and have the opportunity to go out into the field. It’s important that everyone building a product knows our users and their needs.
Once we move on from prototyping, we also incorporate testing with users on production-ready code to ensure that we did not make assumptions during final design and development tweaks. We build in time before launch to make changes where we can, and add other items to our “backlog” where we track all open issues and ideas for future development.
We conduct accessibility testing on our products to ensure they meet the Web Content Accessibility Guidelines 2.0 (WCAG). We also conduct rigorous system testing to ensure there are no defects in our released product.
We continue to incorporate usability testing after we’ve launched a product. We’re constantly looking to see if what we built is the right thing, if our users’ needs have changed, and if there are expanded possibilities for a new feature.
Crafting the message
We also use a human-centered process to create the content within our products. This can start with activities like “card sorting” where we ask users to sort themes and topics into groups and levels of importance. We also test out different terminology and overall readability within our prototypes to see what resonates, including testing in multiple languages.
We have established a content workflow to ensure our messaging meets a high bar. The content within the Benefits & Programs API follows a rigorous editorial process including review with the relevant government agency partner, plain language edits, and translation into 10 languages.
Using data and metrics
We use data and metrics to understand our products at scale. This includes seeing how our products are being used by thousands of users, setting goals for where we’d like to see behavior change, and making decisions about features and enhancements. We are able to use data to pinpoint where usability issues may be occurring and then do follow up testing and design work to understand how we can improve the user experience. We follow up by measuring change in the enhanced product.
We create monthly dashboard reports that help us look at product performance over time and communicate to our stakeholders where we’re making progress or have challenges.
A culture of openness
We utilize open source tools, open source our code, and contribute to open data. When possible, we use open source tools such as WordPress and the Drools Rules Engine. Where appropriate, we open our code base and borrow from other open source code. ACCESS NYC is fully open source, and we borrowed from the United States Web Design System to establish the pattern library that styles it. The Benefits & Programs API is part of NYC Open Data and is available to any resident, developer, or government agency who would like to use the content within a product.
Tracking process and progress
Our team utilizes a suite of digital tools to help manage our process and track our progress. We use Jira to manage all software development sprints and tasks. We use Asana to manage design and business tasks and deadlines. We have a cross-team Slack that helps us stay in constant communication on projects, build transparency across the team, and contribute to overall team dynamics. We use Gather Content to manage our content editorial process, including collaborating with stakeholders and publishing the content to our products. The team has a willingness to try new tools to increase efficiency.
Our team, processes, and tools are delivering great success for New York City residents. We hope that sharing this primer is helpful to you in your work.
- Build a nimble, in-house team with core skill sets, ideally hired in pairs.
- Hire students and recent graduates as apprentices who are incorporated into the process.
- Engage strong partners to help deliver on products.
- Work within the enterprise to utilize shared citywide infrastructure, build things that can be maintained, and follow security policies and guidelines.
- Host a daily stand-up.
- Use a sprint-based methodology.
- Continuously iterate on the process.
- Put human-centered design at the core of the process, including design sprints and content creation.
- Have all team members go out into the field.
- Test production-ready code with users, for accessibility, and for any defects.
- Continue to test with users after a product has launched.
- Use data and metrics to understand products at scale.
- Utilize open source tools, develop open source code, and contribute to open data.
- Harness a suite of digital tools to help manage process and track progress.
What’s working in your government?
Leave us a comment below with what’s working to build digital products in your government or with any questions you may have for us. Follow updates on our products at @NYCOpportunity.
👏 for our current Product and Service Design Studio Team Members: Darnell Sessoms, Song Hia, Hilina Mohammed, Devon Hirth, Kimberly Peng, Ashley Cortez, Laura Kerry, Mari Nakano, Emily Herrick, Tim Reitzes, Caroline Bauer and Ariel Kennan. And our Winter-Spring 2018 Apprentices: Leonore Snoek, Nichole Aquino, Elizabeth Ferguson, and Max Pekarsky.