Articles / Nerdherding

Nerdherding

Hacker culture is filled with the lore and legend of the Pointy-Haired Boss and the myriad ways management can inhibit or kill a project. Today, we get a view from the other side as Cal Evans tells us what it's like to be the administrative part of a hacking team.

Programmers = Software Engineers = Developers = Hackers = Nerds.

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 résumés 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 tests. 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 résumés.

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.

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. Does he 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 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 too 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 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!

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 investing in 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 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.

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 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.

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 he 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 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.

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 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.

Closing:

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 doesn't 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 nonetheless, and the payoff is productivity. The less 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.

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.


T-Shirts and Fame!

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 jeff.covey@freshmeat.net know what you'd like to write about.

Recent comments

29 Aug 2000 08:41 Avatar jhannes

Nerd, yet again

No, I don't think nerd was intended to be derogatory. However, Dictionary.com (http://www.dictionary.com/cgi-bin/dict.pl?term=nerd) lists a nerd as:


A person regarded as stupid, inept, or unattractive.
A person who is single-minded or accomplished in scientific pursuits but is felt to be socially inept.

A geek (http://www.dictionary.com/cgi-bin/dict.pl?term=geek) is someone who bites the heads of live chicken. ;-)


The term Computer Geek (http://www.dictionary.com/cgi-bin/dict.pl?term=computer%20geek) is what I most commonly use about myself. However:


The term cannot be used by outsiders without implied insult to all hackers; compare black-on-black usage of "nigger.

This seems to be the case with most terms like "nerd," "geek" etc. They should only be used if you are one youself...

05 Aug 2000 12:43 Avatar superstring

Nerd
Is this article suppose to offencesive?

11 Jul 2000 14:57 Avatar salukigeek

nerd vs. geek
Awesome article! I worked in several places that were somewhat like this before I was a nerd/geek.

While I do not have a problem with the way the author uses the term nerd because it is used in a self-describing way and to poke humor into an other wise dull topic, here is the real deal.

Nerd is defined in the dictionary as "A person regarded as stupid, inept, or unattractive.", generally NOT such a good thing to be in most circles.

The term geek originated to describe the people in a side show such as the bearded lady and the guy who hangs cinder blocks from his nipples. People pay money to see geeks, not nerds.

As such, a geek is a marvel, a wonder, something to see. Often possessing a physical talent or trait. Otherwise a normal person, but with an outstanding quality. Personally, I'd much rather be a geek. Easy to remember, Geek is Chic.


05 May 2000 09:23 Avatar pcastro

POVs, cultures and meanings
With no doubt Cal deserves credits regarding the points presented.
I would like very much to be in such working environment. As I pointed
above, I live in a different culture, where the capitalist abuse is the rule
and exceptions are rare. The market/consumer culture in an environment with a very reduced "market herd" causes severe, wild and savage competition. The document is very good, but I have problems with the words to reflect the joke under a satisfactory POV. Both words represent a translation challenge. I have compiled a list of possible candidates words in Portuguese and seems that none would give the text the same "good" feeling as it seems it gives in English. All candidates are "degrage" or degenerative visions. NERD is not in the dictionary so it is hard to achieve a good translation (same w/ word HACKER) - but here are the candidates: CDF, bitolado, obcecado and some bad related: imbecil, estupido. The word HERD is in the dictionary and I can give the same meaning with the words: manada, rebanho, gado, bando (the last one is commonly associated with nasty creatures). Not easy to produce the same joke effect in different cultures and POVs. But words appart, credits to Cal. I would like to be in such environment too.

04 May 2000 21:09 Avatar jasonab

from a herded nerd....
I'm a little late with this comment, but for posterity's sake....

I'm one of Cal's herded nerds, and have been for about a year now. I've had my share of bosses, and I can honestly say that this method does work, for most developers. Even if you have a family and are married, you can still appreciate having a solid work environment. The most important part of this whole management motif is that the developer is important as a person. This entire methodology humanizes the work environment, and makes it a place people want to be, or at least do not mind being in. It requires someone willing to relate to employees as people, and not resources. It requires someone willing to work hard for what his troops want, whether that be drinks, decent space, or a better monitor. If your people don't want games, fine. If they don't want food, fine. If you treat them like people, and treat their needs as important, you can achieve a solid, productive team.

Screenshot

Project Spotlight

Kigo Video Converter Ultimate for Mac

A tool for converting and editing videos.

Screenshot

Project Spotlight

Kid3

An efficient tagger for MP3, Ogg/Vorbis, and FLAC files.