Wednesday, September 5, 2012

Engineering Management 101


I have been in the Engineering Management gig for approximately 1 year now, and  though many experiences have stuck with me, one stands out above all.  

Before my current employment, I had never had an "engineering manager" to report to.  Sure there were people I reported to as an engineer, people who critiqued my perforce, gave me feedback, and most importantly, suggested the raise amount to corporate after the end of the year, but they never went by the title, "Engineering Manager".  Normally, they were the "Lead Engineer" of a project, or the CTO directly.  My normal interactions with these people was reporting progress, or approached them about a particularly hard technical problem because I was stumped.

In truth, I never did work for an Engineering Manager until my recent job.  This brings me to the topic of this article, the same question everyone has when they encounter their first Engineering Manager.  

"What does an Engineering Manager do?"

The real question I will strive to answer is, "What does a good Engineering Manager do?"

During my trails to become an Engineering Manager, my mentor told me something that will stick with me throughout my career:
"An Engineering Manager ask 3 things when they come into work each day.  They ask: 
1. 'How are you?'
2. 'Are you clear?'
3. 'What can I do to help?'"

1. How are you
An Engineering Manager's first and foremost concern is to their people.  The gauging, engaging, and reacting to your employees' individual and collective minds is the first step to becoming a good Engineering Manager.  Unique to this type of career path, your first priority is strangely not to your own boss, but to the people that work for you.  You are the voice of your employees, and, at times, this will bring you at odds with your direct superior.

Happiness
During their first day, the new Engineering Manager usually calls a meeting to introduce themselves.  They will most likely address their engineers about their experience, some philosophies they believe in, and wrap it up with, "It is my job to keep you happy."  As clique as this is, ensuring the happiness of employees is always top priority as an Engineering Manager.  Happiness of the engineers ensures two vital catalysts to software development: retention and productivity.  

Unhappy engineers look for new jobs, and happy engineers don't.  Unhappy engineers take the first opportunity that comes their way while happy engineers struggle greatly with the decision if the opportunity is worth while.  Billy, your top engineer, gets a better offer from Acme Co. Engineering.  He's really happy working in your team, and love his company culture.  Billy is struggling deeply with the decision to take the job that is offering more money, or stay with you, where he knows he is happy.  Billy currently lives is a known quantity of happiness working for you; why fix it if it isn't broken?  If Billy is feeling this way, the Engineering Manager has done his job.  If the Engineering Manager controls the budget, maybe he can entice Billy to stay with a little extra coin, and Billy will give you that chance.  If Billy is happy, he'll probably approach you about is dilemma, and give you a chance to redeem his employment.  In my experience, happy Billy considering another job offer is a rare occurrence; most engineers delete recruiters out-reach requests quickly if they are happy, and don't usually go out looking to leave a job they are happy with.

Even if you keep Billy happy, there are scenarios out of your control in which Billy may have to leave.  Someone in the family maybe sick and he may have to move to a job closer to home,  Billy finally got an offer from his dream company he's wanted to work at since he was in college, or Billy's wife finally got her opportunity across country and he is moving with her.  There are some cases you can't control through happiness, but just remember, in these cases, Billy might have left sooner if you hadn't kept him happy up until now.

Engineers are engineers because they like Engineering.  If an Engineer didn't like engineering, they probably didn't get through that first Computer Science course in college that separated the boys from the nerds.  Furthermore, if they didn't go to college and are an engineer, it means they probably are even more passionate about engineering because they had the initiative and drive to learn it on their own.  Productivity is extremely easier to get from someone that already likes what they are doing.  in fact, I believe if someone is happy with their work environment, and loves what they are doing, there is nothing more you can do to get maximum, long-term productivity out of them.   
Maximum Productivity = Happiness of Employee * Love for Job.

Being on the Inside
Coming from an Engineering background, I never imagined phycology and ability to connect with individuals would be such a vital role in Engineering Management.  Getting to know your team, their moods, their development style, their coding style, their hobbies outside of work, and their favorite beer (ect..) can be huge assets to you as an Engineering Manager.  What makes each one of your employees tick?  Its your job to figure each and every one of them out so that you can motivate them at low times and celebrate with them at high times.  The more you take an interest in your employees lives, the more they take and interest in you.  As your relationship grows engineers will divulge more information to you about themselves, giving you the ammo you need to read them better.  Come in each day and silently ask each of your employees "How are you", and you should be able to read the response in the mood each morning.  Do you need to keep you distance today?  Can you squeeze a little more out of the engineers tonight if you grab them a 12 pack?

2. Are You Clear?
The second point of being a good Engineering Manager is the ability to figure out what needs to change to keep your team's wheels greased as much as possible.  Find the development processes and communication tools that work for your team so you can minimize your involvement, and keep and ear open to how they can grow to better increase productivity.  Give them the tools, and clarity, and you'll be able to sit back and play bouncer to outside interruptions.

Being Open Minded
Optimizing Clarity among the teams comes with the Open Mind to be flexible, and the patients to find the right process that fits the current team.  Your favorite process might be a good starting point if your team has nothing in place, but don't expect to stick to your strict rules.  A good way to get buy in from your team when you are implementing a new process is to enter the room before the informational meeting where you will go over the new process and say, "Today we'll be starting to use , as I always say, if it works for this team, we'll keep it, if it doesn't work, we'll tweak it or ditch it and try something new".  Iteration on your process, just like your products, is what will make them successful.  Listen to your team, they have a lot to say.  They are the ones living in this  process day to day while you are in interviews and meetings.  They know what sucks, and what is awesome, and what you and they can do to make it better.

Have a List
Task board, Task Tracking Tool, Whiteboard, Bug database, anything!  There are great engineers out there that will spend their hours doing something great for your product when they are out of work, there are great engineers out there that will spend hours doing something interesting and useless to your project when they are out of work, and then, most concerning, there are average engineers out there that will just get bored.  As a fellow Engineering Manager Rand's says "Board people Quit".  If you are like me, your not at your desk a lot.  Your engineers need to be clear on what is next, so when next comes, and your not around, productivity isn't lost.  If you are the blocker, you're either over worked, or not doing your job well enough.

3. What can I do to help?
This is the part of our job where we plug the holes in our ship with our fingers, toes, and anything else we can spare.  Understaffed on QA, guess what you'll be doing sometimes?  Need some extra coding done, you'll be helping out here this week.  More realistically, Engineering managers should spend this time on deeper retrospectives of what their employees are thinking and saying about the development processes and communication tools.  What wiki tutorials for new hires need to be written that were never gotten around to?  What is that one piece of technology that everyone hates, but no one has time to research a solution to?  What's this month team-building activity that you'll put together?

Be what your team most needs you to be right now in your spare time.  If you've been listening to what their saying, you'll know where the holes are in your ship, and its your job to try and fix them, or at least plug them until they are available to fix them.

Wrap-up
Keep these in mind, and you'll soon start to see your team respect, and even adore you.  Lose these things, and you'll simply loose your team and even your job.

No comments:

Post a Comment