Skip to content

Open Source

Sonar in the news

Sonar - Wed, 09/01/2010 - 21:24

Welcome to the roundup of blog posts and pages that mentioned Sonar last month…

5 Java powered open source tools for your team
By Alex Collins, 27 August 2010
If you’re a Java shop and want to ensure you can support your team’s toolset, here are some pointers for the must-have tools we modern developers use day-to-day.

Killer tool: Sonar
By Erwin Vervaet, 27 August 2010
Today a colleague at work showed Sonar to me, and I must say that I was really impressed! Sonar is an open source code quality analysis tool that uses a number of popular Java code analyzers like PMD, CheckStyle, FindBugs and Cobertura under the hood, …

Cross-referencing plugins in Sonar 2.2
By Josh Cummings, 19 August 2010
Formerly, we had three Sonar plugins, two “mavenly” dependent on the other. The parent plugin held the common code for uploading non-Java files into Sonar for reporting. The other two took care of analyzing xml and css, respectively, and tying violations to those files.

Integration Tests in Sonar
By Josh Cummings, 19 August 2010
Integration tests are another important aspect of analyzing a project’s overall health that Sonar does not yet support out of the box. To get this functionality, you’ll need to build a couple of Sonar plugins (or try using the ones that I built) that will instrument your integration test code, run the integration tests, and collect the integration test results as well as the new coverage data.

Architecture Analysis Tool SonarJ 6.0 Supports Structural Debt Index and Quality Model
By Srini Penchikala, 16 August 2010
The latest version of software architecture analysis and quality governance tool SonarJ supports structural debt index metrics and architecture quality model. The company behind the product, hello2morrow, last month announced the release of version 6.0 of the tool.

Maven 3 and Sonar
By Anders Hammar, 16 August 2010
Another step towards a final release of Maven 3.0 was made the other day when version 3.0-beta-2 was released. I’ve been using Maven 3 since its alpha days, and despite the alpha/beta moniker, I find it to be superior to any Maven 2.x version. If you are starting a new project, I strongly recommend using Maven 3.

Reporting more than Java code in Sonar (Part I)
By Josh Cummings, 3 August 2010
Of course, anyone that has done static analysis on their project in the past has found certain bad practices that are out of their tools reach to spot. Some examples are…

Categories: Open Source

Two UI tidbits at Zappos/Amazon

theSCRUM - Wed, 08/11/2010 - 19:48

Here are two nice UI elements that I have recently discovered on the Zappos and Amazon websites.

Multiple-image browsing at Zappos

It’s common to see multiple-image browsing on product pages, but it’s pretty rare on search result pages. And it always comes with more UI weight (icon to open the browsing widget, or prev/next icons to browse icons…). Zappos has implemented a very nice solution that adds no extra UI weight: when rolling over the image from left to right, the image changes, and you can discover up to 6 photos per product directly on the search result page! Sure, at first glance, this is not easy to understand: it took me a few seconds to understand how to move the mouse over (top to bottom? squared zones?…); but once you’ve got it, it’s a pleasure to use!

Multiple images browsing at Zappos (Aug'10))

Usage-oriented facets at Amazon

In the CSE world, we often oppose hard goods and soft goods. It’s usually easy to build a product database for hard goods (electronics goods, domestic appliances, cars…), and then let users browse products, click on “compare prices” and land on product pages. But for soft goods (fashion, health & beauty, flower…), the number of references makes it a daunting task and so CSEs usually let users browse offers rather than products. In short, hard goods = easy to structure; soft goods = the mess to organize.

When it comes to facets, most CSEs and retailer sites implement feature-oriented facets and rarely usage-oriented facets… Using the analogy “hard goods / soft goods”, I’m tempted to use the terms “hard facets” for feature-oriented facets and “soft facets” for usage-oriented facets. Does it make sense?

Anyway, Amazon is experimenting with soft facets on its “Women’s denim” category in the US. When landing on the homepage of the category, you can choose “Modern chic”, “Timeless style”, “Everyday casual”, “Fresh & forward” styles. Basically those values act as shortcuts in the navigation (1 option in the soft facets = multiple options in the hard facets selected), and they give a kind of “buying guides embedded into faceted navigation” behavior that I really like.

"women's denim" category at Amazon (Aug'10))

Categories: Open Source

Twitter Weekly Updates for 2010-08-08

theSCRUM - Sun, 08/08/2010 - 09:00
Categories: Open Source

Pick your code coverage tool in Sonar 2.2

Sonar - Thu, 08/05/2010 - 12:59

By default, Sonar embarks two tools to calculate code coverage by unit tests on java projects : Cobertura and Clover. But last week, we also released plugins for two other coverage tools : Emma and JaCoCo. Both plugins are available in the Sonar Plugin Library. So I thought it would be a good time to compare all of them and share the results with the community.

Clover Cobertura Emma JaCoCo License Commercial GNU GPL CPL EPL Latest stable release 3.0.2
(13 April 2010) 1.9.4.1
(3 March 2010) 2.0.5312
(13 June 2005) 0.4.0
(4 June 2010) Type of instrumentation Source code instrumentation Offline bytecode instrumentation Offline bytecode instrumentation On-The-Fly bytecode instrumentation Java 1.4+ 1.3+ 1.2+ 1.5+ Line hits yes yes yes yes Branch coverage yes yes no no (but planned) Process within Sonar Instrumentation
Compilation
Execution
Report generation
Report parsing Instrumentation
Execution
Report generation
Report parsing Instrumentation
Execution
Data reading Execution
Data reading

To compare results and performance of those tools I’ve used following projects:

Lines Statements Lines of code Classes Tests Sonar LDAP Plugin 0.1 925 201 459 8 9 Struts 1.3.9 114621 21896 50080 518 323 Commons Collections 3.3RC1 64447 12402 26558 412 13023

And here is code coverage results:

Clover 2.6.3 Clover 3.0.2 Cobertura 1.9.4.1 Emma 2.0.5312 JaCoCo 0.4.0 Sonar LDAP Plugin 0.1 Line coverage 91.9 91.9 88.8 86.7 88.0 Branch coverage 73.4 73.4 75.0 N/A N/A Struts 1.3.9 Line coverage 15.7 15.7 15.4 14.8 15.4 Branch coverage 14.6 14.6 12.8 N/A N/A Commons Collections 3.3RC1 Line coverage 82.5 82.9 82.1 81.1 82.4 Branch coverage 78.7 78.8 78.6 N/A N/A

And finally I’ve made three measures of time of Sonar analysis for each combination of project and tool with clean Sonar database (which means 54 builds on my Intel(R) Core(TM) i3 CPU M 330 @ 2.13GHz). For this I’ve used Maven 2.2.1 with Java 1.6.0_20 and Sonar 2.2.
coverage-tools-performance

Categories: Open Source

Measy, a quiz-based decision engine for shopping

theSCRUM - Mon, 08/02/2010 - 21:49

Measy is an almost 1 year old shopping decision engine that relies on a quiz-based system to help shoppers identify the best product for their needs. Those quizzes are really interesting alternatives to classic faceted navigation that most shopping engines use to let users filter down products; in a way, they are similar to the Hunch assistants except that the questions and recommendation engine are not built by the community, but rather through editorial work, I guess.

Measy is currently limited to a few categories (Digital cameras, DSLRs, E-Readers, HDTVs, Netbooks, Smartphones). Quick review of the DSLR category :)

  • The first question is about price, and relies on slider to define max price. Classic.
  • The next questions are written with the “how important is…” pattern. How is important is brand? How important is size? How important is ease of use? … For each question, four values are available: “Don’t care”, “Slightly important”, “Important”, “Very important”.
  • Choosing “Slightly important”, “Important” or “Very important”, you get complementary information or question… The “How important is brand?” option lets you choose your favorite brands using checkboxes. Behind the “How important is ease of use” question, you can define your level of expertise (from beginner to expert) using a slider…
  • When you are done filling the quiz, the best product match is displayed, with a global score + scores for each question. Other results can be browsed ; and feature-per-feature comparison tables, along with price comparison and reviews services, are available.

Overall, I like the quiz idea and the natural speech used in the quiz (vs. the wording usually found in faceted navigation to describe facets). For sure, it’s difficult to please experts with such quiz. As such, I think that classic faceted navigation on large range of filters is complementary for experts. An interesting UX challenge would be to mix the quiz idea, faceted navigation and to some extent buying guides into a compelling user interface that could serve the needs from beginners to experts inside a product category.

The "how important is brand" question, with checkboxes to choose prefered brands

Question at Measy (Aug'10)

The "how important is ease of user" question, see how the sentences about Ergonomics and Menu system are written: natural speech improves empathy with the site.

Question at Measy (Aug'10)

The "how important is shooting in different situations" question, with checkboxes to choose common usages.

Question at Measy (Aug'10)

Result page

Product result page at Measy (Aug'10)

Categories: Open Source

Sonar in the news

Sonar - Mon, 08/02/2010 - 15:47

Welcome to the roundup of blog posts and pages that mentioned Sonar last month…

Jouez les Docteurs Love, apprenez à nettoyer du vieux code
By Le Touilleur Express, 28 July 2010
La vie d’un développeur ce n’est pas toujours de travailler à la création d’une nouvelle application. Au contraire nous serons souvent amené à faire ce que j’appelle de l’Archéologie. Cela veut dire entrer dans du code écrit il y a quelques années, être capable de faire fonctionner une vieille application, et surtout, être capable de la moderniser sans l’abimer. J’ai regroupé quelques outils et quelques pratiques apprises ces dernières années, mais n’hésitez pas à compléter.

Zoom sur… sonar, pour automatiser la vérification de la qualité du code java
By Guillaume Saint-Raymond, 28 July 2010
La qualité du code est souvent le parent pauvre des projets en entreprise et, pourtant, celle-ci a un impact sur la productivité. Sonar est le tableau de bord permettant de suivre l’évolution de la qualité des sources au fur et à mesure de la vie d’un projet.

Maintaining High Quality Code with Sonar
By RJ Salicco, 27 July 2010
Is your app so brittle that if you stare at it for too long that it may break causing an all weekend outage?
Does your app contain smelly dead code?
Are your code review sessions a waste of your time?

Android and Sonar
By Brett Dubroy, 21 July 2010
Continuing from the Android and Continuous Integration note, we’d also like to hook up our metrics gathering tool (Sonar – http://www.sonarsource.org/) into our CI builds of our android applications on Hudson.

Technical Debt and the Boogie Monster
By Joel Tosi, 19 July 2010
Growing up as the youngest child meant that my closest brother (6 years my elder) terrorized me with threats of the boogie man coming to get me. It was a rather effective tactic – how to deal with the boogie man wasn’t well known, and the internet was just a glimmer in Al Gore’s eye.

Categories: Open Source

Twitter Weekly Updates for 2010-08-01

theSCRUM - Sun, 08/01/2010 - 09:00
Categories: Open Source

The new Hunch homepage: a perfect example of emotional design

theSCRUM - Wed, 07/28/2010 - 19:36

I love the new homepage for non-logged users on Hunch… For me, It’s a perfect example of emotional design, a term that I have discovered through two recent articles (“Time to delight” and “An Event Apart: Emotional Interface Design”). Quick review of this homepage:

  • A strong tagline: “Hunch personalizes the internet” with an asterisk that refers to an explanation text to have a better understanding and to explain the promise of Hunch…
  • In the explanation text, note the “How do we personalize the internet? (glad you asked!)”… I like the ton of voice: casual, a bit humoristic, it develops the empathy with the site… Great!
  • Visual representation of what the tagline means, with hot colors.
  • A proeminent (yet pretty low in the page) yellow box with the call to action: “Answer 20 questions to build a taste profile” and Twitter/Facebook login options (but no custom Hunch option: this one is hidden behind the “Sign in > Create account” links; strange).
  • Then there is a huge gap with other links displayed at the bottom of the page. I suppose it means: no distraction on the page, scroll down if you want more; and if you want more, you are not the average user.
  • In the “help” section of those bottom links, there is a “serendipy” link which leads to a list of searches. Sounds like a SEO trick, but again I like the “serendipity” anchor text: it simply feels “human” !

 

Hunch homepage (Jul'10)

Categories: Open Source

Twitter Weekly Updates for 2010-07-25

theSCRUM - Sun, 07/25/2010 - 09:00
Categories: Open Source

TheFind tweaks its sharing/personalization options

theSCRUM - Fri, 07/23/2010 - 19:45

As a follow-up of its May release that introduced Facebook login and a new “My Store” feature, TheFind has just released tweaks to its sharing and personalization options. Quick review:

  • Sharing options via Facebook, Twitter and email are now available on every page and on every offer.
  • The options to filter results by location or by preferred stores are now available in the same place: a new horizontal tab navigation enables the user to switch from “Shop the web” to “Shop nearby” and “Shop my favorite stores”. More logical, nice execution!
  • The offer display has been tweaked to have preeminent “Save to favorite products / brands / stores” options. I think this part can be improved: having three stars disseminated in the offer display is a bit disturbing.
  • There are some tuning to be done though: the “Shop my favorite stores” option doesn’t seem to work on product pages (reachable through “Find the best price” links). Also, there is a remaining “Shop my favorite store” module displayed below the results that is confusing: shouldn’t it be removed now there is the “Shop my favorite stores” tab on each page?

The “Shop the web” result page:

"Shop the web" page at TheFind (July'10)

The “Shop nearby” result page:

"Shop nearby" page at TheFind (July'10)

The “Shop my favorite stores” page when no store has been selected yet:

"Shop my favorite stores" page at TheFind (July'10)

Refreshed offer display with sharing options and ability to mark favorite products / brands / stores

: Offer display at TheFind (July'10)

Categories: Open Source

Bing Shopping will become a free program

theSCRUM - Fri, 07/23/2010 - 07:04

Microsoft has officially give details about the future of Bing Shopping once its cashback will be stopped on July, 30th. With no surprise, the new Bing Shopping will become a free program, similar to Google Product Search. All the details for merchants are available on a “List your product catalogs on Bing for free” page. Interestingly, this page also contains hints regarding the future of Bing Shopping in terms of user experience:

In addition to current Bing Shopping features like consumer reviews and ratings, and Visual Search, we’re continually improving the Bing Shopping experience to help shoppers discover products and compare offers. Future planned enhancements include a more streamlined Bing Shopping experience, improved shopping scenarios for expanded, targeted reach via social, mobile, and local, and more integration with Bing.com.

[...] The Bing Shopping program product catalogs will display within the Bing Shopping experience similar to how Bing shopping cashback product catalogs displayed. This is where consumers make online purchasing decisions with tools to compare products, opinions, and prices. We also have plans to broaden the display of Bing Shopping program product catalogs within Bing.

Categories: Open Source

Google Product Search will force retailers to provide unique identifiers through feeds

theSCRUM - Thu, 07/22/2010 - 18:52

In a post entitled “Improving the Product Search experience”, Google has announced it will require unique identifiers to be provided through data feed for specific categories (emphasis is mine):

Over the past year, we’ve launched a number of exciting features on Google Product Search. Users can now access YouTube videos, product reviews, and other information from a single page about a product – what we call a “product page.” (For example, see this product page for a Canon Rebel camera). Users appreciate this information, and we want to make sure your product offers are included on these product pages. To do this, we’ll need your help – starting in late August, product offers in the Electronics, Books, and Media categories from US merchants may not appear in Product Search if your data feed does not include the necessary unique product identifiers, such as MPN, Brand, GTIN/UPC/EAN or ISBN. We will make similar changes to Product Search in the UK and Germany at a later date.

This may sound anecdotal, but for me it is an important announcement:

  • When using the search of Google Product Search, this will ensure there won’t be any detached offers from the corresponding product, which is an important findability flaw that is underestimated by most shopping engines (how to ensure the offers displayed in a product page contain the best deal for that product?).
  • If Google succeeds at forcing merchants to give codes (and it will for sure), it’s clear other CSEs will follow (if retailers can give codes to Google, then they can give them to other CSEs as well). This is especially true in Europe where it has always been difficult to get reliable codes from merchants. For those CSEs that will follow Google, matching offers and products using codes will be far more reliable than using text analysis matching algorithms, so the quality of product page will increase (no more accessories wrongly attached to a product).
  • If this first step is successful, we can imagine Google pushing those new rules to other categories; and progressively enable product clustering on most categories (similar to what Bing Shopping currently offers).

Offers detached from corresponding product and leading to findability flaw in current Google Product Search:

Matching issue at Google Product Search (July 2010))

Categories: Open Source

Sonar 2.2 in screenshots

Sonar - Wed, 07/21/2010 - 10:44

The Sonar team is proud to announce the release of Sonar 2.2. As usual, this new release includes numerous improvements, bug-fixes and also brand new features that we believe are worth stopping your daily work for a few minutes to review. Those features can be divided into three categories :

  • Favourites resources
  • Filters homepage
  • Plugin classloaders

Favourites

When you are working in a company that makes an intensive usage of Sonar, the project(s) you want to monitor can be quickly lost among hundred of others projects. Favourites makes it possible to flag those projects but also modules, packages and files. You then get quickly an overview of those resources at any time.

To use this feature, the user must be logged into Sonar. Resources can then be flagged by clicking on the star icon available in the “Dashboard”, “Components” and “Filters” pages :

sonar_star_icon

Once a resource is flagged as a favourite, it is automatically displayed in the “My Favourites” tab in the homepage :
sonar_favourites

Filters

The Sonar homepage had several drawbacks when Sonar was intensively used :

  • Displaying the page took too much time with more than 500 projects
  • Only root projects were displayed
  • There was no way to quickly get a list of resources according to some criteria. For instance, the list of projects whose technical debt ratio is greater than 10%, the list of Files whose complexity is greater than 300…
  • The Treemap was too small and so not usable with many projects
  • There was no way for a user to customize the homepage

The new “Filters” page allows to overcome those limitations :
sonar_filter_tabs

Of course, this feature comes along with configuration capabilities :
sonar_filters_admin

Plugin classloaders

Plugins are now executed in independent classloaders. The main advantage is that plugins can declare and embed their own dependencies instead of being limited to libraries provided by Sonar. As a direct consequence, Sonar no longer depends on Maven Checkstyle and PMD plugins but now directly embed Checkstyle and PMD libraries.

To find out more about Sonar 2.2 and the 63 issues that have been fixed, you can read the release notes or maybe you prefer to download it to give a ride. Have fun !

Categories: Open Source

Twitter Weekly Updates for 2010-07-18

theSCRUM - Sun, 07/18/2010 - 09:00
Categories: Open Source

CD Survey: What practices do developers use?

JUnit Max - Kent Beck - Fri, 07/09/2010 - 06:12

The survey I’ve been writing about (raw results here) was intended to give us speakers at the continuous deployment webinar (Timothy Fitz, Jez Humble, and myself) some background on the attendees. I’ve saved the best (most informative) question for last: what practices do attendees use in software development. Here is the data:

What practices do people use?

Some thoughts:

  • Business-based operations metrics. One of the key insights of continuous deployment is using business-oriented metrics to monitor operations instead of the more natural (for programmers, anyway) technical metrics. If you expect 50 sign-ups per minute and the rate suddenly dips to 20/minute after a deployment, it’s time to roll back. The practice is not in common use.
  • Kanban versus iterations. Iterations still dominate, even though the additional flexibility of kanban is a better match for continuous deployment.
  • Pair programming. For all the complaints I hear about pair programming, I would have expected this number to be lower than 25%.
  • Test-driven development. 50% is higher than I would have expected. Adoption of TDD is excellent preparation for teams wishing to deploy more frequently (see my commercial screencasts for more details).
  • Continuous integration. I expected this number to be higher. CI was the first practice from Extreme Programming to spread widely, but, at least among this audience, it is not pervasive.
  • More than 75% of teams test manually before deployment. This is a sensible practice until the defect rate is brought down and the operations infrastructure made robust in the face of errors, but I expect the number to drop as teams mature in their application of continuous deployment.

Change generally happens on a time scale of decades. Mass production and then lean production each took upwards of fifty years to become widespread. I don’t mean to be overconfident, but the picture above (skewed as it is by selection bias) paints a picture of software development that is substantially different than common practice twenty or even ten years ago. There’s still a long way to go until software development pours out the stream of value it is capable of, but we’re making progress.

Commercial plugs: Check out my series of screencasts on intermediate-level test-driven development, $25 for four episodes. If you run unit tests for Java in Eclipse, check out JUnit Max, the continuous testing plugin, $50/year until August 1, 2010.

Categories: Open Source

CD Survey: How often do you commit code changes to the shared repository?

JUnit Max - Kent Beck - Wed, 07/07/2010 - 16:11

Today’s question is, “How often do you commit code changes to the shared repository?”

One of the essential practices of continuous deployment is that everyone stays very close to the mainline, typically by checking progress into HEAD frequently. This requires developers to be careful to only make changes that are safe and to only reveal functionality when it is ready for real users. The change of task sequence this requires is an acquired skill, but once mastered results in a low-risk development style.

The data shows that many projects are checking in very frequently:

The question needs followup, as it doesn’t ask whether there is a single mainline that people continually integrate with, and which direction the integration goes.

Tomorrow is the final question of the survey, which asks which practices folks are applying.

Commercial plugs: Check out my new series of screencasts on intermediate test-driven development. If you run unit tests for Java in Eclipse, check out JUnit Max, the continuous testing plugin.

Props to Chartpart.com for the lovely front end for Google Charts.

Categories: Open Source

CD Survey: How often do you run unit tests?

JUnit Max - Kent Beck - Tue, 07/06/2010 - 17:37

Running functional tests generally takes longer than running unit tests, so as expected, most people run unit tests more frequently than they run functional tests:

How often do you unit test?

I was a bit surprised at how many people are running tests on every change, but that’s good news for JUnit Max, which shaves seconds off the delay waiting for feedback from tests. If those delays happen a hundred times a day, the cumulative effect of a tool like Max can be substantial. I’m not sure what to make of the teams that run unit tests daily or weekly. I’d like to talk to such a team to understand more about their process.

Unit testing wasn’t explicitly addressed by any of the presenters at the Continuous Deployment webinar, I think because unit testing is assumed when you’re deploying on a short cycle. I don’t recall who said it first, but the model I use is that the defects leaving any stage are proportional to the defects entering that stage. No matter how good your functional tests are, defects leaving the programmer’s desk need to be rare if the software is always going to be ready to deploy.

Categories: Open Source

CD Survey: How often do you run functional tests?

JUnit Max - Kent Beck - Mon, 07/05/2010 - 18:08

Following up on the continuous deployment survey question about frequency of deployment, the question for today is, “How often do you run functional tests?” Here is the data:

How often do you run functional tests?

What I take from this is that there are a considerable number (~30%) of people using continuous integration in the poll audience. The ~10% of people who have brought functional testing into the inner loop of coding is also a bit surprising, although we do it to great effect while developing JUnit. Another surprise to me is seeing that the majority of these projects get feedback from functional tests every day.

All the panelists (Jez Humble, Timothy Fitz and I) agreed on how essential automated functional testing is to applying continuous deployment. I think of it as a stack of filters, each removing defects–personal habits, social processes (like pair programming or reviews), unit tests, and functional tests. If the functionality flowing from the whole stack is high enough quality, then continuous deployment is possible.

Manual testing has a place in projects applying continuous deployment, just not on the critical path to deployment. It might seem like a big step to remove that last human “sanity check” before deployment. If it seems like a big step, then you’re likely not ready. Keep working on the filters to improve the deployability (is that a word?) of each one’s output. When you heard someone say, “Why are we checking this by hand? We never find anything,” then you’re ready.

Next question: how often do folks run their unit tests?

Commercial plugs: Check out my new series of screencasts on intermediate test-driven development. If you run unit tests for Java in Eclipse, check out JUnit Max, the continuous testing plugin.

Categories: Open Source

CD Survey: Deployment Frequency

JUnit Max - Kent Beck - Sat, 07/03/2010 - 02:41

In conjunction with the Leaders of Agile webinar on Continuous Deployment I hosted yesterday for SD Times, I ran a poll asking attendees about various of their development activities. I’ll be posting a short piece about each question, the answers we got, and the webinar material that connects with that question.

My co-presenters were Timothy Fitz of IMVU and Jez Humble of ThoughtWorks. Timothy talked about continuous deployment in a large web/client application with ~50 developers while Jez covered CD for IT applications. Both made a nice contrast to my experiences with CD for individual or pair projects, and immediately addressed the “sure, but it won’t scale” objection. My thanks to Timothy, Jez, and Alan Zeichick of SD Times for their work setting up and delivering the webinar. (I’ll post here when a recording is available.)

For the poll, the questions were posted two days before the webinar. We had ~200 responses out of the 1100 registrants and 430 attendees. Beware of extrapolating too far from the data because the poll suffers from both selection bias and an amateur question author (me). However, the responses do provide some idea of how at least a slice of our industry works.

The first question I will cover from the poll is, “How often do you deploy to production?” That’s the fundamental measure of continuous deployment, at least as narrowly viewed (more about that later). Here’s the raw data:

How Often Do You Deploy

Deployment cycle starts with the orange slice for annual deployment at the bottom right. Going clockwise from there, the three biggest slices (quarterly, monthly, weekly) take up most of the chart. Completing the circle, there are almost as many people deploying on every commit as deploying annually, so continuous deployment already has significant traction.

One of the surprises of the webinar was Jez Humble’s flexibility with regards to how far towards real deployment Continuous Delivery (his phrase and the title of his forthcoming book) needs to go. His strategy is to take the rapid iteration that is made possible in development by Extreme Programming and gradually extend it down the deployment pipeline, even if that stops short of real actual live deployment with real actual live users. My general preference is to work the other way around. I like to get the whole team–business, development, and operations–working with the same rhythm, then gradually increase that rhythm. There’s no right or wrong approach, it’s just interesting to see the contrast.

Next question: how often do you run functional tests?

Commercial plugs: Check out my new series of screencasts on intermediate test-driven development. If you run unit tests for Java in Eclipse, check out JUnit Max, the continuous testing plugin.

Categories: Open Source

Sonar in the news

Sonar - Thu, 07/01/2010 - 15:52

Welcome to the roundup of blog posts and pages that mentioned Sonar last month…

Use Sonar to Develop a Quality Feedback Loop into the Build Cycle

By Brian Chaplin on ServerSide, 29 june 2010
The number of business defects in an application tracks with the number of technical defects. More technical defects normally means more business defects. This means that technical defects can be used as a metric for the overall quality of a development approach. Sonar is a great dashboard for tracking code quality at the project and file level. But how can it be used to as part of the daily workflow?

Making the Most of Maven: Nexus, Hudson, Sonar
By Joel Confino, 15 June 2010
Maven is a build tool. I like Maven because it supports dependency management, consistent builds and a modular code base. But if you are just using Maven without using Nexus, Hudson, Sonar you are really missing out on a lot of goodness. Nexus is a Maven repository manager, Hudson is a CI server, and Sonar is a code metrics server.

Google Summer of Code 2010 with Sonar team – first steps
By Evgeny Mandrikov, 7 June 2010
As I promised in previous post, that progress of my work on Google Summer of Code 2010 would be available publicly – here is a brief overview of what was done for Sonar IDE project, what we have now and what expected in nearest future.

The Code Quality game
By Ricki Sickenger, 4 June 2010
Most programmers think they can recognize good code and a lot of them think they produce good code, but the sad truth is that not a lot of programmers actually do. Between time constraints, feature creep, and laziness, programmers hardly ever end up producing super quality code.

Code-Metriken auf dem Prüfstand
By Sandro Ruch, 4 June 2010
Wie lässt sich die Qualität von Code bestimmen? Welche Kriterien sollen dafür hinzugezogen werden? Eine mögliche Antwort könnte sein: “So gut wie die Abnahme-Testresultate des Kunden”…

Changing a project’s artifact id in Sonar
By Oliver Gierke, 2 Jun 2010
Sonar is a great tool to take care of code quality in your software projects. I use it heavily to monitor the open source projects I am involved with. When working on getting Hades published into Maven central I had to polish it’s pom.xml and felt the need to align the parent project’s artifact to our chosen OSGi compatible package notation for artifacts

Code Quality Management Tool Sonar Provides Design and Architecture Metrics
By Srini Penchikala on InfoQ, 1 June 2010
The new version of open source code quality management tool Sonar provides design and architecture metrics. Sonar 2.0 introduced the analysis of design, architecture and object-oriented metrics for Java applications. And Sonar 2.1 version, which was released recently, supports the detection of unused methods.

Categories: Open Source