Quality without QA
It's hard (and expensive) to hire good QA engineers. Atlassian went for many years before hiring our first QA, and today developers still outnumber them 25:1. The secret to scaling QA is to bake quality assurance into every step of the workflow and ensure developers analyze and test not just their own work, but each other's as well. Of course, developer time is a precious resource and developers can be a proud bunch so the trick is to ration it carefully - ideally not letting them realize they're doing QA at all.
You can achieve this with a set of techniques that Atlassian have evolved over the last decade, including:
* a rigorous Git feature branching workflow
* lightweight, but effective, peer code review using pull requests
* cross-disciplinary feature kick-off meetings
* heavy use of automated testing, including checkstyle, junit, qunit, OSGi-based "wired" tests, webdriver and httpclient based tests.
* judicious, enjoyable manual testing in various forms such as dogfooding and blitz testing
* QA engineers as quality advocates and mentors, rather than manual testers
This talk will show you the techniques and tools that we use to maintain a high level of quality for all of the code that ships to our customers, and how you might implement them in your own organization.
Though Atlassian is obviously a vendor of developer tools, I'm passionate about the underlying workflows. We use Atlassian Stash for Git hosting and pull requests, and Atlassian Bamboo for Continuous Integration, but I'll also show how the techniques demonstrated in this presentation can also be implemented using tools freely available from open source, such as Gerrit and Jenkins.
Participants will walk away with a good understanding of how to optimize their workflows for both productivity and quality. I'll also provide some concrete take-aways that you can use to get developers and other stakeholders at your organization to think about software quality during all phases of the development process.