Someone recently emailed me this joke:
“A little girl and a little boy were at daycare:
The girl approached the boy and said, “Hey Johnny, wanna play house?”
He said, “Sure! What do you want me to do?”
The girl replied, “I want you to communicate.”
He said to her, “That word is too big. I have no idea what it means.”
The little girl smirked and said, “Perfect. You can be the husband!””
Okay, while we may find that amusing, we all know two-way communication is a helpful to have in a marriage, or any relationship. So what does communication have to do with releasing software?
You may have noticed that over the past twelve months we’ve increased the rate at which we release our software. We’ve recently had a lot of feedback about the frequency of our release cycles. Some customers are really excited about this, whilst others let us know that they are finding it hard to keep up to date with the latest release. So I wanted to take some time out to let you know why we are doing this and what it means for you.
Why are we doing it?
It boils down to two things: feedback and value.
Just like marriage, two-way communication is important. At Atlassian we try to do a lot of communication – internal and external to the organisation. Internally, our agile process encourages a lot of internal communication through dogfooding and frequent internal releases. Externally with our customers, all our products have a early access program, a user task force and a public issue tracker. Through each of these feedback channels, we receive valuable feedback. However, the best feedback we often receive is from customers who upgrade early and start using the the products daily. Frequent windows for feedback is the most important part of our agile development process.
So what do we do with all the feedback? Edwin recently wrote a blog about what we learned from our various feedback channels throughout development in our JIRA 4.2 release. Feedback is an important driver for our Product Management team. Receiving early feedback means we are continuously changing and adapting to meet your needs. These changes are typically in the form of product feature improvements and tweaks as well as product roadmap adjustments. A frequent software release cycle enables us to move quickly.
The effect of this? We get value in your hands, faster. There is no point making you wait when we can get improvements and fixes out as soon as you need them. Not only so, but the longer we hold off releasing, the greater the risk of heading in the wrong direction and equally as important, and the longer it is before you get value in your customers hands.
What about the big stuff?
So you may be thinking: “Well, that’s nice – but what about the bigger things? Does releasing frequently mean your ignoring the bigger, more difficult problems that need solving?”
As many of you may know, we have lots of highly voted issues in our public issue tracker. Atlassian prides itself in being open and as transparent where we possibly can. We find having this level of transparency on our issue tracker is, sometimes, a double edged sword. It’s great because it’s a fountain of great feedback that helps us improve our products. However, no matter how many issues we resolve, we can’t make everyone happy. Atlassian now has over 20,000 customers – we will always have highly voted issues.
Shipping releases frequently doesn’t mean we are ignoring these issues. These issues have a high number of votes for a reason. They are generally complex to implement. Building software always involves a fine balance between the complex, long-term enhancements with the easier, short-term improvements. So how do we achieve this balance?
Atlassian has lots of teams working in parallel. For example, as I write this post the Confluence team is split into four teams, all running in parallel. We have a team working on the next release of Confluence, a team working on a maintenance release, another working on a highly voted issue and a fourth team focused on delivering the new Confluence 4.0 editor you may have heard about. The teams which are working on the more complex solutions often run for much longer periods of time and span throughout multiple releases. These teams are enable us to deliver value as early as possible to a majority of our customers.
So not only is communication important, but just as in marriage or in releasing software, it needs to be regular. Why? So that we can deliver product improvements to you and your users, faster. Confluence 3.4, JIRA 4.2, GreenHopper 5.3, Bamboo 2.7, Crucible and Fisheye 2.4 have all been released in the last few weeks – check them out.