Managers: I know you think you're big shots because you carry the title of "manager" but really, it doesn't mean you have carte blanche to be an inconsiderate buffoon. Most of the IT guys I know are dedicated enough workers that they don't really need a manager to provide a lot of "rah rah" motivation or whip cracking. We love what we do, we like the problem solving elements inherent in applying technology or developing software, and the work is largely its own reward. So when times arise that sometimes require "burning the candle at both ends," developers aren't shy about answering the call. But the way the human mind works, motivation can be internally driven or externally driven, and sometimes external "motivation" by a pointy-haired manager can end up doing more damage than good. I have a half dozen personal experiences to illustrate this, but I'll refine this diatribe to include only the two best ones.
I used to work for a huge data processing firm...those of you that know me already know the name of that firm, but to protect the innocent, I'll just call it something like, oh, Electronic Data Systems. This juggernaut is the classic example of a monolithic company often called a dinosaur by business analysts. Well, I still own stock in this place, so I hope they can turn it around, but the reality is that when you're 75,000 people large (circa 1995), you're bound to find both good apples and bad apples. And I had the fortune of knowing several of the not-so-good ones.
First Tale: The Theory X ManagerThis manager was the worst I've ever worked for. I would be unlikely to accept working for him again even if I was starving and he offered the last job on earth. He believed in surveillance and keeping employees under his thumb. They were not resources to be cherished and nutured, they were to be exploited. He was a real gem of a human being too, and I'd heard of several unprofessional acts in the history of his time managing this site (he was dating one of the secretaries - son of a bitch couldn't even pick a better cliche). In management school I learned of William Ouchi's Theory Z (The Theory Z manager manages projects, yes, but also develops people. They're cognizant of the fact that their subordinates are human beings and might like things like a decent work place and that a happy employee is more productive than a fearful or forced one). This person was just the opposite, a total Type X guy. He'd sometimes berate you based on hearsay from other employees, rather than discuss things direcly with you or your direct report first to get the full story. And he was a cheap bastard and didn't spend a dime on improving conditions for the staff. No training, no new technology, nothing. And IT workers passionate about their work typically do like to learn new things. We are like any other employee, we like pay raises too. In the nearly two years I was there, there wasn't a single monetary adjustment to my salary, and I'm betting the other employees didn't see much either. I'd heard rumors this cheapness was because EDS managers got bonuses for staying under budget and so had little impetus to spend on the staff. I don't have proof that was the case, and I'm certain the perpetrators of such a policy would deny it if asked. But damn that story fits pretty well and would certainly explain the selfishness I witnessed.
I worked hard at first, but by the time I'd finished my assignment there, I was bailing out at the 8 hour mark at every opportunity. I couldn't stand being there. I knew excellence wouldn't be rewarded or appreciated, so I didn't feel I should waste excess time striving for it. I was admittedly less mature then and also less skilled, but I still contributed and when you look at my total career, there's no question about my self-motivation. Few work a longer day on average than I do. But this guy managed to crush it. If he saw the quality of my work now and the amount of work I put in, he'd probably act surprised and ask, "Why couldn't you have done that for me?" BECAUSE YOU'RE A SELFISH ASS WIPE OF A MUSSOLINI WANNA-BE, OKAY? If someone was stealing from you or mistreating you, would you spend a second more around them than necessary? How about working lots of unpaid overtime for them?
Look, developers are pretty good people on the whole. I know there are some that aren't that bright and shouldn't be in this industry (thanks a lot, 1999!), and there are others that aren't as motivated as you'd like, and others that could use a major boost in the people skills department. Sure, I've met a few that were prima donnas, but every industry has those. And there are some criminals in the IT ranks (data thieves, pirates, inaccurate hour billers, and salesmen). But typically, IT folks are intelligent and reasonable enough as a group that they're no more high-maintenance than any other group, and quite possibly a lot less. All you have to do is show some respect and keep them fed with decent projects and some doughnuts. They'll reward you with quiet loyalty. For that matter, you could probably apply that management point to all employees.
Second Tale: The "You're just a Robot" ManagerI'm a new guy on a new development project that's pretty intensive. This is a big project that's building a system for the company to branch into a new segment of business. It will ultimately fail because of the oddest combination of quirky personalities, mismatched skill sets, and lack of experience that I've ever seen in my career. The manager I first start working for is not a bad person. He's nowhere near the Theory X guy in the first tale above. But he was clearly inexperienced or ignorant about the people side of management and was totally clueless about how to motivate people. Perhaps this is not totally his fault; he was a technical guy promoted to management, probably without the managerial training and social evaluation that should accompany such promotions. I don't know if this was a Dilbert Principle deal - I think he might have been a decent technical person in the right niche. Anyway, we're running behind on the project and people are already working hellacious hours (12-16 hours/day) mostly by virtue of self-initiative and the desire to be professionals. This is the truth and I can find witnesses if you don't believe me. We were coming in at 8 every morning and some of us were staying until 11pm (yes, most of us were single). Can you sense what's about to happen? He's going to mess it all up.
He and I are discussing the project schedule for the next few weeks before a pending deadline. There are more hours on the recently reworked estimate than there are 8 hour days before the deadline. "Oh!" he says, getting visibly excited, "If you put in some evenings and weekends, why, we'll be just fine." My heart sank. I had already been putting in extra time every day, including Saturdays and Sundays, but it was by choice. It was, foolishly, perceived by me as my duty and my honor. I wasn't thrilled about it, but I did it and didn't need to be asked. The minute it became forced, the minute the manager changed the focus from self-initiative to external pressure, the internal motivation withered. This manager actively and openly disregarded my personal time by saying what he said. I gave the time (which we were doing anyway), and what do I have to show for it now? Nothing. Two years between pay raises. No bonuses, no vaseline. The kicker? This manager left, saying, "My team doesn't like me because they want me to work overtime like them but I can't, I have a family." I can't put my response to that in printable words and still retain some professionalism.
Respect your people, and by extension, their time. Don't just assume they have nothing else to do during their evenings and weekends. Don't plan projects by pulling delivery dates out of your ass. Don't expect miracles if you can't acquire the best training and tools for your team, and rememeber the mantra that I'm going to spout on this blog until I die: Making software isn't hard, but making it right is. That means quality people are worthy of a quality salary. There might be a day when all developers truly understand OO and best coding practices, and the general quality of code is truly a mere commodity (fat chance, but you can believe it if you want). But the labor issue doesn't change. You're not just paying for skills (which change every ten years anyway), you're paying for intelligence, loyalty, and dedication (things you need all the time), and those should be expensive things, regardless of what continent you search for them on. I know, you're remembering the crazy 90's when you had good folks leave for better opportunities elsewhere, but if you were paying 1990's salaries insted of 1980's salaries, that might not have happened. There are good ones out there...you're probably not hearing about them because they don't make a lot of noise or move around much. They're dutifully working.
If you're a manager learning that from me now, then that's pretty sad. If you're a manager and you're shaking your head and not understanding my point, then you SHOULD NOT BE A MANAGER because it's likely there are people suffering under your command.