Best Practices of Engineering Management

by Florian Jourda (Ex-Box Engineer), at MaGIC
August 2015

Engineering management is not about managing people or projects. Startup guys are smart and don't need to be micromanaged.

Engineering managers remove roadblocks. Think of a company as a giant machine. Tweak it, let it move on its own, and optimize it.

As with all best practices, only apply them when it makes sense.

Attack problems in a group

Don't send people to tackle projects individually. When multiple people work on a project, they motivate each other and combine their efforts.

Prioritize the most important things; don't just have people doing their own thing. The most important things are usually the hard things.

Use agile to keep people from colliding when working on the same project. Use code reviews.

Write tech design docs

Write down the requirements before building anything. Agree on the architecture, and systematize design. Make sure the engineers know everything to be done.

Only after everyone understands the requirements can they pick the right tools.

Build a good pipeline from development to production

If an engineer makes 1 dumb mistake a year, and you have 100 engineers, you have 2 mistakes a week. You need code reviews to keep development running smoothly.

Optimize the pipeline that goes from dev to production. Continuous integration is one possibility.

Do 1-1 meetings

This is one of the most important things. One on ones are when the manager has a personal talk with the employee.

One on one meetings will help to highlight flaws in the organization as well as how to fix them. They make sure nobody is hiding problems, they make roadblocks clear, and they prevent people from being scared to meet with the manager.

Don't talk about progress. Progress should all be online (e.g. Trello, Asana).

Ask them whether the team is doing well. Ask if they need help. Ask them what would make them happier. Happy engineers are productive engineers. Productive engineers are happy engineers. It's a self-improving loop.

Teach people to solve their problems themselves.

At the end of a sprint, show and tell.

Talk about the bad, talk about the good.

Show and tell in written form. Let people +1 it. If it has a lot of +1's, it's most likely important. If there's a bug, find out why the bug is there.

Hiring

Hiring is perhaps the hardest thing.

Hire smart people (who are not assholes). Box does five interviews of 1 hour each. Every interview focuses on one part. Give a grade: Hire/No Hire, Strongly Hire/Strongly Not Hire.

Train your engineers to set questions for hiring. Incentivize people to recommend.

The cultural values of Box are that once people are hired, trust them immediately and completely. Get shit done. Move fast. Bring your wacky self to work every day, accept everyone, let them be themselves. Make mom proud.

It's cool in startups to not have titles. But you need titles. At different levels, expect different level of impact, and salary.