There's this idea floating around: an idea that builds are the devil. That they're unreliable, tedious and confusing. I won't try to refute this... but my secondment has taught me that builds are so much more! I began at Atlassian as a developer on the Confluence development team where my work primarily involved delivering features such as Confluence-JIRA integration and the Confluence Space IA (Left Sidebar). So when I was approached about joining the Confluence build engineering team for

Continue reading »

Developing on the Salesforce platform can become complex to manage as your team and your projects grow and mature. At Atlassian, our internal Salesforce development team started five years ago with a single analyst making small changes and customizations to support a single department. Today, it’s a small team of developers, admins, and a program manager supporting multiple departments with varying needs for customizations of our Salesforce deployment. The team manages both types of Salesforce

Continue reading »

If you follow Atlassian, you know we're big on continuous integration ("CI") and Git–separately, sure: but even bigger on the power that the two offer in combination. Today I want to share some tips for getting your CI system to interact optimally with your repository, which is where it all begins. 1: Avoid tracking large files in your repo One of the things you often hear about Git is that you should avoid putting large files into your repository: binaries, media files, archived artifacts,

Continue reading »

Like an ogre One of my colleagues had an opportunity to work closely with Clover's HTML code coverage report. After several days, he stated: "Do you know? Clover's HTML report is like an ogre from the Shrek movie - it is composed of layers. Every time I thought I already learned this report, I was discovering new, tiny but yet extremely useful detail in it. I don't even know if I reached the bottom already." Layers of code coverage As a Clover developer, I know these reports from the inside-out.

Continue reading »

Last week we gathered up several hundred of our fellow software makers and talked about four development practices you can use to keep from getting your wires crossed: feature branching, continuous integration, pull requests, and information radiators. These are practices that teams at Atlassian have been really successful with, and–to the surprise of exactly nobody–we've baked support for them into the Git Essentials solution. ICYMI In case you missed it, here are the key points we covered: Feature

Continue reading »

5 tips for great code reviews

In almost every organization, team members collaborate to get work done. Software teams typically transition issues between people for different functions like code development, code review, and testing (even if they are all on the same team). When transitioning an issue from one team member to another it’s important to minimize the amount of ramp up required for the receiver to fully understand the issue. Transferring issues can be extremely expensive as it requires time from not only one,

Continue reading »