Development Ecosystem

Developing requires several services and applications. The choices to be made will depend on the technology used, and the requirements of the project, but there are some general guidelines.

Most development environments will have:

Component

Usage

Example

Code repository

Store for the version control system, which allows several people to access and use it

Github, Bitbucket

Continuous integration

Service for handling tasks after changes are committed to a project

Travis, Jenkins

Dependencies management tool

Application which handles the project dependencies

Maven, npm, pip

Dependencies repository

Store with libraries and projects to be used as dependencies

Bintray, PyPi, Maven Repository

Documentation server

A server for files which document the project

Any static content server

IDE

Integrated Development Environment, comprehensive application to help programming

Eclipse, Pycharm

Packaging management tool

Application which handles the project building process

webpack

Project management tool

Application which handles the repetitive, complex and common tasks of project building

Maven

Reporting services

Service for generating any kind of report, such as code coverage or code quality

Coveralls, Landscape

Version control system

System which keeps track and a history of all the changes in code

svn, git

But these are just the components which take a direct part in the project lifecycle. A few other important components, such as issues tracking, or test runners, are not included and will be commented in their own sections.

Last updated