This is a very short list of some of the most popular tools available for software development. Depending on project needs, different tools will be appropriate, possibly including those not listed here.
- Puppet is a tool to manage large scale deployments.
- Ansible is a tool to automate deployment across multiple hosts.
- Chef is a tool for large scale IT automation.
- Salt is a tool for deployment orchestration.
- Vagrant is for setting up environments reproducibly.
- Docker is a platform for building distributed applications.
These are just the currently most popular choices for smaller projects, many other tools are available.
- Subversion / SVN is an open source centralized system.
- Git is an open source distributed system pioneered by the Linux kernel project.
- Mercurial / hg is an open source distributed system.
- Bazaar / bzr is an open source distributed system supported by Canonical Inc.
- CVS is an open source centralized system, now of primarily historical importance.
- Source Safe is Microsoft’s historical centralized system still in use for smaller projects.
Java project tools
These tools are oriented towards Java development, and mostly implemented in Java also. They will be your defaults for Java projects due to developer’s familiarity with them.
- Maven is build system with a strict project organization model.
- Ant is a build tool which supports Java well, and can easily do other arbitrary scripting.
- Hudson and Jenkins are highly extensible continuous integration platforms.
- Parabuild is a proprietary continuous integration system.
Microsoft Based Projects
Most Microsoft based projects will use the standard Visual Studio tools, possibly with some additional third party support.
- MSBuild is Microsoft’s command line build tool
- Visual Studio Team System is Microsoft’s suite of development tools.
- Team City is a third party continuous integration system.
These tools are more typical for other projects such as C, Python, Ruby in a Linux or UNIX environment