In my last post inspired by the book Managing the Unmanageable by Mickey W. Mantle and Ron Lichty, I described my version of what motivates software developers. Continuing in the same vein, I’m looking at the other side of the spectrum in how a manager demotivates software developers. There is some overlap but it isn’t simply the reverse of the last post. As Mantle and Lichty insightfully point out, there are certain elements don’t so much motivate, but when lacking, demotivate developers. So here’s the list of what demotivates software developers.
Not Earning Respect
A manager must have the technical respect of his staff. If you don’t have a technical background you are pretty much dead in the water. It will be very difficult to earn your team’s respect. In addition, you need to keep up with current technology as well. The software field moves so fast, and just like when you were a developer, as a manager you need to be aware of the latest trends and tools.
Of course, another way to earn respect is to give it. Don’t be demeaning. Strive to make people feel heard and understood, be personable, ask for opinions, praise your staff, thank them, and if you have to reprimand, do it privately and respectfully.
Not Having Fun
You don’t need to be “professional” at all times. Don’t be a stuffed shirt. Lighten up. Play and joke around. You don’t want everyone heads down and trying to be focused every minute. It’s counter-productive. People produce their best work when they are relaxed and rested, not overworked, tired and stressed. Mental breaks are essential.
Fun outside-of-work events will also improve the team morale. Have team lunches, team happy hours and other informal bonding sessions. The team will be more effective if they know and understand one another.
An Unproductive Environment
Of course the office should be as functional and aesthetically pleasing as possible. Engineers like functionality and no one wants to work in a dump. However, there are other less obvious environmental considerations that make a difference.
Do not have assholes on the team. Assholes and jerks will demoralize the team. What the team needs are optimistic, excited and engaged people. No cynics. We need doers, improvers, and problem solvers. And no lazy people. We want people eager to get shit done and make stuff happen.
Do not be inflexible. Don’t be a clock-watcher. Have your rules and principles in place but don’t be dictatorial about it. People might need to leave early or come in late sometimes. Or work from home one day. Or they might have some family emergency. As renowned CEO Lee Iaococca espoused, a manager should put people first, then product, then profit. People drive product and profit. People first is a long term strategy.
Its ok to over communicate but do not under communicate. People do not want to be trapped in a bubble with no connection to the overall goals and mission. As a manager you need to over communicate the company vision and goals, team goals, schedules, deadlines, changes, code standards, architectural guidelines, engineering philosophies, wins, promotions, and more.
And do not be unapproachable. An open door policy is best. Foster and encourage communication by being open to communication yourself.
There are some limits to communication that should be in place however. Set up the proper communication channels to avoid developer interruptions. Everyone should not have unfettered direct access to developers. Developers need to focus and think effectively to design and write good code. Shield them from unnecessary interruptions that impede their work.
Remember Star Trek 2: The Wrath of Khan when Chekov had that parasite placed into his brain; always gnawing at him and intruding on his thoughts. That’s what under compensation can be like for a software developer. They won’t be 100% engaged and dedicated. You need to pay people fairly such that they do not think about money. You don’t want people feeling exploited and taken advantage of, you want them to feel valued and appreciated.
Be a Crappy Role Model
Software engineers and most normal people expect a manger who is professional. This means someone who is of good character, has a positive attitude, strives for excellence, is competent, and is respectful. A good manager puts the team first. Gives the team credit, takes responsibility for failures, and doesn’t throw anyone under the bus. He is ethical and fair. Deficiencies in these qualities will discourage and dishearten the team.