GIT - Flow, Pull Request
We use GIT as a version control system. We follow the standard proposed by nvie differentiating by branches as well as by different variations tailored to the client. This allows us to have control over what is deployed in different environments and be able to quickly deploy a hot-fix in production when necessary.
Our code is reviewed by another team member and by the client (in case the client has the technical know-how) before being merged with the main development branch (dev). This improves the quality of each delivery and reduces possible human errors.
We also integrate with Jenkins to analyze the code automatically (coding standards, duplicate code, code format, unit tests, Behat tests...). This way, the person in charge of reviewing the code has all the information needed when he/she has to decide whether to accept or reject the merge.