Photo: Christopher “Rice”
In a world where developer and admin workforces are commonly remote and often working on many features that are to be bundled into larger releases the idea and practice of continuous integration is one that can deliver real results for quite minimal investment.
There were two speakers due to talk on the matter, so rather than I spout on about the topic myself I’ll cover their presentations as best I can.
Klea Kolaric – Using Bamboo to enable CI
Klea is a technical consultant at a Salesforce implementation partner and talked about how they are using Bamboo within their CI workflow at the company. Bamboo is a CI and Build Server tool from Atlassian (who also make the Confluence and Jira tools).
Klea started off by talking about the options for deploying to Salesforce; Using Changesets, an IDE or CI tools. She listed the pitfalls of the first two options and how the CI route removes a lot of risk from human error as well as giving huge speed improvements.
Using tools such as Bamboo you also get a nice controlled process for rolling back deployments, useful if something goes wrong (as it sometimes does). Another big benefit, in my eyes at least, is the auditing ability that tools such as Bamboo can give you. Klea told us how you get the important Who, When, Why, What and How information through Bamboo’s great integration with the other tools in their toolset. Essentially commit messages from Bitbucket and issues from Jira are all linkable if provided.
One handy tip, that might just save you from a major head-ache might be to not set deploy to production variables by default. Klea has her setup such that if she accidentally runs her deploy process, then the automatic parts will only run a validation build; for her to run an actual deploy to production she has manual steps that need to be fulfilled.
Klea’s slides can be found here.
Sebastian Wagner – Multi Orgs and using Git for CI
Sebastian, a freelance Salesforce Certified Technical Architect was the next and last speaker for the evening. His talk covered how and why Git and CI techniques and tools can be used in Salesforce development. His talk covered some of the same ground as Klea’s but was less Bamboo-centric; again he covered some of the issues that can be resolved (or at least reduced) by using CI, but he also mentioned non-Atlassian tools such as Github and Jenkins. Here, at MobileCaddy we’re using both Atlassian and non-Atlassian tools for our CI. The tools are similar but certainly some are more suited (and free) than others.
There was a lot of content in Sebastian’s slides, and for those that want to dig in he has kindly published them here. One of the key points that was mentioned but I think is worth picking up on is the use of a good git branching model. Sebastian mentioned the GitFlow model which Atlassian have brilliantly written up. I first came across this kind of model through the excellent post by Vincent Driessen called A successful Git Branching Model. Even though this was posted by him over 5 years ago it’s worth a read for sure.
On Continuous Integration: if you’re not doing it, start… today.
On the event: This was the most attended meetup to date I believe and shows how the community is going from strength to strength. I did note though that there were at least 70+ blokes in the room, and less than 5 ladies. I tweeted this and got a reply from April Kyle Nassi (Developer Community Manager at Salesforce) and as you can see in this conversation it looks like there are steps at least to improve this. It also turns out that there was a Women Who Code event on in London on the same night, and this could certainly have played a part.
As usual there was a full supply of beer and pizza, so thanks again to the sponsors.