My Engineering Management Philosophy

My Engineering Management Philosophy

I believe that management is a philosophical profession, or at least it is for me. I do my best to base my philosophy on principles that guide me as I make decisions.

For example, I believe that software quality is core team principle that everyone is responsible and we always write tests to validate what we are building. Yet we can be flexible on how much test coverage is needed. I believe it's important that team know that Quality is a subjective concept. At times the business will require us to prioritize speed over implementation style.

My core principles stem from scientific basis. If my principle is invalidated scientifically I'm quite willing to change my believes.

Performance Management

I want to cover performance management first because it's a subject that I'm deeply invested in changing. To set the stage, I'll define two keystone principles which informs much of the rest of this subject. You cannot scientifically measure productivity or performance.

A) You cannot measure an engineer's productivity.

Or any other knowledge worker's productivity.

I doesn't matter what you measure: story points, lines of code, bugs fixed, number of commits, technical debt, code quality. None of it can be combined to measure productivity.

These metrics are all subject and deeply flawed in some way.

Can you ever measure engineering output?

You can only measure productivity at the team level. However, any productivity measurements should only be used to help you plan future work or to help you gauge team level enhancements. A team enhancement might be making tests suites run faster, a faster CI/CD pipeline, or removing a shared barrier by moving to trunk based development.

B) You cannot rate anyone's performance in a scientific manner.

I don't care that you think you are smart and believe you can be objective. You are not objective. Our brain creates mental shortcuts that result in hundreds of scientifically provable biases.

When you rate others, it reflects more about your rating habits than it does about the person you are rating.

Don't we need to rate people? No.

You should be focused on helping them do their best work. My job as a manager is to be catalyst for speed up the performance of each team member.

My job is to remove roadblocks, provide clarification, promote our shared team philosophy and values, help you grow as a person and as an engineer.

That covers it for today.

If you are curious to learn more I highly recommend Marcus's Buckingham's 9 Lies about Work. He's spend his career studying how people work first a Gallup and then ADP.

Here's a quick preview of the book.

What's up next?

  • How do you promote someone?
  • How do you fire someone?
  • One-on-One's
  • Assign Work to the team
  • Rotating engineers across the organization
  • How to hire engineers'

Show Comments