Development tools are tools that support different aspects of software design and implementation, such as editors, integrated development environments (IDEs), revision control systems (RCS), issue trackers, performance measurement and analysis tools, memory checkers, and debuggers. Some tools, such as debuggers, are designed for a single development activity type. Other tools support a variety of different tasks; for example, the Eclipse IDE provides support for editing, compilation, testing, debugging, and performance analysis.
From the initial design to low-level code optimization, tools can be used to at least in part automate development tasks, thus leading to improved developer productivity. Development environments typically automate error-prone and labor-intensive tasks, such as build system generation and management. Another way in which tools can improve productivity is by reducing the likelyhood of errors (e.g., through code generation). Moreover, tools can provide better coverage than any manual approach in certain areas, such as code analysis (for memory problems, style, performance) and optimization.