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.

2 Comments

  1. Excellent post.

    I don’t think this is just an engineering issue, I think it’s really an issue for society at large. I think this concept in general was lost after WWII, especially with the baby boomer generation. You see this in many respects from budgeting to business. People are much more near-term minded than long-term. The days of building something so that it can last 500 years are mostly gone in favor or cheaper quicker construction. The days of building a slow steady business are also gone in favor of quick startups that grow and die almost overnight. Even television shows have a handful of episodes in which to prove themselves and succeed or they get pulled.

    You can even blame lots of the economic troubles on this concept. Many of the mistakes made were nearsightedness.

    Is it risk tolerance (why take a long term gamble when you can take a quick win and leave)? Or is it simply work avoidance?

  2. Jason says:

    Good point, especially making it clear that planning for the future isn’t always as simple as, “hey, we might want this feature, let’s add a bunch of code to make it easier to do that at point”. I can’t tell you how many times I’ve spent time “overarchitecting” some piece of software per management’s request just to have the potential feature completely ignored and never fully implemented (what a waste). Imagine what people would be saying about the wasted money spent on the lower deck if no subway was ever built in Toronto?

    With that being said, I think the ability to plan ahead like this is really what makes us human. No other animal has the intelligence to think long term like that. Of course no other animal is designing software either. 🙂

Leave a Reply