Managing software developers requires a different mindset than managing other types of employees. By its very nature, software development is a cross between the rigorous detail of engineering and the craftsman pursuits like fine carpentry. Because Nerds have to be equally at home in both halves of the brain, they are different and must be treated so.
I'm going to let you in on 5 secrets that I've learned over the years for managing Nerds. They are not hard and fast rules that you should follow rigorously. They are suggestions, options that you can use or modify to your current needs. What they all have in common is that they have all worked for me when building and managing Nerd herds.
When looking for new Nerds, involve your entire herd. From your most senior on down, make sure that everyone has a voice in who joins the herd. Here's how I did it with one herd:
During this phase of our hiring process, we averaged 10-12 résumés for each pre-screen interviewee. This put a real strain on my relationships with recruiting agencies. The upside was that the agencies who were looking for a quick placement quickly dropped out of the process, leaving only those interested in a long-term relationship.
As the herd grew in size, my active role in the interview diminished. I spent more time watching how the candidate handled the pressure of the interview and trying to get a feel for the candidate's personality and how it fit in the herd. Assessing these points was my assignment, while the rest of the herd picked them apart technically. It was very important to me that the candidate's personality was a good fit. In any herd, and especially those assigned to high-visibility or high-pressure projects, the members must be comfortable with each other, must be able to learn to trust each other, and yes, must like each other. Personality was 50% of the grade of any interview.
The most important aspect of the entire interview process was that everyone in the herd got a veto. If anybody gave a thumbs down, the candidate was no longer viable. Yes, this meant that sometimes we passed on a talented candidate. It pained me to let this happen, but to override the process and take the candidate anyhow would have damaged my credibility, and who said I was a god at hiring anyhow? If someone saw something I didn't, they deserved to be taken seriously. The damage I would have done to herd morale by overriding the process would outweigh any benefit that the new herd member would have brought. Trust me, once your herd understands you are serious about this rule, they will think long and hard about any decision to veto. I never had a situation in which a single person vetoed a candidate.
The outcome of this process was two tight-knit Nerd herds. They worked well together, they played together, they understood each other, and they respected each other. Of course, they fought with each other, called each other names, and played jokes on each other, too. It was grand!
I've always made it a policy to try and make sure that each developer gets to at least one conference a year. More senior developers got to pick the ones they felt were good for them; junior developers consulted with a senior or myself to help find conferences that would benefit them and the company.
Another good way to invest in your Nerds is by buying them books. Nerds love books. If your Nerds don't have a library yet, start one today! Ask each of them to pick a book. Have them find it at fatbrain.com and send you the URL. Add all of them to your shopping cart and order. Make them accessible to everyone who wants to use them, not stuck on a shelf in your office. Encourage your Nerds to continually suggest new books for the library; when they do, order them. Books tend to be $40-$70 each. One new book a week won't kill your budget. It will, however, show to your herd that you are committed to them.
Along the lines of investing, but in a non-monetary way, try to find interesting projects for your Nerds. Salary is not always the most important thing to a Nerd. Many are motivated by interesting projects (high "Ohh-Ahh Factor"). Not all projects are going to be fun, but make sure that at least some of them are. Don't be afraid to let someone run with an idea of her own. Two-to-four weeks of R&D, even if it ends up at a dead-end, will pay high dividends in morale.
Finally, invest in a good working environment. Make sure that developers have "walls, ceilings, floors, and doors". The open pit working environment is as much of a hazard to developers as an asbestos-lined room. Nerds need to be able to close the door, crank their tunes, and zone in on the project for hours at a time. Anything that distracts them from doing this (people walking around asking questions, phones ringing, other developers' tastes in music) will hurt your projects.
Also falling under this heading: whenever you hire a new Senior Nerd, make sure that he or she fully understands that part of their job is to mentor the more junior Nerds. Make sure they understand that it will be part of their performance/salary review. A Senior Nerd is not just someone who can sling code faster than Clint Eastwood can draw. A Senior has to be someone that the Juniors can look up to. Someone they can respect and learn from. Someone they are not afraid to approach and ask a question of. They are your greatest teaching tool. If they don't understand that, they've got no business on your herd.
I have found that a good mentoring program is actually a perk when hiring. Many senior Nerds enjoy passing down what they have learned to junior Nerds. Juniors, especially those who love being a Nerd, are always looking for ways to learn new tricks of the trade. I've actually had people take pay-cuts to join a herd, just for the opportunity to learn. Call it 'growing your own' or 'giving back to the community', but it's hard to see a down side to training someone who has a love for development into a top-notch developer.
I'm the first to admit that I'm a Nerd Herder. I only pretend to be a Nerd anymore. I help set directions, select technologies, and try to make life easier for the Nerds. If you've got more than 2 Nerds in your herd, chances are good that they know things that you don't. So let them speak; who said you were the walking embodiment of human knowledge? Ok, so what, you've been programming for 15 years... big deal! Still hoping the C64 will come back into fashion so you can dust off your skills and code again? If you are a nerd herder then you can't possibly spend as much time programming as your Nerds. Deal with it! When a decision has to be made, talk to the people who are actually doing the work. Don't dismiss them out of hand because "...I want it this way..." Bad mojo. I know first hand from having committed this sin. Even your junior Nerds probably know something you don't. (If not, go back and reread secret 1; you missed something.) Let them speak.
When it comes down to it, it's your butt on the line. You are the one responsible for the actions of the herd, so don't trust your butt to the thinking of a single person, even yourself. Get as many people as you can thinking about decisions. Not so you can blame them if it fails; you can't. But because, this way, you'll be much less likely to need to blame anyone.
Make sure you work into your budget enough to feed everyone at least once a month. Take a Friday afternoon each month and bring in pizza or sandwich-meat trays. Make a rule that everyone must eat in the common area. No one (including the boss) can go back to her office to eat. It's a time to socialize. Make sure you invite another department to join you. Start with your in-house clients (if any), but try to make sure that you have one of these monthly parties with every department in the company.
At one company where I worked, the herd was moved into an old warehouse. The company was planning restorations on it, and it would eventually become the headquarters for the entire company. But since we ran out of room in our other building earlier than expected, they moved us over before the preparations had begun. It was a rough time for the herd; the working environment was dirty and very (very) open. We didn't even have the luxury of cubes, just lots of open warehouse space.
The operations team was also moved over at the same time. One day, the chief of operations, who was facing the same morale problems, approached me about getting both teams together for lunch that Friday. That was the beginning of what became known, company wide, as "Free Lunch Friday". It usually cost us $150-$175 a week to feed everybody, including whomever could sneak away from the other building, about a mile away. Eventually, it expanded into lunch and an hour of "Team Fortress Classic", and was generally the highlight of the week. Hey, you get into a virtual arena with 8-15 other people whom you've been ordering around all week and see how peaceful it is. Everybody, sometimes even my own teammates, had a score to settle with the boss! It was great fun.
It was more than just a gimmick to lift spirits; it became a part of the culture of the herd. (Wait until you hand someone a particularly hard task on a tight deadline and they say "... yea, well, I'll get even with you Friday!") The herd grew together and also grew out. Those people in operations who were not out in the field would join our weekly frag-fest. We even had a V.P. ask for a license so she could join in. (I'm not sure if she ever did, but the rumors that she might were enough to spark excitement.)
In that particular situation, even though the working conditions were bad, the deadlines were ridiculous, and other departments did not understand the realities of good software development, we were able to build a fun-loving herd which overcame these obstacles and actually got software out the door. It's a lot easier to ask someone to meet a ridiculous deadline or change a feature after the feature-freeze in an environment in which you've shown that you respect them and are concerned about their happiness.
Please, PLEASE, PPLLEEAASSEE don't just go to your Nerds and say "... go play games for an hour." If you do, you've missed the point entirely. The point is not to allow your Nerds to play; it's to play with them. You have to be an active participant. It's ok to pick something that you enjoy as well as them, but the important thing is that you participate. If there's a new movie coming out, round everybody up and take them to it! Pack up the house and go catch a matinee. Buy everybody popcorn and Coke and enjoy the company. The morale you are purchasing by doing things with your Nerds is worth way more than the ticket price. Also, resist the urge to combine an idea like Free Lunch Friday and Brown Bag Cross-Training lunches. Keep them separate if you do both. Free Lunch Friday is about getting away from the work while still at work. It's about building a herd, not about feeding people.
A word of warning on TFC types of encounters: From day one, when we started the TFC games, we stated up front that the server would go on-line at 12:30 sharp and go off-line at 1:30 sharp. It was not brought up any other time during the week. Set the expectations early, and follow through. The one thing I had to keep in mind was that I was burning close to $1,000 an hour in personnel time. We enjoyed the games, but when they were over, they were over. We did post the game stats on our herds portion of the corporate Web site every Friday after the game, however, and that kept the conversations going for another couple of days. (And to those who played, no I did not rig the stats, I actually was a better HWG than all of you!)
One last note on food: Do you have a softdrink machine for your Nerds? You do? What are you, nuts? Get rid of it now! Buy a refrigerator and put the drinks in there. Make sure you know which drinks each of your Nerds like. (Keep a cheat sheet in your wallet if you have to.) Now, make sure that the fridge never runs dry. Make it your personal mission to keep it stocked. If you run low, don't dispatch a grunt to buy more (and for goodness sake, don't ever give them petty cash!). Go yourself. Let them see you sweat as you lug cartons of drinks in from the car. Now, let them partake freely. Ok, I've gone a little over the top, but you get the idea. Make sure that softdrinks are a perk, not a fundraiser.
In this tight labor market, the cost of acquiring good Nerds can be high, if you can find good ones at all. Once you have them, take care of them. They don't need to be pampered. On the contrary, most don't want to be pampered. They want to be treated with intelligence and respect. (And a new Nerd toy every now and then doesn't hurt...)
Cal Evans is probably the luckiest man on the face of the earth. In addition to being able to work with groups of highly talented developers, he also gets to pretend he's in charge of them. Cal daily practices the fine art of MBWA ("Managing By Wandering Around"). In his spare time at work, he's either scouring the net looking for talented individuals to invite into the club or playing Team Fortress Classic. (Officially, it's called network load testing.) All of this, and they insist on paying him. To show that his luck never runs out, in real life he is the husband of Kathy, Web designer extraordinaire, and the father of two wonderful children.
We're eager to find people interested in writing editorials on software-related topics. We're flexible on length, style, and topic, so long as you know what you're talking about and back up your opinions with facts. Anyone who writes an editorial gets a freshmeat t-shirt from ThinkGeek in addition to 15 minutes of fame. If you think you'd like to try your hand at it, let firstname.lastname@example.org know what you'd like to write about.