The value of planning ahead
As I ride the subway to and from the Mozilla office in Toronto, around the halfway point I pass over the Don Valley, on the lower level of the Prince Edward Viaduct. The bridge was designed and built between 1912 and 1918, and despite significant opposition on cost reasons, the designer and the commissioner of public works were able to ensure the lower deck was included for future subway use, despite Toronto not having a subway at the time. In fact, it would be over 40 years after construction started before Toronto had a subway at all, and over 50 before the Bloor-Danforth line opened in 1966 using the viaduct’s subway level.
The lesson that hits home every day is that while we should always think about the present when designing something, we should also keep an eye on the long view, and take the short-term costs where the long term savings warrant. Software development timescales are not the same as subway lines and bridges, and it doesn’t always pay to take the long view, but we should always be conscious of what we’re trading off. We especially need to be aware of this in Labs, as we have to balance the competing desires of going faster and getting features into products. It’s not easy, and we won’t always make the right bets, but we should always try.