This is the first in a series of blogs on Atlassian QA. We will cover how the QA strategy has been implemented in different teams, the tools and techniques we use, and the personal experiences from members of the team. True, it's an assumption – but probably a safe one – that the majority of professional software testers can't code. This seems to be the cause of perennial hand-wringing by some testers who feel the need to justify their lack of technical skills, and frustrated developers who

Continue reading »

If you've ever sat down with a more experienced developer for a pair programming session, you'd probably agree that it's one of the most effective ways to learn, and absorb new skills, tools, and tricks. So I am very happy to present you with a new webinar that will reproduce the same feel of a live training session. This is your chance to sit beside me as I work through a typical bug-fix lifecycle from branch creation, through code review, to the final merge, using the powerful toolset that Git brings

Continue reading »

While we wait for the next major git release which will bring about some serious updates let's peel off the notes of the latest point release: 1.8.5 is upon us! Here is what I could dig from the release notes that was interesting to me in my role of average git user. Oh and if you haven't seen them yet check out my earlier notes on releases 1.8.2, 1.8.3 and 1.8.4. Customary installation pointers It is customary for me to provide a few pointers for the upgrade, with caveats and reminders that

Continue reading »

I am still incredibly excited by Docker. The more I think about it, the more I foresee a revolution in software deployment architectures for SaaSs - yes, SaaSs ... I am speaking Parseltongue. If you remember my previous article, I wrote a guide on how to deploy a Java application - Stash - with Docker. That worked pretty well, but I deferred further automation to a later date. In this second post I am going one step further with automation, exploration, and awesomeness. My long-term plan is simple:

Continue reading »

Two weeks ago I had the pleasure of speaking at the Jazoon conference in Switzerland about Git workflows. One particular piece that seemed to resonate well with the audience was the idea of looking at the underlying rules when it comes to branch based workflows. Workflows A workflow defines steps that represent how your team agrees to get code into production. The workflow being used needs to support a number of different use cases. How do I fix a bug in an old release, how can I make a hotfix

Continue reading »

Today I'm here to preach the gospel of promise-based async programming in Node.js, when coupled with an exciting new Harmony feature called generators. If you've been writing Node.js code for a while, then I'm sure you're familiar with the Node.js callback model. You've probably also heard some of the more common nicknames for it: callback hell, callback soup, pyramid of doom, etc. It looks a little something like this: [cc lang="js"] var checkIfBaconIsDelicious = function(cb) { // Truth

Continue reading »