Some tools (where "tool" can be a CASE tool, a project planning tool, a process, or anything like that) are meant to aid programmers. Aiding programmers refers to anything that makes the programmers more productive, clarifies their thinking, eliminates redundancy or rote in the development process, etc.
Examples (of tools that are generally only useful to the programming team) include:
- Version tracking systems/configuration management tools.
- Compilers, debuggers, RefactoringBrowsers, etc.
- UnitTest frameworks, other SQA tools.
Other tools are intended to aid
managers; allowing management to track and report on the progress of the project, estimate time and cost, audit the ongoing work, etc. The king of management tools is, of course, the schedule.
Many tools and processes are (in theory) capable of serving both masters:
- DesignReviews? and formal design procedures. Allows programmers to clarify and crystallize the design; allows management to verify that due diligence is being paid to such issues
- DefectTracking systems. Allows programmers to track issues (defects or whatever else) and address them in an orderly fashion. Allows management to have visibility and input to such process, also allows management (in theory at least) to measure the defect-generation rate of programmers and thus audit their performance.
However, in many cases attempts to serve
both masters will fail; as the two uses of such tools conflict.
- Management-audited design tools often turn into BigDesignUpFront; a better technique for programmers is the LittleDesignUpFront (which is not designed with management audit concerns in mind)
- Use of DefectTracking systems as a measure of programmer performance kills its effectiveness as a method for the team to handle defects. If programmers know that any defect filed "against them" is a demerit, alternate defect tracking systems (and ones which are highly error-prone) will often arise. Programmers will view having a defect filed "against them" as an offense and get pissed off when such bug reports are filed.