If you are a software engineer or other technie who has suddenly found yourself responsible for managing a team and IT projects then you wouldn’t be the first.
It’s common for IT professionals of all disciplines to take the step into a role where their neck is on the line for managing a software project through to completion.
The skills required for managing developers and successfully delivering a project are not the same as the programming and development skills required to produce good components and code. Growing Software: Proven Strategies for Managing Software Engineers aims to breach the knowledge gap for software engineers who receive that promotion.
I read this book a few years ago but it remains one of my all-time favourites and the one I often recommend to new IT project managers, even those who don’t come from a development background because it helps explain how those teams and individuals work. It’s a good primer on communicating with technical people as well.
Setting the scene for software teams
The book is split into five parts, beginning with the environment of a software development team and what it means to create and grow a good team.
Part Two looks at the technology aspects of the management role: defining a product, managing releases and the evaluation and assessment processes required to turn out good quality code. There is an excellent section on prototyping here.
Part Three considers how the engineering function fits into the wider organisation, and there is some good advice here on working successfully with other departments. Testa’s approach to software development is holistic, in that he advocates involving the end users and a wide group of stakeholders as much as possible.
Advice for the whole project and software lifecycle
The last two parts of the book cover what the software development manager is likely to need for the long term, not just for getting the first project off the ground. Part Four looks at the processes that make up software development and they are covered in some detail. The text reads like it is aimed at smaller development companies and start ups, as it provides advice for the creation of a software-development methodology. However, even if this is not relevant for some readers, there is benefit to be gained in the assessment and review of existing processes.
The final section provides pointers on creating a software strategy, technology overhauls and roadmaps for taking the team and the company forward. Again, this reads like it is aimed at smaller companies, but much of it will still be of use to software-development managers working in larger organisations.
From the beginning of the book you can tell that it is designed to be a practical, grounded book. The style is realistic, and it explains how the internal politics of an organisation actually work. There are also hints about establishing the company culture – essential in a new role – and deciding if it is for you. Growing Software also includes appendices and I found Appendix B, about internationalisation, particularly interesting as it covers all types of questions and guidance for converting software for use in other markets. This underlines for me the major premise of the book: it is very commercial and is designed to be of as much practical use to the software manager as possible to ensure positive company results as well as quality software outcomes.
Review updated September 2015. A version of this review was first published in The Computer Journal, 2009, and on this blog in 2010.