26 February 2015

Hackers: 1 — Maryland MTA:0

People have been asking for the Maryland Transit Administration (MTA) to make data available to allow accurate real-time actual schedules for some time, but MTA has said that it is too technically difficult and too expensive to make a mobile app, or to make the data available to 3rd parties.

It took a self described "civic hacker" less than a week to do this on their spare time:
Despite promises of transparency and efforts to create "open data" in the hopes of latching onto the "app economy"—words frequently used in government agency press releases—much of the data that would be of the greatest value to citizens often ends up out of reach. For example, if you want to plan a trip on public transportation in many cities (or even just find out when your bus will show up), you often have to turn to Google Maps or another transit-tracking application on your mobile device. In Baltimore, however, that data has been locked behind the firewalls of the Maryland Transit Administration (MTA).

But now a civic hacker has made that data available to app developers by doing what the MTA claimed would cost hundreds of thousands of dollars to complete—simply tapping into websites that the agency has already built. And the hacker did it without spending a dime of taxpayer money. The work took just a few man-days' worth of spare time and a commercial app development team's afternoon.


The reason the MTA gave for not doing a mobile app—or opening the data to third parties—was cost. "The data received from the bus [Computer Aided Dispatch (CAD) and Automatic Vehicle Location (AVL)] system to operate My Tracker is not sent in a format that can be easily used to create an application—called General Transit Feed Specification (GTFS). We know in many cases, the information needed to create an application is made public so private firms can attempt to develop an application at their own expense. However, it would cost approximately $600,000 more to be able to format the data from our 25-yr-old CAD/AVL system into GTFS for use by outside developers," the MTA said.

However, within days of the MTA's Web app going live, geo-data developer and open government data advocate Chris Whong had already done what the MTA refused to do. Whong took a look at the bus tracker Web app and found that its AJAX interface was polling the site every 10 seconds to get new location data. As it turns out, the app was retrieving JSON-formatted data from the MTA's servers, encoded in a format called the General Transit Feed Specification (GTFS). The MTA had already published the GTFS metadata describing bus routes. Whong wrote in a blog post that it took a few hours of trial and error to confirm the data feed format, but in the end he and a small team of "civic hackers" were able to construct a framework that would allow applications to pull, for free, the very data the MTA said would cost $600,000 to publish. The team also produced a live tracking site on the Heroku application hosting platform to demonstrate the framework and then posted the whole thing on Github to allow others to use it.

And use it they did. The Montreal-based developer Transit App was one team that grabbed onto Whong's project. "With Chris’ help, we were able to pull the real-time vehicle positions from the MTA system ourselves," the Transit App team said in a blog post. "Using that data, we generated approximate bus arrival times with our in-house prediction engine. We then compared those predictions with the MTA’s tracker to verify our accuracy. And—with just an afternoon of work—Baltimore finally has the real-time tracking app it deserves. $600,000 under budget."
My guess as to why the MTA thought that they needed more than ½ a million dollars to do what took one guy a few days is tied in with that whole "Reinventing Government" thing that Clinton started in the 1990s.

Basically, it involved taking a lot of core competencies in government agencies, and outsourcing them to private contractors.

The MTA probably does not possess the internal knowledge base to understand just how trivial doing this was.


Post a Comment