Continuous Integration, Delivery & Deployment
We practice Trunk Based Development, we don't have branches, we don't follow “git flow” or any other feature branching. We merge every commit to master and use feature toggles if necessary. Definition of “Done” at Tagvenue is that code is deployed to production, released to users and feature toggle/old code is removed. Every developer pushes to master more than 4 times a day on average.
We do Test Driven Development, we write tests first and they are all ran parallelized in the cloud in less than 5 minutes. We keep the build in a green state, we remove any flaky test as soon as we find them. We have all levels of tests, from unit and integration tests to a small number of end-2-end, functional, and smoke/infrastructure tests.
Every developer does 1-2 automated deployments daily on average. This makes us practitioners of Continuous Integration and Delivery and soon it will be Continuous Deployment too.
We do Infrastructure as Code using Terraform, it takes 10 minutes to create a new production-like test environment. Every developer is self-serviced.
We have powerful telemetry that we are using for logging, monitoring, and alerting. We are collecting many application-level metrics, events as well as logs from different components of our stack (e.g. PHP app logs, server logs, CDN logs, etc). Thanks to that we have very fast feedback from the production environment.
We limit WIP and minimize cycle times, we work on our constraints and try to improve the process of delivering software.
We follow many best practices and constantly adding new. We put in an effort into learning and improving how we work. We are reading books, we do retrospectives weekly, code reviews, pre-coding reviews, give lots of feedback. We spent 20% of our time on non-features improvements e.g. investing in automation or refactoring.
The team is small, currently 4 developers in the company. You will have a huge impact on what is happening and you will meet people here who truly understand the industry and our craft.
Work is interesting, we are implementing many new features and are facing scaling problems as our volumes grow and we are entering new countries.