April 28, 2008

100,000 Airplanes

A few months ago we started our Quality Ready Assessment (QRA). This is a straightforward web tool to help companies and individuals measure their overall software quality level by asking them a short series of questions around overall application lifecycle. Companies who take this get a customize assessment, and internally we look at anonymize trends in the data. We’ve gotten a tremendous response so far, and we continue to slice and dice the data to better understand how people who work in and around application development get things done. As a starting point, I’ve looked at the data for SCM usage and found some interesting trends. The first one that jumped out at me was that 59% of the organizations have an SCM tool that does not support notifications and triggers. This means people are wasting time, plain and simple. This is a classic pull versus push model, where the “puller” is a human needing to know when changes have occurs. Anyone who's been in the car of a family vacation knows how unsatisfying that kind of “Are we there yet?” conversation is from both sides. Far simpler is to get a call when something has changed.  A simple example of how I personally use this is to have Surround send me an email whenever one of the design or requirement documents change. Since the email includes the name of the file, the comments the person made when checking in the file and even a direct link to the file in Surround I always know when changes happen to the documents I care about. Another fascinating one is that 55% of organizations have no integration between CM and their issue management solution. Being able to check in code and link that code to the issue that it addresses makes everyone more productive. Developers can mark issues as fixed as part of their normal workflow. QA engineers can see what parts of the application has changed to make their work more targeted. The whole organization is able to learn over time, rather than relying on memory (“What did you do to fix that bug last year?”,”Something with file handling. I think it's in Foo.vb. Or maybe Bar.vb. Or something like that”.) Something that won’t surprise anyone is that a recent SD Times survey found the top two SCM tools were SourceSafe and CVS, both of which lack this kind of functionality. While cheap is nice, the time it takes everyone on your team to manually work around these short-comings dwarfs the cost of any tool. Grant has some related data that show, again to no ones surprise, that companies that use tools with these kinds of shortcomings suffer in the quality and schedule department as well. The title of this post is the same as an episode of the TV show West Wing, and refers to Franklin Roosevelt's bold plans for America’s effort around the WW II. Every good company should make big plans for their product. But asking people to achieve them using SCM tools without capabilities like notification and two way integration with issue tracking is like making 100,000 planes using hand tools. You could do it, but it sure isn’t very efficient.