|
|
|
December 2nd, 2004
06:43 am - Picture Hanging
I was having coffee with my friend Simone the other day. We were sort of chatting about work stuff, and we're both at the point now where we're being put in charge of other people. She came up with a really good metaphor for explaining the various issues in tasking junior staff.
It's like you're asking them to hang a picture for you, but they've never done it before. You understand what you need done - the trick is getting them to do it. In fact, it's so obvious to you that there are constraints and expectations that you don't even think to explain. So you've got some junior guy working for you, and you say, "Go hang this picture over there. Let me know when you're done." It's obvious, right? How could he screw that up? Truth is, there are a whole lot of things he doesn't know that he'll need to learn before he can hang that picture. There are also a surprising number of things that you can overlook.
First off, there's the mechanics of how to do it. What tools does he need? You know that there's a hammer and nails in the back of the supply closet. He doesn't, and it's fair of him to assume that you wouldn't have asked him to do something he didn't have the tools for. He looks around his desk, and he's got a stapler and a tape dispenser.
There are two ways he can do this. He can make lots of little tape loops, so it's effectively double-sided, and put them on the back of the picture. This is the solution that actually looks alright, and it's not until the picture comes crashing down that you find out he did it wrong. The other possibility is that he takes big strips of tape and lashes them across the front of the picture, stapling them to the wall for reinforcement. This solution may be worse because it actually sorta fits the bill - the picture is up, and maybe not too badly obscured. With enough staples, it'll hold. It's just ugly, and not what you intended. And if you don't put a stop to this now, he might keep hanging pictures this way.
There is also another way this can go wrong, particularly with a certain breed of eager young programmer. You find that he's gone down this path when your boss comes by the next week to ask about this purchase order for a nail gun. So you talk to your guy and discover that he's spent the last week Googling, reading reference works, and posting to news groups. He's learned that you hang pictures on a nail driven into the wall, and that the right tool for driving nails into walls is a high-end, pneumatic nail gun. If you're lucky, you can point out that there's a difference between picture-hanging nails and structural nails, and that a small, lightweight hammer like you have in the supply closet is really the right tool for the job. If you're not lucky, you have a fight on your hands that goes something like: "Why can't we get a nail gun?" "We don't have the budget for it." "So we can't afford to do things right?" "There's nothing wrong with driving nails with a hammer." "But aren't we trying to do things better and faster? Are we going to keep using hammers just because we've always used them? It'll pay off in the long run." "We don't spend enough time driving nails around here to justify buying a nail gun. We just don't."
And ends with him sulking.
Now you think you've pretty much got that tool issue sorted out. He's got his hammer and nails, and he goes off. The trouble is, he still needs to know how to use them efficiently. Again, it's obvious to you because you know how to use a hammer. To someone who has never seen one before, it probably looks like it'd be easier to hit something small like a nail using the broad, flat side of it. You could certainly do it with the butt of the handle. And you might even be able to wedge a nail into the claw part and just smack it into the wall, instead of having to hold it with your hand while you swing at it with something heavy.
This sounds pretty silly from a carpentry standpoint, but it's a real issue with software tools. Software tends to be long on reference documentation and short on examples and customary use. You can buy a thousand page book telling you all the things you can do with a piece of software, but not the five-page explanation of how you should use it in your case. Even when you have examples, they don't tend to explain why it was done a certain way. So you plow through all this documentation, and come out thinking that a nail gun is always the right tool for the job, or that it's okay to hit things with the side of the hammer.
I ran into this when I started working with XML. I've seen all sorts of references that say, "Use a SAX parser for reading XML files, not a DOM parser. DOM parsers are slow and use too much memory." I finally caught some guy saying that, and asked, "Why? Is the DOM parser just poorly implemented?" And he said, "Well no, but why load a 10 megabyte document into memory when you just want to get the author and title info?" "Ah, see, I have 20 kilobyte files, and I want to map the whole thing into a web page." "Oh yeah, you'd want to use DOM for that."
There may also be tool-data interaction issues. Your guy knows how to drive nails now, and the first thing he does is pound one through the picture frame. Ooooh. "No, you see this wire on the back of the frame? You drive the nail into the wall, and then hook the wire over it." "Oh, I wondered what that was for. But you only put in one nail? Wouldn't it be more secure with like, six?" "It's good enough with one, and it's hard to adjust if you put more in." "Why would you need to adjust it?" "To get it level." "Oh, it needs to be level?"
Ah, another unspoken requirement.
So now we get into higher-level design issues. Where should the picture go? At what height should it be hung? He has no way of judging any of this, and again, it's not as obvious as you think.
You know it shouldn't go over there because the door will cover it when open. And it can't go there because that's where your new bookcase will have to go. Maybe you have 14-foot ceilings, and the picture is some abstract thing you're just using to fill space. Maybe it's a photograph of you and Elvis, and you want it to be smack at eye level when someone is sitting at your desk. If it's an old photograph, you'll want to make sure it's not in direct sunlight. These are all the "business rules". You have to take them into account, but the way you go about actually hanging the picture is pretty much the same.
There are also business rules that affect your implementation. If the picture is valuable, you probably want to secure it a little better, or put it up out of reach. If it's really valuable, you may want to set it into the wall, behind two inches of glass, with an alarm system around it. If the wall you're mounting it on is concrete, you're going to need a drill. If the wall itself is valuable, you may have to suspend the picture from the ceiling.
These rules may make sense, but they're not obvious or intuitive. A solution that's right in some cases will be wrong in others. It's only through experience working in that room, that problem domain, that you learn them. You also have to take into account which rules will change. Are you really sure of where the picture's going to go? Is this picture likely to move? Might it be replaced with a different picture in the same position? Will the new picture be the same size?
Your junior guy can't be expected to judge any of this. Hell, you're probably winging it a bit by this point. Your job is to explain his task in enough detail that he doesn't have to know all this stuff, at least not ahead of time. If he's smart and curious, he'll ask questions and learn the whys and wherefores, but it'll take time.
If you don't give him enough detail, he may start guessing. The aforementioned eager young programmer can really go off the rails here. You tell him to hang the photo of your pet dog, and he comes back a week later, asking if you could "just double-check" his design for a drywall saw. "Why are you designing a drywall saw?" "Well, the wood saw in the office toolbox isn't good for cutting drywall." "What, you think you're the first person on earth to try and cut drywall? You can buy a saw for that at Home Depot." "Okay, cool, I'll go get one." "Wait, why are you cutting drywall in the first place?" "Well, I wasn't sure what the best practices for hanging pictures were, so I went online and found a newsgroup for gallery designers. And they said that the right way to do it was to cut through the wall, and build the frame into it. That way, you put the picture in from the back, and you can make the glass much more secure since you don't have to move it. It's a much more elegant solution than that whole nail thing." "..."
This metaphor may be starting to sound particularly fuzzy, but trust me - there are very real parallels to draw here. If you haven't seen them yet in your professional life, you will.
The key thing here is that there's a lot of stuff, from the detailed technical level to the long-range business level, that you just have to know. Your junior guy can't puzzle it out in advance, no matter how smart he is. It's not about being smart; it's just accumulating facts. You may have been working with them for so long that you've forgotten there ever was a time when you didn't understand them. But you have to learn to spell things out in detail, and make sure your junior folks are comfortable asking questions.
|
Comments:
![[User Picture]](http://l-userpic.livejournal.com/78451655/715031) | | From: | vicar |
| Date: | December 2nd, 2004 06:58 am (UTC) |
|---|
| | | (Link) |
|
Jebus mice - that was brilliant! You should package that and make a fortune giving humorous anecdontes to software managers for a bloody fortune.
Mind if I pilfer that? Me likee very much - it applies to more than simply software. Seriously, that's a good rant about the communication issues with assigning a task from the perspective of a seasoned expert to an educated neophyte.
![[User Picture]](http://l-userpic.livejournal.com/64765851/1151039) | | From: | grymnir |
| Date: | December 2nd, 2004 07:44 am (UTC) |
|---|
| | | (Link) |
|
Hmmm...seems you've got a bit of Gaiman mixing with your Stephenson and jostling with a pinch of Pratchet in your subconscious.
Very well phrased...and, unfortunately, germane to many different occupational practices. The one thing you don't have oh-wise-and-experienced-senior-type-guy is the unfortunate inclusion of aother senior advisor who tells junior that "that" picture can't go up until it has been retouched by a photo artist, or cleared committee for its frame, or been reproduced 12 times for all the bathroom stalls.
gah.
The spoken and unspoken assumptions; the requirements and nice-to-have's all colliding with the political realities of an idiot making a spot decision because they have titular control and bbelieve that "it is all a matter of taste" and that everyone's taste is valid - only his/hers moreso because they're the big cheese.
Poor junior.
If you think I'm harshing on the junior guys, go back and re-read it. You've got it backwards. The whole point here is that senior folks need to learn to explain exactly what they want and why, state their assumptions, and stop expecting the junior guy to just figure it out.
As for your psycho boss, I've got a whole 'nother essay worth of stuff to say about coping with other people's decisions.
Colin, this is fucking awesome. May I pilfer it too, please? I'd like to share it. It applies to anyone in a management position, not just software managers.
I've found you really can't guess just how many ways one person can make mistakes at a task until you give the person the opportunity. It's also hard to remember that you once *were* where they *are*. :)
I think you've pretty adequately described what makes a good employee. The minutia of a programming language is less important than being able to identify basic logistical stepping stones in completing a project.
I am showing this to some of my coworkers - want a job?
I aspire to have more drywall saw designer type workers.
![[User Picture]](http://l-userpic.livejournal.com/86129532/632593) | | From: | palmwiz |
| Date: | December 2nd, 2004 12:12 pm (UTC) |
|---|
| | | (Link) |
|
You know, if you sent this to a publisher as part of a book proposal, they'd probably give you an advance to write the rest of it.
![[User Picture]](http://l-userpic.livejournal.com/79575114/1255459) | | From: | gse |
| Date: | December 2nd, 2004 01:40 pm (UTC) |
|---|
| | | (Link) |
|
for christ's sake dude, start a real blog and put this stuff there.
I think he means, "start one for interesting stuff." :-)
I thought he was more poking at !LJ, but OK. I expect you know him better than I do.
![[User Picture]](http://l-userpic.livejournal.com/79575114/1255459) | | From: | gse |
| Date: | December 5th, 2004 10:38 pm (UTC) |
|---|
| | | (Link) |
|
it was a little of both really. LJ doesn't seem like the place for... um... "real blogging". oh god. shoot me.
![[User Picture]](http://l-userpic.livejournal.com/56534807/844959) | | From: | utforsker |
| Date: | December 5th, 2004 10:48 pm (UTC) |
|---|
| | ::cackle:: | (Link) |
|
blog snob. <-:
I love you for that. LJ does seem a bit populated by LCDs and Darwin escapees sometimes.
Bravo! to the whole, and amen to
You can buy a thousand page book telling you all the things you can do with a piece of software, but not the five-page explanation of how you should use it in your case.
Crikey. Too right!
I wish I'd had this in 2003 when I was supervising interns.
This is great, and it really is appicable to many areas of management. The funny thing about reading it, given my line of work, is that I often really am explaining the correct way to use a hammer or wrench.
![[User Picture]](http://l-userpic.livejournal.com/89793187/1369327) | | From: | lilu22 |
| Date: | December 4th, 2004 02:05 pm (UTC) |
|---|
| | | (Link) |
|
LOL. This is great! Thanks for chearing up my Saturday afternoon. I know for me, at least, I would error too far in the other direction. I'd say where the picture should go, where the hammer and nail are, about how long it should take them to do this task, when I want it done by and any other minor details I could think of to help them not have to guess. Often, that would leave this person wondering why I didn't just do it myself (since it takes less than a half hour) and thinking that I think they are an idiot. Such the balancing act.
![[User Picture]](http://l-userpic.livejournal.com/34824928/110439) | | From: | rednikki |
| Date: | December 17th, 2004 09:04 pm (UTC) |
|---|
| | Completely off topic... | (Link) |
|
I've been trying to remember the three rules of John Woo films. I can only remember rules 1 and 3:
1. I have two hands. Therefore I must have two guns. 3. I'm close enough to punch you. If only my hands weren't so dang full of guns!
Um...what's the second one, again?
![[User Picture]](http://l-userpic.livejournal.com/9259199/991105) | | From: | colinmac |
| Date: | December 27th, 2004 11:14 pm (UTC) |
|---|
| | Re: Completely off topic... | (Link) |
|
![[User Picture]](http://l-userpic.livejournal.com/34824928/110439) | | From: | rednikki |
| Date: | December 28th, 2004 03:17 pm (UTC) |
|---|
| | Re: Completely off topic... | (Link) |
|
Yay! Thank you. |
|