Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

petdance (2468)

petdance
  andy@petdance.com
http://www.perlbuzz.com/
AOL IM: petdance (Add Buddy, Send Message)
Yahoo! ID: petdance (Add User, Send Message)
Jabber: petdance@gmail.com

I'm Andy Lester, and I like to test stuff. I also write for the Perl Journal, and do tech edits on books. Sometimes I write code, too.

Journal of petdance (2468)

Friday September 06, 2002
02:55 PM

"Can't you just..." -or- there are no simple obvious answers

[ #7575 ]

I grate my teeth any time I hear a sentence that starts ``Can't you just?'' If those words come out of your mouth, stop and think. You're missing something important.

``Can't you just'' is usually said when discussing a problem with someone else. The other person will explain the problem, and you'll jump in with the handy, simple and obvious answer. Some examples:

  • ``I'm not sure how we're going to get that server onto the network. Turns out that this wall jack is dead.''
  • ``Can't you just run an extension cable over to that one?''

  • ``We need to support users that have control over other users. I think we need to have some sort of table that tracks relationships.''
  • ``Can't we just add a flag to the USER table?''

  • ``I don't have enough for an NT license in the budget, but I have to get print services up and running by the end of the week. Why don't I just run Linux on the server?''

In each case, someone has a complex problem, with the not-very-helpful suggestion of an obvious, quick-win solution. The suggester has undoubtedly not taken all the issues into account. The response in each case will be one of the following:

  • ``I thought of that, but that leaves open the possibility that...'',
  • ... and then a list of the reasons why that simple, obvious solution is not workable.

  • ``Oooh, yeah, that's a good one. Let's do that.''
  • This doesn't mean that the simple, obvious solution is any more viable, only that the listener hasn't thought of the reasons why yet.

It's extremely rare that a complex problem has a simple solution, or that the simple solution doesn't have far-ranging side effects. Running an extension cable adds to the rat's nest of cabling in the server room, or the user flag will soon have to be a set of flags that become a maintenance headache, or the Linux server causes problems in an all-NT shop.

As programmers, we're used to doing magic and making things work right. As Perl programmers, especially, we are Lazy and Impatient, and expect the problem to be easily solved. However, if someone has been struggling with the problem for a while, the chances that they've missed an obvious, painless solution are small. It's also somewhat insulting to presume that the answer is right there in front of the person, unseen. Rephrase ``Can't you just'' as ``Have you not noticed that the obvious solution is to'', and you'll see what I mean. You're probably not that much better of a problem-solver than the other person.

There's nothing wrong with being helpful when colleagues are faced with a problem. Just keep the enthusiasm for your solution balanced with a healthy amount of skepticism, and expect that they're not blind.

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • This is destined to become a classic essay. I think I'll be referring people here often.

    --
    J. David works really hard, has a passion for writing good software, and knows many of the world's best Perl programmers
  • Whenever I hear myself saying 'just ...' I have to check myself. Either what I'm proposing is blindingly obvious or (more commonly with me I'm afraid) it comes at the end of a long chain of thought. "So... after all the aggro and grief of reblessing other people's objects into managed classes and keeping track of things using a couple of address index hashes and some careful DESTROY methods, we realised that we can use sv_magic to hang and arbitrary scalar off an arbitrary object, then we just stick our out
  • I've worked with many bright people who love to tackle complex problems. Quite often they pull out the "complex problem" label too early, missing semi-obvious easy solutions. Or they're reaching for an excuse to try out a design pattern they just read about, making the problem much more complex in the process. (This seems to be less of a problem know than it was for the first two years Design Patterns was on the streets.)

    Part of my jobs as a Project Manager is to vet people's proposals and designs, which