Chapter 11. Managing tools

The need for a tools champion

Every software development project uses tools, ranging from batch files and Perl scripts, through ad hoc utility applications created in-house by team members, to commercial offerings purchased from third parties (including compilers and IDEs). For smaller projects, teams can get by with an informal approach to tools: tools issues can be handled in "quiet times" by individual developers. However, for larger projects, you need to take a more systematic approach to tools.

For smartphone projects, my recommendation is that your team should have a "tools champion" – a dedicated senior engineer whose full-time job is the following:

  • Understand all the software tools used by the project team

  • Ensure that team members receive suitable training on how to get the best out of the tools available

  • Understand and prioritize all the potential software tools that could be used by the project

  • Evaluate the tools offerings available from third-party vendors

  • Foresee possible problems with tools as the project proceeds, and plan ahead to forestall these problems

  • Ensure that the need for good tools is kept in mind throughout the project, despite all the other pressures for mind-share

  • Consider special subprojects to "productize" tools that have been developed internally, making them fit for wider use.

In short, the tools champion ensures that optimal use is made of tools throughout the project.

Tools often come under stress as a project proceeds:

  • Extra code ...

Get Symbian for Software Leaders: Principles of Successful Smartphone Development Projects now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.