Introduction

Each project that has medium complexity should have a clear deployment process in order to allow launch a new release in a reliable and quick way. With a correct deployment process you can detect bugs before introducing it to a production environment.

Version Control System

Every project must use a Version control systems (VCS). VCS are useful to track the changes we made in our code and facilitates team collaboration. Git is our preferred VCS. We use GitHub for open-source projects and GitLab for proprietary projects.

Git Flow

GitFlow is a branching model for Git. It has attracted a lot of attention because it is very well suited to collaboration and scaling the development team. You can learn more about it reading this blog post.

Environments

When you are developing a new application commonly you will have many environments with differents versions. Each environment has a specific propouse and a owner. We recommend the definition of 5 enviroments.