In 2009, our team started working with our first automation pipeline. In that moment, we were working on a custom ecommerce platform under SVN (Subversion) and the problem to solve was deploying client's staging website after every commit to speed up new features tests and approval to meet launch deadline. We were not able to grant access to anyone in the team, then just one of the guys was in charge. It was a time consuming task at a daily basis. Therefore, we wrote a bash script to make the procedure automatically after commits, using post-commit hooks available in the server. Additionally, we implemented Selenium for running automated tests on main features (like checkout process).
It was a simple idea, but changes our approach about repetitive tasks. Of course, we can't implement an automation for all tasks, but we can evaluate cost-benefit when the task must be performed over and over again, like testing and deploy.
Nowadays, all of us are familiar with terms like DevOps and CI/CD, in Serfe we are following this strategy since 2009. We are continuously improving our internal procedure, combining GIT repositories with automatic testing tools and the vast experience of our team.
- Plan: everything starts with a good plan, otherwise final result won't be as good as it can be.
- Code: our development team start coding the feature
- Build: the new feature is integrated in the app
- Test: all test cases are being run (automatic and manual testing)
- Release: we proceed with staging environment update
- Deploy: once all is ready, we proceed with production environment update
- Maintenance: actively monitoring app status, seeking for improvements
- Strategy: adjustments and updates based on lesson learned
By improving the release cycle, we are able to spend more time working on new features, adding more value after each iteration.
If you would like to know more about our service, do not hesitate to contact us.