Tuesday, July 17, 2007

The Solution is "Non-Trivial"

I absolutely love this post over on The Fishbowl about how engineers define the degree of difficulty in a problem, ranging from "trivial" to "impossible" and how "non-trivial" fits into the mix.  Many times I've sat in a room and described a problem as non-trivial, and I know what was going on in my head as I said it, and the author just totally nails it.  If I know it to be impossible I'll say that.  But if it sounds hard and I don't have a clue, I'll say "Non trivial."  What a great engineer expression.  It means, in an instant, "Most other problems, to me, are trivial.  This one is only a little harder."  When in actuality it means "As of right now, I have no idea how I'd solve it, but I'm still sure that it can be solved."

Once upon a time I worked in financial services as a technical architect, and we used to rate projects on two scales of 1-5:  difficulty, and time.  Although I can't speak for anybody else, my definition typically was that "difficulty" referred to my own mental energy needed to think of a solution (including prototyping time), and "time" referred to "other resources, including people."  So a 1-1 project was what we typically think of as "cherry picking", something so quick and easy that it's almost not even worth doing, please throw it into the mix when you get a second.  A 5-5 on the other hand, was another way of saying "impossible."  It would take an undetermined amount of time and effort to complete.  I won't tell you it's impossible, because no engineer likes to say that (and no manager likes to hear it), but I'll make you think twice before telling me to go for it. 

A 5-1, something that is very difficult but requires almost no resources, is somewhat akin to the "non-trivial" concept.  It means "The burden of solving this would be entirely on my ability to come up with something, but when I do it should be ready to go."

A 1-5, on the other hand, would be used for a bureaucratic mess.  The equivalent of saying "Can we make the default font Helvetica instead of Verdana?"  The programmer has to change one style sheet, but the decision can only be made by 20 people arguing about it for 3 weeks.

(My current boss has his own version of the impossible/5-5 rule.  For projects he doesn't want to do, he estimates 200 person hours.  That backfired recently when the president himself came down and asked why it was so hard, and then redefined the problem on the spot until the estimate was more like 150 hours ;)).

No comments: