Tuesday, April 10, 2018

Engineering Managers and Evangelist

Engineering managers and developer evangelist are 2 roles that have recently found demand in the software engineering space. I pretty much see them as the same role. These two roles will usually not be filled simultaneously. This is because these roles are a luxury and having one of them filled is already some what of a waste. Also I feel that these roles are not clearly defined so you'll see overlap in their tasks. In this post I'll outline what I think are some of the key responsibilities of the role of an engineering manager/evangelist as well as some KPIs (key performance indicators) you can measure to tell if someone is a good engineering manager or how much better they are than another one.

Engineers are often a high cost for company. Its not easy to make a lot of profit with a high number of engineers so it getting the most out of each one is desire. A good engineering manager will understand what the limits are to output of the engineers in your company. Why it takes 2 weeks to complete a task and what are the skills that make an engineer complete a task faster or slower than another. Is it the project managers communication that is slowing a project down, is it an engineers unusual organization/communication skills that makes a project finish in half the time. The engineering manager can see the connection between this outcome and the skills in the engineering team. A good engineering manager would help coach and enhance the an engineers approach to completing a project. You company might have specific processes or might be in a particular domain that has specific regulations. An engineering manager should help the software developer apply these processes to their typical implementation work and should help the engineer evaluate what exactly how to preform better with the company. A key measurement analyze an engineering manager's performance is how fast it takes an engineer to start a project. As time goes one and an engineering manager understands the company and the team they should be able to get an engineer writing code their first week. Hopefully first day with good documentation and communication with other team members that have access to specific resources.

After a developer is working quick another measurement is how long are they working for. Developer retainment is very important because the the value of an engineer goes up the more they know your team and processes. Its not always the engineering managers fault why a developer left. It usually is not their fault, but they should have a good understanding of the reason why. A good engineering manager can alert the company of unnecessary stress on the engineers and provide solutions that will keep developer wanting to work for the company.

Engineering managers can also act as a spy in the engineering team and try to help higher level management tackle problems before they happen. Also ensuring that communication is clear between the engineering team the the company decision makers. As an engineering manager you should not be on the side of the engineers or on the side of the business management in any disagreement. Your role is to just make sure that communication is clear and all parties understand what the obstacle is and what the next step is. It might come down to setting up a 1 hour meeting between the head of engineering and the lead product manager to make sure all parties understand the tradeoffs and a solution is agreed upon. As the engineering manager its not your role to argue for one side but you should make any solution that comes from a disagreement arrive faster than it would have if you were not there. You catalyze agreements between the engineering team and the rest of the company.

These three KPIs might be difficult to measure so apply them how you see fit in your company. Even a bad measurement is better than no measurement. Any estimate is better than no estimate.