During my daily commute into the office, I like to alternate between reading the newspaper and a good book. Lately I’ve been reading a book entitled “The Hard Thing about Hard Things” by Ben Horowitz. It’s a great insight into the trials and tribulations of running your own business and working for a startup.
One of the chapters in the book really struck a chord with me and I found that it could be applied to my daily work. The chapter is entitled “Good Product Manager / Bad Product Manager” and talks about the differences between the things a good Product Manager might do versus a bad one. The format is a little different from your average article, and this got me thinking about my daily work life and how I could apply this to my role as an Software Engineering Manager. This is my attempt at a similar article and I have rather originally entitled it “Good Engineering Manager / Bad Engineering Manager”....
A good Engineering Manager knows the product and is the CEO of the software development lifecycle. Bad Engineering Managers focus only on a particular discipline in the development lifecycle. Good Engineering Managers encourage the growth and training of the people that report to them. Bad Engineering Managers don’t look to promote and encourage the growth of the people in their teams.
image source: https://www.flickr.com/photos/stewf/193858688/
Good Engineering Managers focus on ensuring that their teams are able to deliver software as efficiently as possible by removing any blockers encountered. Bad Engineering Managers don’t face the tough decisions and give the team honest feedback when needed. Good Engineering Managers care about the people that work under them and listen to the feedback that the team gives them. Bad Engineering Managers undermine their team leaders and don’t support them as much as possible.
Good Engineering Managers carefully balance the needs of the company with the architectural needs of the product. Bad Engineering Managers drive the team too hard and aren’t tuned into the feedback from the team. Good Engineering managers take full responsibility and measure themselves in terms of the success of the teams that they lead. Bad Engineering Managers make excuses for failing targets and blame the Product Manager, the Product or the Developers.
image source: https://www.flickr.com/photos/highersights/6314325249/
Good Engineering Managers learn from industry best practices and helps their teams to implement these techniques where possible. Bad Engineering Managers are stuck in their ways and always do things the same way, “because that’s how we've always done it”. Good Engineering Managers define their job and their successes. Bad Engineering Managers need constant guidance from their leaders and need to be told what to do and where to proceed next.
image source: https://www.flickr.com/photos/keylosa/184606430/
Good Engineering Managers set realistic goals and forecast targets accurately. Bad Engineering Managers set unrealistic deadlines in order to please the people above them. Good Engineering Managers don’t shy away from confrontation and tougher issues. Bad Engineering Managers don’t listen to constructive criticism and feedback from their peers. Good Engineering Managers care about the people that work for them. Bad Engineering Managers put their own personal needs above those of the team.
Good Engineering Managers face the tougher decisions head-on and give the team honest feedback when necessary. Bad Engineering Managers blame the “powers that be” as the reason that certain decisions aren’t made. Good Engineering Managers work with the team right from the start of a project. Bad Engineering Managers aren’t aware of the meetings that the teams have and don’t join in on the daily team meetings where possible.
All of this combines into a theme that my friend Robin Osborne has a saying for, “Don’t be a douche”!