The choice of tools to be used in the software development process can literally make or break a project. Once the target environment and programming language(s) is chosen, and the requirements and end goals are well-enough understood, the next task in starting the work of a software development project is to choose the tools that will be used throughout the process. It's important to be aware of the types of tools that are available for use, the benefits each can provide as well as the implications for using them.