BoS digest – when good assumptions go bad

Last year, the Zimbabwean division of Barclays bank made one hundred quadrillion Zimbabwe dollars profit. With inflation at 231 million percent and rising, the numbers will soon breach the magic threshold of Z$ 922,337,203,685,477.5807. Why magic? The true geeks among you will instantly recognise 9,223,372,036,854,775,807 as 2^63 – 1, or the maximum value that the 8 byte SQL Server money data type can store.

Software is at its best when it's specific, and it's assumptions that provide the constraints that make it so. We've all seen software that makes bad assumptions – the web site that assumes you have a US phone number; the application that only installs to the C: drive and the banking site that assumes nobody is ever called O'Neill or Geneviève or wants a password with – heaven forbid – punctu@ti0n.

These are just plain bad assumptions.

But what about when good assumptions turn bad? In hindsight, they might seem dumb, but they were sensible at the time. Assumptions that $922 quadrillion was the most currency anybody would ever need, or that programs written in the 1970s would be obsolete by the year 2000, or that 64kb would be plenty, or that screen sizes would never be the size of buildings with resolution better than paper? Is there any way to mitigate against the very good assumptions you are making today turning evil tomorrow?

Like the punchline to the how many philosophers does it take to change a light-bulb joke, I have no answers, only questions. But I'd like to hear what you think.

So this week's QOTW is "Have you seen good assumptions go bad? And what can you do about it?". As always, $20 of Amazon vouchers will go to the best answer.

Last week's QOTW was "Have you ever been to a remarkable networking session at a conference?" Thank you Ken Hughes, Matt Lacey, Ed Loessi, David Locke, Steve Jones, Mark Dalgarno, Bob Cramblitt, Erietta Sapounakis and Sean Murphy for your excellent answers, and Cliff McCollum wins the $20 for his World Café idea. Send me an e-mail Cliff and I'll send you the $20 vouchers.

On the social network, Mark Dalgarno asks when should you retire a software product? and Phil Factor has some excellent, seasoned, and characteristically weird advice about how to survive the recession in his clinging to the flotsam blog post. Make sure you check out the other forum posts too.

If you're in Cambridge then make sure you come to Software East next week.

Enjoyed this blog post? Then follow me on Twitter or subscribe to my blog.

2 responses to “BoS digest – when good assumptions go bad”

  1. Jason Cohen says:

    I agree that you can categorize assumptions as “good” and “bad.”
    The examples you give of Y2K bugs, 64-bit currencies, and the like — I would argue these are all good assumptions. Each of those were conscience engineering decisions — choices where we accept limitation in exchange for something desirable (limiting memory use, fitting into existing hardware, etc.).
    The difference with the “bad” assumptions is that these were NOT engineering choices. I can’t imagine someone said “We shouldn’t represent names with apostrophes.” These are just oversights or laziness.
    Also, most software doesn’t last thirty years, and it’s unreasonable for most software to be designed to last twenty years. Of COURSE you expect changes/problems. Sure you can predict some of those changes (like, *if* we last twenty years we’ll have to deal with Y2K bugs), but there will also be tons of unforeseen changes in things like hardware, operating systems, languages, and end-user expectations.
    Thanks for a thought-provoking post!

  2. Steven Woods says:

    Neil,
    a great post, and it’s interesting timing for me as I have just finished reading “The Black Swan” by Taleb, which is a great book about our inability to predict events that are outside of the norm.
    He categorizes things into “normal randomness” where the outliers don’t affect the total (human height, weight, lifespan, etc) and “wild randomness” where the extremes dominate the overall effect (people’s net worth, how long a project is overdue, inflation rates, almost anything in technology).
    It would seem that assumptions based on variables with normal randomness are much safer than those based on variables with wild randomness as one is likely to see unexpected outcomes, and hence bad assumptions.
    Thanks for the thought provoking post.