posted on January 18, 2020
I've noticed that whenever I'm looking for books on the topic "developer to manager transition", the search results seem to almost always contain the same set of books. There are 3-4 books focusing on the domain (which are excellent reads btw!) which are quite popular and which everyone recommends. But apart from those, there aren't that many others.
So I was pleasantly surprised when a couple of weeks back, the folks at Packt Publishing sent me a book titled "The Successful Software Manager" for review. Ever since it arrived at my doorstep, I've been (slowly) working my way through it.
So far, I must say that it's a great read. It packs a ton of information, coming in at slightly more than 400 pages. Even though it might seem a bit dense, the writing style makes it an easy read. The content is very well organized and flows nicely from one chapter to the next. There is a healthy mix of theoretical knowledge and practical tips. And in general, I have the impression that Herman Fung, the author, really took the time out to organize all their thoughts on this topic and then wrote them out in a very methodical manner. The end result is a really useful guide to becoming a great software engineering manager.
The book is divided into 15 chapters, the progression between the chapters being quite logically organized. I find this to be one of the strong-points of the book. Starting with the "why", then moving on to the "how", and then finally ending with the "what next", it layous out a rough roadmap for the reader, in the sense of what to expect from the book.
The first chapter starts by asking the reader the question "why". Why do they want to become a manager in the first place? This is not meant to discourage the reader, but more so that they can explore their personal motivations behind this decision.
Once the "why" is out of the way, the book describes the "how". Each successive chapter focuses on a specific topic which prospective software managers should know about before they dive into the role. This helps the reader gradually dip the metaphorical toe in the water by providing them extensive background on what the job entails, and what they can expect once they're in the role.
These chapters cover topics like the key skills that you need to have to become a successful engineering manager, how might the job look like depending on the kind of workplace you're working at, how do you understand and manage the different stakeholders on the project(s) you're working on, meetings (!), different software development models and how they fit into your specific work, handling cultural/personality differences at work, and so much more.
One of the nice things about this book is that since all these topics are handled very thoroughly, it manages to cover sub-topics which you normally wouldn't expect to be covered. One such example is the discussion on culture. Workplaces today are employing more and more people from all over the world, often resulting in diverse workforces. This means that discussing culture in such settings has become ever more important. So I was pleasantly surprised to find an entire section devoted to the author's experience of leading a project in an entirely different country with a completely different culture, and their experience of getting work done in a setting they were not used to.
Overall, it was a geat read, and I would absolutely recommend going through it, at least once. There is a ton of information in there, so I highly recommend sitting down with a pen/paper to make notes, and making sure you have enough time on your hand to go through it!