Many government CIOs see open source software development as a noble pursuit that, in reality, belongs on the periphery of an agency’s IT agenda. Local governments, for example, often use open source platforms to power content management systems that run their Web portals. Open source solutions are also the building blocks of many citizen-facing applications that route users to government data.
Large-scale applications, meanwhile, typically have remained as off-the-shelf products bought from vendors. Since open source is written by a vast community of developers collaborating online — most of whom contribute for free — most agencies have feared being without the IT support they would need if functions underpinned by open source failed. But in places like the Pacific Northwest, that assumption is changing in a large way.
The Tri-County Metropolitan Transportation District of Oregon (TriMet) serves the Portland area and is aggressively pushing open source for every software purchase. Increasingly the agency is selecting the open source option, said Bibiana McHugh, TriMet’s IT manager of GIS and location-based services.
Open source software is providing functions for the district that McHugh previously doubted it could handle — most notably, GIS. TriMet’s inventory of open source software can be divided into three categories: open source software supported by a vendor; free open source software supported by the agency’s staff; and applications programmed by citizens with public data.
Open source software has spread throughout much of TriMet’s IT infrastructure because the agency adjusted its procurement protocols in 2002. TriMet Chief Technology Officer Tim McHugh established the practice of always considering open source products alongside off-the-shelf selections — an approach that, at the time, faced skepticism internally. Nevertheless, the agency steadily integrated open source into smaller back-office functions with products like Linux and Apache Tomcat.
Beginning in 2007, the department took a larger bite, switching out several major Esri GIS products with open source alternatives. McHugh replaced Esri ArcSDE, ArcIMS and MapObjects with open source products GeoServer, OpenLayers and PostGIS. At the time of the switch, the agency was considering whether or not to add Esri’s ArcServer.
“ArcServer was going to be a big investment for us, and it didn’t really align with our standards. The existing platform, ArcIMS, wasn’t really meeting our needs,” Bibiana McHugh said. “After laying everything out, GeoServer immediately popped to the top. It was clear this was an option that could meet all of our needs, save a lot of money — and it aligned with all of our Internet software standards.”
TriMet does still rely on Esri for some functions, however. “We still use Esri as a desktop application for planning and analysis, although a lot of open source software alternatives are getting close to being able to compete with even the Esri desktop applications,” she said.
Bibiana McHugh cautioned that using open source software, especially for demanding functions like GIS, isn’t cost-free. Running open source often requires additional hardware installations and support from third-party providers. Many companies have cropped up to provide development and maintenance services for open source software. She chose the firm OpenPlans, which specialized in TriMet’s chosen applications and charged $20,000 per year.
“That was cheaper than what I was paying for Esri,” McHugh said. “Not only did I get everything I was getting with Esri — priority bug fixes, priority help and assistance — but I also got 100 hours of free time with the developers that I could use however I wanted.”
Using an open source application that’s supported by a third-party developer also gave TriMet more control over changes. “I can put in a feature request to Esri and cross my fingers that it’s in the next release,” Bibiana McHugh said. “But with open source, you have more control, especially if you have the money to support the development of the features you want.”
Esri chose not to comment for this article.
One open source application TriMet’s in-house programmers are developing for the agency’s website is OpenTripPlanner. The product plans trips for citizens by combining the various modes of public transportation available in a district — buses, trains and so forth. Currently TriMet.org uses the Automated Trip Information System from vendor Trapeze, but it doesn’t combine those transportation modes. TriMet looked at a proprietary product used by the Chicago Regional Transportation Authority called goroo, but found it to be too expensive, said Bibiana McHugh. So its IT staff set out to establish a community for developing OpenTripPlanner.
In 2010, McHugh enlisted the help of three open source programmers outside of TriMet. Software engineers David Emory and Brian Ferris had experience writing different aspects of a multimodal trip planner, and programmer Brandon Martin-Anderson brought practical insight from his experience as a transit rider. The three agreed to develop the application in conjunction with TriMet’s programmers after Bibiana McHugh expressed TriMet’s commitment to implementing it.
“The people at TriMet and I have a similar vision when it comes to using information technology to improve the access to transit and the transit-riding experience for those who already use public transit,” Martin-Anderson said.
The three third-party open source programmers led a two-day workshop for TriMet staffers. Nine months after that, the team produced a version of OpenTripPlanner that attracted wide attention. Programmers in Ireland, Poland, India, Spain, as well as New York and other U.S. cities wanted to contribute to aspects of the application’s functionality.
“It’s amazing. We have developers from all over the world who are contributing to this application, and the development cycle and the feature cycle is very, very fast,” Bibiana McHugh said. “I didn’t anticipate we’d see anything for at least a year and a half.”
TriMet plans to release a public beta version of the application this spring.
One benefit of the third-party partnership with TriMet is that Emery, Ferris and Martin-Anderson can contribute to the application without being on the hook for its daily maintenance. Once the trip planner is complete, TriMet’s staff will be responsible for keeping it running.
The impermanence of maintenance can be a downside of the third form of open source utilized by TriMet — open data. By releasing numerous data sets, TriMet empowered citizen programmers to create agency-data-powered applications for the public. Examples include BrailleNote and VoiceNote, which offer transit information for the visually impaired. The Buster App alerts users to nearby transit stops, and Arrival provides users with transit arrival times.
Programmers don’t necessarily want ongoing maintenance responsibilities for applications like those. But government agencies that supplied the data frequently don’t want to maintain them either. Tim McHugh said TriMet would consider maintaining existing citizen-produced applications that residents want but were no longer maintained by the developers.
Working with the larger open source community is making TriMet’s programmers more open to constructive criticism, according to Tim McHugh.
“I have seen it move that way with developers who would normally be more closed off, more insecure about opening up some of their vulnerabilities,” he said. “Maybe this process gives them more of a comfort zone, an environment where they’re all learning from each other.”
TriMet software engineer Frank Purcell said he found himself more open to suggestions from fellow open source programmers.
“For example, I like to do a lot of code checking around my code, and somebody aptly named it the ‘diaper pattern,’” he said.
Purcell explained that “code checking” is a way of writing code so that it catches and keeps certain errors from creating problems. However, the programmer who pointed out the “diaper pattern” mentioned that Purcell’s programming was so good that the code checking wasn’t necessary, so he took the advice.
Purcell said he sympathizes with programmers in agencies that don’t use open source. “I’ve got a choice,” he said. “If the Eclipse open source development environment that I use doesn’t work, I can move to NetBeans or some other open source venue. If an open source language, like Java, isn’t working for me, I can move to Python or whatever. I have a choice, and that’s liberating.”