The Popsicle Problem
by Ardekantur
Imagine a very distinct, very specific kind of problem. Call it the Popsicle Problem. It goes a little like this:
It’s hot out. Unbearably so. You and a friend are driving in your car and decide to make an unplanned stop at your local convenience store. You grab a couple popsicles from the freezer, pay for them, and leave. On the long drive home, your passenger asks, “Are those popsicles going to stay frozen?” You shrug and say, “I dunno. Probably.” Your passenger looks out the window and thinks for a second, then says, “You know what would be awesome? If you had a cooler in the back for this sort of situation. Something you could just throw some ice packs into for whenever you had to drive something cold home.”
That’s the Popsicle Problem. Yes, that’s it. What’s wrong here? What’s the problem?
The problem is that throwing a cooler into the back of your car is a very specific answer to a very specific problem. How many times over the summer, much less the year, will you be making an off-the-cuff decision to have to drive frozen food a long distance? And what would you need to do to earn this pay off? Keep this completely arbitrary object in your car, and keep it stocked with ice packs, for this one specific situation. It just doesn’t seem worth it.
The Popsicle Problem is a transient problem. A temporary, one-off obstacle.
Software engineering seems incapable of solving transient problems because it sticks around and its existence works against the payoff.
Comments
I actually have a cooler in my trunk… It’s not like I need the space for anything else most of the time. And the interior is small enough that generally frozen items will stay cold with no additional ice for a while.
Also, I don’t think I’m really seeing the software analogy. Have any examples that might help?
Josh: I don’t know if it would be possible for you to have missed the point more thoroughly. The idea as it related to software or any engineering really is one-off problems tend to be ignored because the benefits associated with solving them are only reaped once — there’s little chance of applying the same knowledge later on. Engineers much prefer to solve problems whose solutions will be useful again and again.