Welcome

This process code introduces a digital-native approach to procurement, while maintaining the integrity of a legitimate, fair, transparent and objective process. It is important because it empowers public sector employees to be in control of how their digital tools are designed, purchased and used.

You are here because you’ve discovered a challenge or an opportunity in the public sector, and you suspect that software might help. …Now what? Well, you are in the right place.

Introduction

This document is a guide for procuring existing software, building software in-house, or working with a vendor on custom software. It walks through government contracting step-by-step, aligning legitimate public procurement with the cutting edge best practices of software development. It is not an inflexible legal document. Rather, it’s a set of guidelines and best practices, with links to additional resources.

Because every jurisdiction and every software process is unique, no guide can be one-size-fits-all. That’s why we are hosting this online, in a format that can be revised and adapted over time – by you, the expert on the ground. It’s a new way of creating and sharing best practices across the public sector entities – we call it a “process code.”

What is Process Code

Every day, civil servants around the world carry out public processes. And as they face increasingly complex issues – challenges like effective COVID response, public WiFi installation, or software procurement – they need new approaches to those existing public processes.

Cities that are using new approaches can learn from each other, adapt what others have done, and create best practices using a shared online document – what we call “process code.” We invite you to test it, revise it, and expand it. Welcome to a growing community of cities, states and provinces who believe that software can serve the public better! Contribute to this document here. Read more about Process Code here.

Who should use this Process Code

Several people from different departments should be involved in a software design and procurement process – from legal counsel to IT to the end users themselves – each bringing their own expertise and perspective. This guide is intended for all of them, but each will have a more prominent role in certain phases.

There will also be a single person who follows the process from beginning to end: the “product owner.” Product owners are expert generalists who deeply understand end users and their needs, work across different departments, ask good questions, and carry the project from start to finish. The product owner should read this whole guide, and be comfortable with each step of the process, while specialists can read the introduction and basic principles, then focus on the particular step that is most relevant to them.

We Want Your Feedback

We encourage your feedback and suggestions on these documents. Content and feature suggestions and discussions are welcome via GitHub Issues. You may also propose changes to the content directly by submitting a pull request.

You don't need to install any software to suggest a change. To propose a change from your browser, select a phase in the _phases folder. You can use GitHub's in-browser editor to edit files and submit a "pull request" for your changes to be merged into the document.

Changes will be reviewed by staff at the Foundation for Public Code, to ensure that the content is accurate and that the change supports the purpose and vision of the process code initiative.

If you would like to see and discuss the changes that other people have proposed, visit the "Pull Requests" section and browse the issues.

Technical Details

The Process Code is compiled from Markdown files using Jekyll. To propose a specific change, you can submit a pull request with your change to one of these source Markdown files. The Phases from the Process Code are available in the _phases folder.

You can also use Github's in-browser editing feature to make an edit to one of these Markdown files and submit your change for consideration without needing to install any additional software.

Running the Site Locally

To run the site locally on your own computer (most helpful for previewing your own changes), you will need to install Jekyll and other dependencies:

  1. If you don't already have Ruby and Bundler installed, follow the first two steps in these Jekyll installation instructions.
  2. Next, fork this repository and clone it on your computer.
  3. Navigate to the folder on your computer, and run the command bundle install at the command line prompt.

To run the site locally, run jekyll serve --watch, then visit http://localhost:4000/ in your browser to preview the site.

Editing the Stylesheets

This project uses Sass for managing its style sheets. These styles are defined in the styles.scss file. We use Jekyll's native SASS support to auto-generate the required CSS when you run the site locally, as described above.

Credits

This repository is forked from the US Digital Services Playbook.

License

We waive copyright and related rights in the work worldwide through the CC0 1.0 Universal public domain dedication.