Build Teams to Run Marathons, Not Sprints
Naresh Jain Malad, Mumbai, India
If you run at your fastest pace for a short period of time, a “sprint” in track and field terms, you burn yourself out. To run a marathon, a team must be disciplined, practice everyday, and keep a sustainable pace. When working on software projects, we don't want to run just once and exhaust ourselves. We need to keep going at a steady pace. Sustainable teams are geared towards running marathons and not allowed to just run sprints.
Building useful software products is not an end in itself. Team members need to learn how to help one another, help other team members realize their true potential, and create an environment that allows everyone to go beyond their limitations.
Most teams have a gap in knowing how to do this. Someone needs to play an active role to fill this void. In most cases, the software project manager is the best choice to work on team development. I suggest the project manager target a goal to build sustainable teams. This is a primary way he/she can add extra value to the project.
If the project manager focuses on team building and individual growth, on time and within budget deliveries will automatically fall into place. This also ensures that teams are self-organized and don't need a baby sitter if the project manager needs to guide multiple projects simultaneously.
Typically, project managers get caught up in daily fire-fighting tasks. Hence, they don't really have time to strategically build a team. Working with a long-term team development plan ultimately allows the project manager to keep out of micro-management, not only for the current project, but on all future endeavors.
We need a fundamental shift in the focus of software project management practices so that the pm takes a more strategic role. Leave the tactical things to the programming team. This ensures that team will take ownership of the project and the software project managers can become true facilitators or catalysts, making sure things are moving in the right direction for the project overall.
General George S. Patton said, “No plan survives contact with the enemy”. This means project managers need to spend more time empowering their teams to deal with unanticipated changes, rather than trying to get involved in day-to-day coding and architecture decisions. It's foolish for them to think they can fool IT team into believing they grasp the intricacies of software development if they do not have a programming background. The team knows immediately that they don't know what they are talking about.
A software project manager is like an operating system's kernel*. The kernel itself does not do end-user tasks. But, it ensures that the end-user tasks are correctly completed by the applications sitting on top of the kernel. Similarly, if a project manager can be a true facilitator and coach who ensures optimal collaboration between the team members, building self-organized teams ready to run marathons and deliver high-quality software should no longer be an issue.
- A system kernel is the central component of an operating system. It connects the application software such as internet browsers, word-processing, spreadsheets, and e-mail to the hardware of a computer. Memory, processing functions, and input/output devices can thus be used by all application.