Wednesday, June 01, 2005

Take Me To Your Leader

A friend recently said that he didn't relish the idea of having to manage people. Now I've been on both ends of managing people. I'm not a particularly good manager. I tend to micromanage too much, and get impatient. A good manager gives those he (or she) manages time to get things done.

However, my friend sort of doesn't manage people. I think part of it is being scared of being assertive and taking charge, and in general, making the person you're managing miserable. Here's my lesson: it doesn't have to be this way!

First, if you're managing someone who's basically still in college, then you should go in assuming they're going to need some hand-holding. That's not necessarily bad. It's surprising to me that some people believe you can just dive into work and just do it. Often times, there's a lot to learn to get things done.

Lately, I've been thinking about that. I believe there are jobs that are basically craftsman, and those that are problem solving. In a craftsman job, you are trying to get good at what you do, be that cooking, or typing, or what have you. Once you're good at it, there's not that much more to learn. You keep doing what you already know how to do. Problem solving jobs, on the other hand, often involve learning new things along the way. I suppose every job has some learning, but I do stuff with computers, and it is incredibly easy to not know enough, and not have any idea how to proceed.

The real problem is that technology keeps presenting more and more things to learn. And that's not in a good way. It's not like learning a new musical instrument, or learning to hangglide. It's learning a new technology that chooses to do things one way just because. So you get a compiler, and how that compiler works differs from just about how every other compiler works. It's not so easy to leverage the experience you have from one to the other.

Imagine if a car was like software. Some cars wouldn't have steering wheels or brakes (in the place you expect it). You'd look for windshield wipers, only to realize there's some different way to get rain off is some heating element or some thing odd, which is located in some unexpected place. Or there's some kind of wind noise cancellation, or a blind spot eradicater. Cars are solving problems you never thought you had!

Except cars are, for the most part, the same as the next. No one tries to reinvent the steering wheel, nor the brakes, nor the accelerator. This allows a person who knew how to drive a car in 1950 to survive driving a car in 2005. To be fair, we haven't asked cards to be that much more than what they were 50 years ago. Nowadays, we have cup holders, air bags, a somewhat comfier ride, good gas mileage, CD players that add to our experience. Everything else is hidden away. If a computer figures out how to make the car more fuel efficient, or you have special kinds of suspension, or engines are more efficient, well, you don't care. It all is hidden away.

But with programming, you have to deal with the fact that everyone keeps coming up with ideas on how to do this, and how to do that, and few agree on any of it. Worse, it's hard to decide on what technology to pick from. Which IDE should I use? Which database? Which server? Which version control? Why do I even care about databases or version control or a build process? What on earth made this so complicated?

And the sad thing is, it's going to get worse before it gets better. Until they decide that people want to learn tools just once, or they want it to be easy to learn, we're going to have to deal with this mess. I remember hearing professors, people who are very smart, who complained why they had to learn object oriented programming to teach data structures. They did just fine using Pascal!

Ultimately, there are those that love technology. They like new changes, even for completely arbitrary reasons. They don't mind if you change the shape and location of the buttons on a doodad or add sliders, or stuff you twist, or make it smaller, or what-have-you. Look at a digital camera today. It's amazing that two cameras even have some similar functionality. You learn how to operate a camera, but then look at another, and you have to learn it again. Features on one can't be found on another. No wonder people get frustrated.

And who suffers from it the most? The people who use technology to provide technology to others. Software developers have to deal with these tools, because without them, you'd spend forever trying to do what you need to do. But with them, you spend forever trying to figure out what problem they were solving with the solution, and then deciding if they even did a good job, and ugh. In 3 years, it's old news, and you have to learn something else, then something else, because each time, they did a crappy job, and each time, someone says "Please, let it do this, and that, and could for, fer chrissakes, fix this cuz it is so annoying".

Anyway...

So i tell my friend, first, you have to meet frequently (at least, initially), set goals, and see if they are being met. You have to see what they bring with them to the table (gawd, hate cliches like that) and see if they need their task broken down. Never underestimate how challenging some people can find the easiest task. As workers, college students often lack the kind of independence to learn how best to approach a problem. Heck, I don't even have an idea how best to do things.

Once you see how they work, you can provide more or less assistance. This is assuming they actually want to work. If they don't, then you need to cajole them somehow. And if that doesn't work, you may have to decide that things aren't working out. A person who does want to work wants to know what they need to do, wants some feedback on how well they are doing, wants encouragement if they are struggling (and advice), and wants to know how to get better.

As someone managing them, you want to give them direction, then give them time, get feedback, and redirect. Basically, think of that person as a ship. Occasionally, they go right all by themeselves. Occasionally, you need to steer them back in the right direction.

We'll see how well it works out. Until next time--adios!

No comments: