Attention!
The content on this site is a materials pilot. It represents neither changes to existing policy nor pending new policies. THIS IS NOT OFFICIAL GUIDANCE.
Selecting open source
Iterative development
Ask how development choices are made and if open source or reusable options are considered.
- Bad: The state can't tell you how they make/made their decisions.
- Meh: The state can tell you how they made their decisions, but did not consider open source options.
- Good: The state can show you how/why they make their decisions and are using open source when possible.
What's this about?
Open source software is software for which the code is freely available, meaning that the code or the "source" is "open". Systems are built for the state with taxpayer dollars, so states should own and have access to the software they have paid for. This lesson is about how decisions are made in selecting software systems and provides examples of free and open software that you might keep your eyes open for.
Lesson outline
- What is open source? (5m, solo)
- The politics of open source (30m solo, 30m pair)
- Keystones (15m, solo)
- CC0 1.0 Universal Summary
- A smattering of open (10m, solo)
- Sharing experience (30m, small group)
What is open source? (5m, solo)
This is a deceivingly complex question and one with a rich history in the space of technology, law, and politics. Some of the complexity is necessary in our case, because we deal with people and money. Despite the amount of money involved, we get law and politics for free (We, the authors of this content, are neither lawyers nor politicians. You are forewarned.)!
Let’s start with a 5-minute video.
This is an overview to provide context. We don’t anticipate that you will need to make a lot of notes here, but you might jot down words that sound like good vocabulary to have and phrases or concepts that you might want to follow up on and ask questions about later.
The politics of open source (30m solo, 30m pair)
Did we mention law and politics?
This is a video of Richard Stallman speaking on open source software at a TEDx event in Geneva in 2014. Stallman is considered both a founding and a divisive figure in the world of free and open software — he certainly is clear and unabashed in his views and opinions. By sharing Stallman’s talk with you, we are not advocating his positions so much as… challenging you with them.
Put another way: he unapologetically believes firmly in truly free and open access to everything in his technology.
(30m timer)
Find a partner and find a 30m block of time that the two of you can get together to watch and chat.
- Initial impressions?
- What things did Stallman say that you found yourself agreeing with? Disagreeing with?
- Did you see parallels to the work you do with states and vendors? How?
- What challenged you most about this presentation? “Challenge” could mean everything from “this concept really made me think” to “this thing he said really made me angry.”
This conversation is part of your preparation for coming together as a larger group to discuss the notion of free and open-source software (“FOSS”), government contracting, and the work of SOs in managing The People’s investment in software and IT.
Keystones (15m, solo)
You’ve had a conversation. You’ve possibly ranted about Stallman. Perhaps you agreed in places. We do want to highlight an idea here, however, as a takeaway that we think you should carry with you. You might agree, you might not, but we believe (at the least) you should continue to wrestle with this idea.
Stallman suggests that free software—software for which we have access to the source and can modify or use in perpetuity without paying a licensing fee for the privilege—is a fundamental right in the world we live in today. How do we feel about that?
To ground this idea, consider the following.
The website you are reading right now is free and open content. This content was developed by content specialists and engineers at 18F, a unit housed within the Technology Transformation Services (TTS) in the General Services Administration (GSA). It was developed for you, State Officers, to support you in your work shepherding the people’s resources as Medicare and Medicaid IT systems are developed and deployed at the state level across the nation.
Almost everything that 18F does is free and open. Let’s look at the LICENSE that is associated with this content:
License
As a work of the United States government, this project is in the public domain within the United States of America.
Additionally, we waive copyright and related rights in the work worldwide through the CC0 1.0 Universal public domain dedication.
CC0 1.0 Universal Summary
This is a human-readable summary of the Legal Code (read the full text).
No Copyright
The person who associated a work with this deed has dedicated the work to the public domain by waiving all of their rights to the work worldwide under copyright law, including all related and neighboring rights, to the extent allowed by law.
You can copy, modify, distribute, and perform the work, even for commercial purposes, all without asking permission.
From a legal perspective, that’s pretty serious stuff. It isn’t that this is just free to use (but you can’t modify it). This license lets anyone in the world, anywhere, at any time, use this content in any way they want.
Why?
The taxpayer paid for this content. It is theirs. And because there is no way to legally license this content to The People, but we want to make sure that roughly 330M people have free access to the work they paid for, we do the next best thing: we set the work free for anyone, anywhere.
There are many things that could happen with this content. It could be repackaged and resold by a vendor (the license allows that). It could be modified and used by other government agencies at the federal, state, and local level as part of their own training and contracting process (the license allows that). It could be translated into other languages and used by other governments around the world to shape their contracting and software management practices (the license allows that).
Or it might be that SOs at CMS are the only people to ever use this content. That would be wonderful, because that is who this content was developed for. But it is important to note that the work belongs to you (and the rest of the world) and no one can take it away from you.
A smattering of open (10m, solo)
There are many open tools in many spaces. We’re going to close this unit by highlighting a few so that you are aware of the breadth and depth of open software and what the implications are for different market segments (and the work that you do) when states are considering technologies for their IT implementations.
Category | Tool | Notes |
Documents | Libre Office | Many government processes require work to be completed using proprietary/closed software. This means that someone must purchase and license a software product to complete these processes. There are free and open word processors, spreadsheets, and presentation tools — Libre Office is an example. Question: Why should someone have to pay a private company for software to interact with public services? |
Forms | ? | Many forms are delivered as PDFs. The PDF standard is not free and open. There aren’t good, free, and open tools for working with PDFs on all major operating systems. Why do we have critical forms and processes that rely on closed infrastructure? |
Content management | Drupal, Django, Federalist | When we talk about “content management,” we are typically referring to tools that let some people write content, others edit, and yet another group manage the workflow from inception to publication (often online). Fortunately, there are many free-and-open solutions in this space and they are often widely used in government. Federalist is an example of a GSA-hosted solution for content that is used by many agencies. |
Image Manipulation | The Gimp | Designers often use graphics programs to create and edit images for things like brochures or websites. The Gimp (which stands for the GNU Image Manipulation Program) is a free-and-open tool that supports this kind of work. It is often used in place of tools (like Photoshop) that cost thousands of dollars (or can cost hundreds of dollars per-user-per-month). |
Web hosting | Nginx, Apache | Most of the web is already delivered by free and open webservers. There are proprietary solutions, but the web was built on free and open standards and the servers that power it have been around for decades. The site you are viewing now is served by free software. |
Case management | Camunda | There are several providers of case management solutions in the world. Many of them will charge large sums of money for customization and their services and at the end of the process, your data is owned by the provider and locked away in a proprietary database. There are free-and-open case management tools that use open standards for managing and storing information. And there are vendors and service providers who can help customize and stand up these tools. Yet many states still choose to go with vendors who leverage closed, proprietary systems and services. |
Content hosting | Linux, cloud.gov | It is possible to set up servers on proprietary operating systems. However, many “cloud infrastructure” providers are actually selling provisioned access to Linux servers. They take a free operating system (Linux) and sell the services and support around making it easy to use virtually and at a distance. (This is the common business model around free and open software: the software is free and you sell support and services.) Red Hat, as a company, grew from a few people to a multi-billion dollar company (and was acquired subsequently by IBM) using exactly this model. |
APIs and protocols | REST, HTTP, etc. | When we want one piece of code to talk to another piece of code, we use an API (“application program interface”) or protocol of some sort. The important thing to make sure of regarding APIs and protocols is that they are open and well-documented. An example might be a case management system that provides an API for adding, removing, and updating client records. When an application has an open API, it lets future programmers more easily extend, improve, and integrate with the software or service. It is possible for vendors to make APIs and protocols closed and proprietary, which makes it more difficult for future improvements and integrations to take place (unless, of course, the vendor is the one to do it). Proprietary protocols and APIs are a common way to “lock in” a state. |
Databases | MariaDB, PostreSQL, MongoDB, CockroachDB, MinIO | There are ways to store data that are closed and proprietary. However, databases (as a technology) have been around for about 50 years. Free and open database servers are not just commonplace, they are what large cloud providers have built their business on (for example, if you use GovCloud to create a database, it will be a free and open database system. You are paying for support and services for the database). In the year 2020 and beyond, there is little reason to contract for proprietary database technologies, when so many options and so much expertise exists around free and open tooling. |
Sharing experience (30m, small group)
Meet with your small group and connect what you learned in this lesson to situations you’ve seen with your state projects. Consult the notes you took throughout the lesson and try to link them to a story that you can tell about a particular project. It’s probably useful to do some brainstorming on this before you meet with your small group to trade stories.
When you get together with your small group:
- Share your stories with each other.
- Figure out which ones are the best candidates for a case study or use case that would be helpful to share with other state officers.
- As a group, choose useful stories and write notes on how they link up with the concepts shared.
- Include in your notes:
- When did this story take place?
- What were the events or background leading up to this story?
- How did this story demonstrate an ideal or non-ideal situation?
- What specific principles from the lesson does this story illustrate?
- If the story shows an ideal, what were the conditions that made it work? How did it fit with the principles shared in the lesson?
- If the story shows a non-ideal, what could have changed to make it better?
- Include in your notes:
- Share these notes with the larger group when you meet.
- After discussion with the larger group, document these stories and their connections to the lesson to help other state officers understand how this lesson’s concepts apply to their work.
Discussion (1h, group)
These questions are all meant to help you get at this one dimension of the rubric:
Ask how development choices are made and if open source or reusable options are considered.
- Bad: The state can't tell you how they make/made their decisions.
- Meh: The state can tell you how they made their decisions, but did not consider open source options.
- Good: The state can show you how/why they make their decisions and are using open source when possible.
Come together with your colleagues for a conversation.
You can click on the timers below to help keep yourselves on track.
- Check in. (5m timer) First, check in with each-other. How is everyone doing? Take a moment to share something positive from the week, either at work or at home.
- Understand. (20m timer) Next, take some time to discuss points where you were confused or questioned your material. Do you feel you have a good understanding of what it means for a piece of software or system to be “free and open?”
- Reflecting. (20m timer) Requiring open licensing can be a fraught process in government work, as there may be legal hurdles in the way. That particular set of challenges aside, what do you see as benefits to moving towards open vs. proprietary? What drawbacks and challenges could you foresee? From the perspective of users and consumers of these services, how might openness benefit them? Likewise, are there benefits to The People when systems are closed or proprietary?
- Questioning. (10m timer) Closing out your conversation, the question becomes one of action: what can you do? In terms of ongoing projects, is it possible to encourage a move to open? As new contracts are developed, what steps might you take?
In the guides
This lesson is the beginning of a journey. If you're interested in learning more, there's material in the 18F Derisking Guide that you'll want to check out.
From the Federal Field Guide:
From the State Software Budgeting Handbook:
- Product ownership
- Procure services, not software
- Beware customized commercial software
- Limit total spending
Wrapup (5m, solo)
Take a few minutes to share your reflections on this lesson.