Ducks Make It Look Easy Too
Since I joined SonarSource full time at the beginning of this month, I've been thinking a lot about ducks and belly dancers.
That seems like an odd combination, but they have more in common than you might think. Most people have heard the old saw about being like a duck: stay calm on the surface and paddle like hell underneath. It's pretty much the same for belly dancers; those big, poofy pants (or skirts) they wear aren't simply a fashion statement; they're intended hide how hard the dancer's legs are working in the process of making the rest of the body move.
It's pretty much the same story for SonarSource. As a member of the SonarQube community, and even as a part-timer at SonarSource, I had no idea how much work goes into each new version of SonarQube and the language plugins. Having spent the first two weeks of this month at the La Roche office, I'm beginning to understand.
As a community member, I was concerned mainly with SonarQube itself and the language plugins I used every day. Wearing the blinders of that narrowed focus, it always seemed like a very long time between releases. With the blinders off, and seeing more clearly everything that goes on, I'm astounded by how often new versions go out the door. From November through January, there were 18 major releases, and that doesn't count the sort of internal refactoring that will make it easier to continue pumping out high-quality code in the future.
What I saw in Jira and on the mailing lists is the above-the-water portion of the duck (or the above-the-legs portion of the dancer, depending on which metaphor you prefer). What's going on underneath is an incredible amount of testing (manual and automated), test maintenance, management of milestones and RC's, and yes monitoring and improvement of quality.
As a community member, I had noticed how few real issues are turned up for each new release candidate. I had also noticed that sometimes RC1 of a new version isn't the first release candidate to be announced to the community for testing. The exhaustive tests that SonarSource itself performs mean that most issues are caught internally before the community ever sees a new version - often in the milestone phase, but sometimes in the release candidate phase.
That's because the focus at SonarSource is not just making quality monitoring software, but making quality software. Making it look easy is just a byproduct.