Open source is interoperable with smarter government at the CFPB

The Consumer Financial Protection Bureau has aligned its open source policy with its mission.

CFPBWhen you look at the government IT landscape of 2012, federal CIOs are being asked to address a lot of needs. They have to accomplish your mission. They need to be able to scale initiatives to tens of thousands of agency workers. They’re under pressure to address not just network security but web security and mobile device security. They also need to be innovative, because all of this is supported by the same of less funding. These are common requirements in every agency.

As the first federal “start-up agency” in a generation, some of those needs at the Consumer Financial Protection Bureau (CFPB) are even more pressing. On the other hand, the opportunity for the agency to be smarter, leaner and “open from the beginning” is also immense.

Progress establishing the agency’s infrastructure and culture over the first 16 months has been promising, save for larger context of getting a director at the helm. Enabling open government by design isn’t just a catchphrase at the CFPB. There has been a bold vision behind the CFPB from the outset, where a 21st century regulator would leverage new technologies to find problems in the economy before the next great financial crisis escalates.

In the private sector, there’s great interest right now is finding actionable insight in large volumes of data. Making sense of big data is increasingly being viewed as a strategic imperative in the public sector as well. Recently, the White House put its stamp on that reality with a $200 million big data research and development initiative, including a focus on improving the available tools. There’s now an entire ecosystem of software around Hadoop, which is itself open source code. The problem that now exists in many organizations, across the public and private sector, is not so much that the technology to manipulate big data isn’t available: it’s that the expertise to apply big data doesn’t exist in-house. The data science talent shortage is real.

People who work and play in the open source community understand the importance of sharing code, especially when that action leads to improving the code base. That’s not necessarily an ethic or a perspective that has been pervasive across the federal government. That does seem to be slowly changing, with leadership from the top: the White House used Drupal for its site and has since contributed modules back into the open source community, including one that helps with 508 compliance.

In an in-person interview last week, CFPB CIO Chris Willey (@ChrisWilleyDC) and acting deputy CIO Matthew Burton (@MatthewBurton) sat down to talk about the agency’s new open source policy, government IT, security, programming in-house, the myths around code-sharing, and big data.

The fact that this government IT leadership team is strongly supportive of sharing code back to the open source community is probably the most interesting part of this policy, as Scott Merrill picked up in his post on the CFPB and Github.

Our interview follows.

In addition to being the leader of the CFPB’s development team over the past year and half, Burton was just named acting deputy chief information officer. What will that mean?

Willey: He hasn’t been leading the software development team the whole time. In fact, we only really had an org chart as of October. In the time that he’s been here, Matt has led his team to some amazing things. We’re going to talk about a one of them today, but we’ve also got a great intranet. We’ve got some great internal apps that are being built and that we’ve built. We’ve unleashed one version of the supervision system that helps bank examiners do their work in the field. We’ve got a lot of faith he’s going to do great things.

What it actually means is that he’s going to be backing me up as CIO. Even though we’re a fairly small organization, we have an awful lot going on. We have 76 active IT projects, for example. We’re just building a team. We’re actually doubling in size this fiscal year, from about 35 staff to 70, as well as adding lots of contractors. We’re just growing the whole pie. We’ve got 800 people on board now. We’re going to have 1,100 on board in the whole bureau by the end of the fiscal year. There’s a lot happening, and I recognize we need to have some additional hands and brain cells helping me out.

With respect to building an internal IT team, what’s the thinking behind having technical talent inside of an agency like this one? What does that change, in terms of your relationship with technology and your capacity to work?

Burton: I think it’s all about experimentation. Having technical people on staff allows an organization to do new things. I think the way most agencies work is that when they have a technical need, they don’t have the technical people on staff to make it happen so instead, that need becomes larger and larger until it justifies the contract. And by then, the problem is very difficult to solve.

By having developers and designers in-house, we can constantly be addressing things as they come up. In some cases, before the businesses even know it’s a problem. By doing that, we’re constantly staying ahead of the curve instead of always reacting to problems that we’re facing.

How do you use open source technology to accomplish your mission? What are the tools you’re using now?

Willey: We’re actually trying to use open source in every aspect of what we do. It’s not just in software development, although that’s been a big focus for us. We’re trying to do it on the infrastructure side as well.

As we look at network and system monitoring, we look at the tools that help us manage the infrastructure. As I’ve mentioned in the past, we are 100% in the cloud today. Open source has been a big help for us in giving us the ability to manipulate those infrastructures that we have out there.

At the end of the day, we want to bring in the tools that make the most sense for the business needs. It’s not about only selecting open source or having necessarily a preference for open source.

What we’ve seen is that over time, the open source marketplace has matured. A lot of tools that might not have been ready for prime time a year ago or two years ago are today. By bringing them into the fold, we potentially save money. We potentially have systems that we can extend. We could more easily integrate with the other things that we have inside the shop that maybe we built or maybe things that we’ve acquired through other means. Open source gives us a lot of flexibility because there’s a lot of opportunities to do things that we might not be able to do with some proprietary software.

Can you share a couple of specific examples of open source tools that you’re using and what you actually use them for within mission?

Willey: On network monitoring, for example, we’re using ZFS, which is an open source monitoring tool. We’ve been working with Nagios as well. Nagios, we actually inherited from Treasury — and while Treasury’s not necessarily known for its use of open source technologies, it uses that internally for network monitoring. Splunk is another one that we have been using for web analysis. [After the interview, Burton and Willey also shared that they built the CFPB’s intranet on MediaWiki, the software that drives Wikipedia.]

Burton: On the development side, we’ve invested a lot in Django and WordPress. Our site is a hybrid of them. It’s WordPress at its core, with Django on top of that.

In November of 2010, it was actually a few weeks before I started here, Merici [Vinton] called me and said, “Matt, what should we use for our website?”

And I said, “Well, what’s it going to do?”

And she said, “At first, it’s going to be a blog with a few pages.”

And this website needed to be up and running by February. And there was no hosting; there was nothing. There were no developers.

So I said, “Use WordPress.”

And by early February, we had our website up. I’m not sure that would have been possible if we had to go through a lengthy procurement process for something not open source.

We use a lot of jQuery. We use Linux servers. For development ops, we use Selenium and Jenkins and Git to manage our releases and source code. We actually have GitHub Enterprise, which although not open source, is very sharing-focused. It encourages sharing internally. And we’re using GitHub on the public side to share our code. It’s great to have the same interface internally as we’re using externally.

Developers and citizens alike can go to github.com/cfpb and see code that you’ve released back to the public and for other federal agencies. What projects are there?

Burton: These are the ones that came up between basic building blocks. They range from code that may not strike an outside developer as that interesting but that’s really useful for the government, all the way to things that we created from scratch that are very developer-focused and are going to be very useful for any developer.

On the first side of that spectrum, there’s an app that we made for transit subsidy involvement. Treasury used to manage our transit subsidy balances. That involved going to a webpage that you would print out, write into with a pen and then fax to someone.

Willey: Or scan and email it.

Burton: Right. And then once you’d had your supervisor sign it, faxed it over to someone, eventually, several weeks later, you would get your benefits.
We started to take over that process and the human resources office came to us and asked, “How can we do this better?”

Obviously, that should just be a web form that you type into, that will auto fill any detail it knows about you. You press submit and it goes into the database, which goes directly to the DOT [Department of Transportation]. So that’s what we made. We demoed that for DOT and they really like it. USAID is also into it. It’s encouraging to see that something really simple could prove really useful for other agencies.

On the other side of the spectrum, we use a lot of Django tools. As an example, we have a tool we just released through our website called “Ask CFPB.” It’s a Django-based question and answer tool, with a series of questions and answers.

Now, the content is managed in Django. All of the content is managed from our staging server behind the firewall. When we need to get that content, we need to get the update from staging over to production.

Before, what we had to do was pick up the entire database, copy it and them move it over to production, which was kind of a nightmare. And there was no Django tool for selectively moving data modifications.

So we sat there and we thought, “Oh, we really need something to do that because we’re going to be doing a lot of that. We can’t be copying the database over every time we need to correct a copy. So two of our developers developed a Django app called “Nudge.”
Basically, you go into a Django and if you’ve ever seen a Django admin, you just go into it and assess, “Hey, here’s everything that’s changed. What do you want to move over?”

You can pick and choose what you want to move over and, with the click of a button, it goes to production. I think that’s something that every Django developer will have a use for if they have a staging server.

In a way, we were sort of surprised it didn’t exist. So, we needed it. We built it. Now we’re giving it back and anybody in the world can use it.

You mentioned the cloud. I know that CFPB is very associated with Treasury. Are you using Treasury’s FISMA moderate cloud?

Willey: We have a mix of what I would say are private and public clouds. On the public side, we’re using our own cloud environments that we have established. On the private side, we are using Treasury for some of our apps. We’re slowly migrating off of treasury systems onto our own cloud infrastructure or our own cloud.

In the case of email, for example, we’re looking at email as a service. So we’ll be looking at Google, Microsoft and others just to see what’s out there and what we might be able to use.

Why is it important for the CFPB to share code back to the public? And who else in the federal government has done something like this, aside from the folks at the White House?

Burton:: We see it the same way that we believe the rest of the open source community sees it: The only way this stuff is going to get better and become more viable is if people share. Without that, then it’ll only be hobbyists. It’ll only be people who build their own little personal thing. Maybe it’s great. Maybe it’s not. Open source gets better by the community actually contributing to it. So it’s self-interest in a lot of ways. If the tools get better, then what we have available to us is, therefore, gets better. We can actually do our mission better.

Using the transit subsidy enrollment application example, it’s also an opportunity for government to help itself, for one agency to help another. We’ve created this thing. Every federal agency has a transit subsidy program. They all need to allow people to enroll in it. Therefore, it’s immediately useful to any other agency in the federal government. That’s just a matter of government improving its own processes.

If one group does it, why should another group have to figure it out or have to pay lots of money to have it figured out? Why not just share it internally and then everybody benefits?

Why do you think it’s taken until 2012 to have that insight actually be made into reality in terms of a policy?

Burton: I think to some degree, the tools have changed. The ability to actually do this easily is a lot better now than it was even a year or two ago. Government also traditionally lags behind the private sector in a lot of ways. I think that’s changing, too. With this administration in particular, I think what we’ve seen is that government has started to become a little bit on parity with the private sector, including some of the thinking around how to use technology to improve business processes. That’s really exciting. And I think as a result, there are a lot of great people coming in as developers and designers who want to work in the federal government because they see that change.

Willey: It’s also because we’re new. There are two things behind that. First, we’re able to sort of craft a technology philosophy with a modern perspective. So we can, from our founding, ask “What is the right way to do this?” Other agencies, if they want to do this, have to turn around decades of culture. We don’t have that burden. I think that’s a big reason why we’re able to do this.

The second thing is a lot of agencies don’t have the intense need that we do. We have 76 projects to do. We have to use every means available to us.

We can’t say, “We’re not going to use a large share of the software that’s available to us.” That’s just not an option. We have to say, “Yes, we will consider this as a commercial good, just like any other piece of proprietary software.”

In terms of the broader context for technology and policy, how does open source relate to open government?

Willey: When I was working for the District, Apps for Democracy was a big contest that we did around opening data and then asking developers to write applications using that data that could then be used by anybody. We said that the next logical step was to sort of create more participatory government. And in my mind, open sourcing the projects that we do is a way of asking the citizenry to participate in the active government.

So by putting something in the public space, somebody could pick that up. Maybe not the transit subsidy enrollment project — but maybe some other project that we’ve put out there that’s useful outside of government as well as inside of government. Somebody can pick that code up, contribute to it and then we benefit. In that way, the public is helping us make government better.

When you have conversations around open source in government, what do you say about what it means to put your code online and to have people look at it or work on it? Can you take changes that people make to the code base to improve it and then use it yourself?

Willey: Everything that we put out there will be reviewed by our security team. The goal is that, by the time it’s out there, not to have any security vulnerabilities. If someone does discover a security vulnerability, however, we’ll be sharing that code in a way that makes it much more likely that someone will point it out to us and maybe even provide a fix than they will exploit it because it’s out there. They wouldn’t be exploiting our instance of the code; they would be working with the code on Github.com.

I’ve seen people in government with a misperception of what open source means. They hear that it’s code that anyone can contribute to. I think that they don’t understand that you’re controlling your own instance of it. They think that anyone can come along and just write anything into your code that they like. And, of course, it’s not like that.

I think as we talk more and more about this to other agencies, we might run into that, but I think it’ll be good to have strong advocates in government, especially on the security side, who can say, “No, that’s not the case; it doesn’t work that way.”

Burton: We have a firewall between our public and private instances at Git as well. So even if somebody contributes code, that’s also reviewed on the way in. We wouldn’t implement it unless we made sure that, from a security perspective, the code was not malicious. We’re taking those precautions as well.

I can’t point to one specifically, but I know that there have been articles and studies done on the relative security of open source. I think the consensus in the industry is that the peer review process of open source actually helps from a security perspective. It’s not that you have a chaos of people contributing code whenever they want to. It improves the process. It’s like the thinking behind academic papers. You do peer review because it enhances the quality of the work. I think that’s true for open source as well.

We actually want to create a community of peer reviewers of code within the federal government. As we talk to agencies, we want people to actually use the stuff we build. We want them to contribute to it. We actually want them to be a community. As each agency contributes things, the other agencies can actually review that code and help each other from that perspective as well.

It’s actually fairly hard. As we build more projects, it’s going to put a little bit of a strain on our IT security team, doing an extra level of scrutiny to make sure that the code going out is safe. But the only way to get there is to grow that pie. And I think by talking with other agencies, we’ll be able to do that.

A classic open source koan is that “with many eyes, all bugs become shallow.” In IT security, is it that with many eyes, all worms become shallow?

Burton: What the Department of Defense said was if someone has malicious intent and the code isn’t available, they’ll have some way of getting the code. But if it is available and everyone has access to it, then any vulnerabilities that are there are much more likely to be corrected than before they’re exploited.

How do you see open source contributing to your ability to get insights from large amounts of data? If you’re recruiting developers, can they actually make a difference in helping their fellow citizens?

Burton: It’s all about recruiting. As we go out and we bring on data people and software developers, we’re looking for that kind of expertise. We’re looking for people that have worked with PostgreSQL. We’re looking for people that have worked with Solar. We’re looking for people that have worked with Hadoop, because then we can start to build that expertise in-house. Those tools are out there.

R is an interesting example. What we’re finding is that as more people are coming out of academia into the professional world, they’re actually used to using R in school. And then they have to come out and learn a different tool and they’re actually working in the marketplace.

It’s similar with the Mac versus the PC. You get people using the Mac in college — and suddenly they have to go to a Windows interface. Why impose that on them? If they’re going to be extremely productive with a tool like R, why not allow that to be used?

We’re starting to see, in some pockets of the bureau, push from the business side to actually use some of these tools, which is great. That’s another change I think that’s happened in the last couple of years.

Before, there would’ve been big resistance on that kind of thing. Now that we’re getting pushed a little bit, we have to respond to that. We also think it’s worth it that we do.

Related:

tags: , , , , , ,