By Cal Evans
(Editor’s Note: This is an older article. I wrote this around 1999 but most of it still applies today.)
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.
1) Recruit only the best Nerds
A herd full of excellent Nerds will rise to the level of the best. A herd of mediocre Nerds will sink to the level of the lowest. Nerds need quality peer-to-peer interaction to thrive. 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:
Resume Rush: Put the word out on the street that you have a position open and resume will start flooding in. Be open and honest about the position, the working conditions and the current herd personality. You want quality matches, not quantity. Also, open relations with one or two of the better recruiting agencies in town. I usually looked for the ones that pre-screened their applicants with some types of skills test. This gave me confidence in them and, as a rule, I received better quality candidates from them than I did from agencies that just scoured monster.com for resume.
During this phase of our hiring process we averaged 10-12 resume 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.
Pre-Screen: Sometimes over the phone, sometimes over lunch (especially if there was a recruiting agency involved), I would meet with each potential candidate. I wasn’t looking at skills at this point, I wanted to get to know the candidate. Do they have the personality that would mesh with the rest of the herd? Can she communicate ideas clearly and concisely? Can she talk fluently about the technologies we are deploying? Most candidates made it through my initial pre-screen. It was just my one and only shot at filtering out candidates by myself that I didn’t think fit the mold. From this point on, I was just another vote. From here on out it was a herd effort.
The Interview from Hell: One of my team members came to me one day and thanked me for hiring her early on in the herd building process. She said she was sure that she wouldn’t have survived the current interview process! The main interview was with the entire herd. It was as ‘no-holds-barred’ as Nerds get. We had some pretty heavy hitting senior Nerds on our herd so if you put something on your resume, you had better know it. There was only one rule (aside from the 100 HR rules for interviewing); no trick questions. 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 De-Briefing: Once the interview was over, usually within 30-40 minutes, we would all get back together to discuss what we saw. Instead of going around the room in clockwise fashion (way to regimented), I tried to get the most junior members to speak first. This helped avoid the ‘me-too’ syndrome from the juniors and forced them to think through their opinions.
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 hared about any decision to veto. I never had a situation where 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, played jokes on each other too. It was grand!
2) Invest in your Nerds
Teach them, train them, make sure that everybody is learning, constantly. A Nerd who hasn’t learned anything new in 6 months is a paperweight. It can be as expensive as sending people to a conference or as simple as investingin CBTs. It’s not always the amount of the investment that counts. Quality is important but the very effort of investing shows that you care about them and their future. 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 out a book. Have them find it at amazon.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 and 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 theirs. Two to four weeks of R&D, even if it ends up at a dead-end, will pay high dividends in moral.
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.
3) Teach your Nerds
Nerds love to learn. Luckily, the best teaching resource available for Nerds is other Nerds. Try holding ‘brown-bag lunch’ days. Bring everybody and their lunches into the conference room. Let your DBA go over 3 important points of proper database construction, or let your Chief Architect show the proper way to code a business object. There are probably 10 classes that, if you thought about it, you could line up with in-house talent. The more you ‘cross-functional mentor’ the better the different areas of your herd will understand each other. The point is not to train ‘backups’ for key personnel; you will, but that’s not the point; the point is to foster understanding across disciplines.
Also falling under this heading, whenever you hire a new Senior Nerd, make sure that they fully understand 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 fast. 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.
4) Listen to your Nerds
Staff meetings with everyone are critical. Everyone must be a party to the thought process. Make sure that all Nerds are encouraged to speak-up in staff meetings and voice their opinions. If your boss insists on attending Nerd meetings, make him promise to keep his mouth shut. If she breaks the promise, reach over and slap him. (metaphorically, of-course) Remember, he’s farther divorced from the development process than you are. Like training any other pet, it usually only takes once or twice. 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 re-read 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.
5) Feed your Nerds/Play with your Nerds
This one sounds silly, but it’s not. Nerds love food, especially free, food but Nerds are by and large anti-social animals outside of their own circles. If your herd is small, it’s probably very introverted, with your Nerds taking mainly to each other. If it’s large, chances are good that there are cliques within your herd. it’s very important for your Nerds to socialize with each other and with the rest of the company. Lunch is a great time to do this.
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 their office and 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 and make sure that you have one of these monthly parties with every department in the company.
At one company 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 moral 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 in on 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 who 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 when 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 pop-corn and a Coke and enjoy the company. The moral 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.
Word of warning on TFC type encounters: From day one, when we started the TFC games, we stated up front, 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 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 website every Friday after the game however and that kept the conversations going for another couple of days.
One last note on food, have you got a soft-drink machine for your Nerds? You do? What are you, nuts? Get rid of it now! Buy a refrigerator, 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 soft-drinks are a perk, not a fund-raiser.
A good Nerd Herder wears many hats. You must at once function as a mentor, a guide, a chief architect and a poop-shield for your herd. (The last one being one of the hardest) It is your job to make sure that the day-to-day idiocy of upper management not interfere with your herd’s productivity. Do not take this responsibility lightly. You can’t shield them from everything that upper management does, but you can fend off the big pieces. It’s a thankless job. If you are good at it, your herd never knows how much you are shielding them. It’s an important part of your job, none the less and the payoff is productivity. The less that your herd has to worry about management’s infatuation with the latest vendor or technology, the more they can concentrate on actually getting their job done.