Resources

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.

Deployment

  • 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.

Revision Control

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.

Other projects

These tools are more typical for other projects such as C, Python, Ruby in a Linux or UNIX environment

  • Make is the traditional UNIX build tool, and has many clones on other platforms.
  • Rake is a build took for Ruby based projects.
  • BuildBot is an open source continuous integration system.
  • Tinderbox is an open source continuous integration system, with three versions managed as separate projects.