3

3 books every (not just junior) development manager should read before diving into practice

Often, especially when small companies grow, good developers get promoted into leadership or management positions: Scrum Master, Development Team Lead, Development Director, or even CTO. Back in 2007 I was in the same situation – barely graduated from university and all of a sudden assigned to manage and organize a development team of 8. Yes, and I must admit that I didn’t have any clue about what it really means to manage and lead a growing development team in a permanently changing organisation… I was a software developer with interests in agile methodologies and fairly high standards for myself and others, but I still was a software developer and had never learned about the responsibilities, pitfalls and mindset you need to know to succeed in a leadership position.

I learned a lot since that time and thankfully I had a great boss who was and still is a patient coach and mentor for me. I read loads of different books, joined leadership seminars and talked to dozens of other development managers, consultants and senior developers. All this learning effort and the chance of gaining management experience within a growing and healthy company combined with the strong support from top management formed a quite effective stage for my leadership take off.

However, in the beginning I surely made lots of failures and the company had to invest in myself by accepting imperfections an experienced and highly skilled manager probably wouldn’t have had. I lately read three different books: Peopleware, Management 3.0, and Growing Software. These books are great material to study for becoming an effective development manager in an agile and more and more chaotic world. I strongly would recommend these books to every management aspirant – not just in the area of software development. Back in 2007 I would have been really happy to know about these books…

I want to share this great and powerful introductions to development management with you:

1. Peopleware: Productive Projects and Teams


A real classic! In Peopleware, first published in 1987, Tom DeMarco describes what most post-conventional leadership theories and the whole agile community put onto company agendas today: Projects are all about people and the intrinsic motivational energy amplified in great team work! Projects succeed when you have yelled teams and they will fail with poor performers and lone warriors.

It’s an easy and short read but contains much more value then lots of todays books double the size of Peopleware. It’s structured into 5 parts all of which consist of several essay like texts with lots of practical hands-on suggestions described in a very funny way:

Managing the Human Resource

Almost all project failures are due to problems based on the working people, yet managers spend most of their time on technological issues because those are the issues they were trained to handle. But especially in the area of software development managers have to understand the nature of the human beeings, their working habits, motivation, and the factor of creativity. DeMarco suggests to give more room for errors, to respect and value both individual und team contributions without only focussing on technological yardsticks but also on sociological ones. One important aspect which is underlined is the use of the brain in the office. Lots of companies today and at that time focus too much on producing code. They forget about the creative thinking process before the implementation which is maybe even worth much more. Another important fact that has to be considered in development projects is that quality should equal productivity. And this is mostly about the people building the software. Nothing is more demotivating for software engineers then a management which prioritizes code / feature quantity over quality. A last finding of DeMarco regarding the Human Ressource factor is that project estimations should be done by the engineers themselfs and not the manager or some third party stakeholder. This is quite common today in agile companies that adopted planning or estimation poker.

The office environment

Investing in customized workplaces that enhance the productivity of intellectual and creative workers is one of the most important but least understood nuances of engineering management. Effective workplaces should allow privacy and calm focussed work as well as creative group sessions and discussions. It must be possible to support an enironment where it’s possible to concentrate and think while working (aka flow). In open office spaces with noisy telephones and moving colleagues this is definately not possible. When it comes to the measurement of productivity DeMarco points out that the gut feeling backed by some raw data is enough. There is no such thing as real productivity measurement in software development.

The Right people

Don’t let yourself influence by appearences to bring in talented people. It is important to support people in beeing themselves without playing any role: Thats the way you get the most out of your people. You should put as much effort in the hiring process as possible… The same counts for the process of developing people and their talents and create a sense of performance with a carreer path.

Growing productive teams

Real work gets done so much faster and better in great teams that effort should be put into setting an effective stage for them and help them grow together. Don’t try to standardize the behaviour and manner in which a team operates. Strinving for professional behaviour is just a sign of a insecure and immature management: The effectivity of teams is much more important. People have a natural tendency to learn to work well with each other if they have the same goals. We must try not to impede this phenomenon and instead make full use of jelled teams. “Teamicide” is supported by defensive management, bureaucracy, physical separation, fragmentation of peoples time, quality reductions, phony deadlines and clique control. It is not enough to avoid or reduce these habits… You as the manager have to support your team to find as much situations to succeed together as possible. Trust your team and every single team member! That’s the only way to succeed. The best bosses do what they are best at and leave what their workers are better at to them. Build an environment with these feautures: Cult of quality, lots of satisfying closure, sense of eliteness, support for heterogenity, preserve successful teams, provide strategical but no tactical direction. The elements that facilitate team formation and jelling may be counter intuitive, but if a manager is brave enough to provide the above mentioned environment, the team will reward him with success as they try to protect the enjoyable environment.

It’s supposed to be fun to work here

There is a need to constantly breathe life back into our work. We spend way too much of our lives working to find it a drag. Good managers try their best to sense who needs direction and who doesn’t, and provides direction for the former while only removing barriers for the latter. Don’t be discouraged that you are the only one trying to change something silly in your work environment. If it is obvious enough, you may be able to easily get your co-workers to join in your efforts.

2. Management 3.0


This master piece book from Jurgen Appelo just was released in the spring of 2011. I really enjoyed the read and I was quite glad that I finally found a book that takes management and leadership in an agile world into account. There are is way too much material about agile methodologies out there that don’t even mention the role of leadership in SCRUM, XP, KANBAN etc. Somehow you could get the impression that leadership and management isn’t needed anymore: The Scrum Master and the self-directed (sorry: self organized) team will handle it themselves. Wrong!!! And Jurgen Appelos book descibes the new role of management in a comprehensive and both theoretical and practical way. The book is organized in 6 themes and a introductorial part about chaos and systems theory and the description of the body of knowledge of software development.

Energize people

People are the most important parts of an organization and managers must do all they can to keep people active, motivated, and creative. Beware of the difference between making and keeping people active, motivated and creative! It’s the managers responsibility to support the information-innovation system: Spread information, support people to think and collaborate with each other to make innovation happen. Therefore managers have to understand the basic intrinsic desires of people by setting up regular one-on-ones, asking questions about the health of the organization, and supporting an open feedback culture.

Empower Teams

Teams can self-organize and this requires the right touch of empowerment, authorization, and trust. Managers have to understand that they should have a gardener mindset: Growing a team instead of building it! The right amount of clarity (about responsibilities and key decision areas) is critical for letting a group of grow into a self organized team.

Align Constraints

Self-Organization can lead to anything! It’s the manager who should protect the boundaries of a team by supporting people and resources and give people a clear purpose and defined goals. The manager should manage higher goals without using targets and extrinsic motivation. Instead he or she should build trust to accept common rules, increase the understanding of current situations, increase the social belonging accross the team, and address the need to improve oneself.

Develop Competence

It’s essential to understand that teams cannot achieve their goals if team members are not capable enough. It’s a critcial management task to develop the competence of each team member.

Grow Structure

Since most teams operate in the context of complex organizations it is important to consider structures that enhance communication and collaboration. This should be done by making peoples jobs dynamic and change work structures into a network like organization.

Improve Everything

To avoid failure and minimize team erosion as long as possible it’s important continously improve everything: people, teams and organizations by setting up regular learning and correction possibilities (e.g. retrospectives, kaizen, kaikaku). This should become the cultural baseline of the whole organization.

3. Growing Software


This 2009 publication of Louis Testa is unlike Peopleware and Management 3.0 not just about the management of humans and teams but also about the system and software development process. It is packed with useful hands on practices and strategies for almost everything that a typical manager encounters-from personnel decisions and relations with other departments to project estimates and software release strategies. This one is structured in 5 different parts from team management to the planning of the technological future.

Development Team

The book starts with a brief description of how to start your job. It doesn’t matter if you got promoted or changed to a new company – the introduced strategies of how to get on touch with the team, its issues and working habits are quite useful for both cases. The rest of this first part reads like a short summary about communication, team forming, hiring and development processes and effective working environments.

Product And Technology

This one starts with a description of how engineering and marketing teams should collaborate to define and conceptualize the product. It’s about different types of pre-releases, real world tests of products, the process of driving releases and how to kill projects. Testa continous by describing how to decide and use tools and methods for the engineering process. The assessement, documentation and orchestration of technologies forms the end of this section.

Outside Of Engineering

In this section Testa gives you guidelines for working with other parts of the company, the CEO and the customer. This is about the representation of your team in an outside world and the effective first hand understanding of the needs and requirements for the products you gonna build.

Making Work Flow: Projects, Process, And Quality

The project management section with hands-on strategies for how to plan, drive, track and exectute projects and processes. It’s completed by a brief description of the responsibilities and processes of a QA team within your oganization.

Planning The Future

The last section of Growing Software deals with the process of creating visions and making roadmap strategies to reach these visions.

  1. Adam says:

    Bastian…..

    Thanks for the insight.

    I find myself in the EXACT situation you were in in 2007, except it’s now 2011!

    I’ve already placed orders for the books you have mentioned – I hope they can help me as you wish they had helped you.

    I’m also in Berlin too working at an ever-so-quickly growing startup as a Development Team Leader, so I’m looking forward to any knowledge these books (or you) can offer.

    Big thanks!

  2. Bastian says:

    Hi Adam,

    thanks for your comment. It’s good to know that my article maybe helped you in your current situation. Which Startup Company do you work for? If you are interested I could suggest much more material to read and study :)

    Cheers Bastian

  3. [...] 3 books every (not just junior) development manager should read before diving into practice Published Tuesday, September 06, 2011 9:57 PM by gOODiDEA Filed under: Career, Pattern, Architecture, MongoDB, Node.js [...]