At BandLab we are constantly building and experimenting with complex programming for all our web products. We are agile, able to move fast as a business, and if needed push updates multiple times daily.
Finding the best way to solve any issues we may encounter and integrate this with our workflow and tools is the result of months of working together as a team; the Product Team, the Web Team (our developers) and the QA Team.
Challenges we encountered and solved:
- The ability to isolate each task in a specific environment
- Each additional issue should be easily and independently testable
- A thorough system for follow-up tests and feedback
- An ability to deploy fast and as soon as ready
- Communicate any new changes to the wider company
As a musician, your most valuable assets are your ideas and your creations; this is where we put our focus and effort to ensure we do not break that creation process and do not lose data, while always bringing more and more value to your creation tools.
How do we safely test every change and deploy them as soon as possible?
What is a Change?
We categorise changes as fixes (eg: bug fix, small UI/UX change) or features (eg: new functionality, significant refactoring).
We use git and Jira; the web developer takes a task from the to-do list and starts it on a new branch, from our main branch: develop.
With our own naming convention, each git push would automatically trigger a build, including tests, and would be deployed on a separated testable environment—a replica of the production environment.
These replicas environments are the key to success, it allows the developers and tester to only focus on what is described within the task. The web application is fully available on a test URL, and it is only built for this specific task and only contains changes specific to it.
Once approved by the tester, the branch would be merged into the develop branch, where other changes can be added until the next release is decided (which can happen a few of times per day).
A release is a human made decision: the pending changes are bringing immediate value or more stability to the product. This decision can be made anytime during the day by the Web Team or the Product Team, the changes would be pushed to test and stage environments, where e2e tests are running to make sure nothing else has been impacted in the application.
When everything passes, changes are pushed and deployed to production.
The BandLab Team
We love ‘tasks runners’ and we automate a lot! Almost everything runs automatically at BandLab, even including the release notes published in the company Slack channel! 📣 The more we improve our processes, the better and more efficient our tasks are.
The key to operating as an effective team is not only focussing on the product itself, but also on the workflows around it to distribute and update it. Workflows and tools connect and engage the teams with a sharable vision, it unites our passion as developers and gives space for new ideas and a place where decisions can be made between colleagues and where new technologies can be discussed and where appropriate often adopted!