The Tappan Zee Bridge and software development
Posted on August 19, 2011 by Tommy McGuireA recent Planet Money podcast discussed the Tappan Zee Bridge and the perplexing issue of its location. The Tappan Zee is located at one of the widest points on the Hudson river, and as a result after only a half-century or so is needing some significant replacement. If it were a few miles south, the river would be much narrower and the structure would be more sound.
The bridge was built as part of the New York Thruway, one of the first controlled-access highways in the country, a grand scheme of then-governor Thomas Dewey. In order to build the rest of the Thruway, Dewey needed the revenue from the tolls on the bridge, and placing the bridge in a better location further south would have meant it was in the domain of the New York Port Authority, which has a monopoly on bridges, tunnels, and what-not within 25 miles of the Statue of Liberty. As a result, the Port Authority would have gotten the toll income, not the State of New York. So, the Tappan Zee is about twenty-five and a half miles from Liberty Island, is three and a half miles long, and is in need of repairs. But the Thruway exists, and seems to function admirably. (Or as much so as such can.)
I am moved to this posting by the realization that many enterprise applications (since I am currently stuck in enterprise-land) are similarly constrained by the perversities of their environments. The best technical or engineering options are ruled out on seemingly irrational reasons, simply because there is no other way to get the damn thing built. And getting the working application is more important than the subsequent pains involved in a below-best-standards mechanism.
This sad fact is not limited to just the enterprise, though. Many of the failed projects I have been involved with were similarly constrained by non-technical decisions; in some cases, those were not even the reason the project failed.
Next time, how H.P. Lovecraft's classic "The Shadow over Innsmouth" applies to modern software development.