Archive for June, 2010

Blending Agile Practices Into Your Traditional Development Process

June 16th, 2010 by damonpoole

When talking about Agile development, people often ask me, “but why would I want to change to a new methodology when traditional development has made so much money and created so much value for so many people for such a long time? Why mess with success?” That’s a great question!

After hearing that question for the umpteenth time I finally realized something.  It isn’t traditional software development that has provided so much value! It is the software itself. Imagine calling a travel service prior to the advent of software. You call them up and say “I’d like 100 or so options for travelling from Boston to San Jose. I’ll also need a bunch of 3 or 4 star hotels in San Jose and mid-sized rental cars to choose from.  Could I get that in 5 seconds please?”

In today’s world, of course you just go to a site like Orbitz.  It isn’t traditional software that provides that value, it is the software itself.  It almost doesn’t matter what process you use to produce that software, the value is so high. When you are only competing against somebody that doesn’t have software, that’s one thing. When you are competing against other organizations that are also using software, then the exact process you use can make a big difference from a competitive standpoint.

It isn’t traditional software development that has provided so much value it is the software itself.

What do we mean by “traditional development?” After having been involved in the process of literally thousands of software development organizations, I can safely say that there isn’t really any such thing as “traditional development” or even “waterfall.”  That is, if you look at any two organizations developing software, there is no standard for what comprises traditional development.

In the end, organizations adopt individual practices that make sense for their circumstances. This same approach can be used when adopting “Agile.” There really isn’t any such thing as “Agile.” It is a combination of values and practices which can be adopted by any organization and does not require wholesale adoption in order to provide value. Yes, there are packaged solutions out there such as Scrum, XP, Kanban and others, and they do provide value.  But so do the individual practices.  So, instead of thinking about “how do I switch to this new thing,” consider Agile as a new set of tools that you can add to your existing process on a case by case basis. Worry about “being Agile” after you’ve gotten some experience under your belt with some of the practices.

Getting Benefits of Agile Software Development, Without “Going Agile”

June 15th, 2010 by damonpoole

While many experts push for Agile adoption throughout organizations, a different trend within organizations is emerging.  Organizations are taking smaller steps towards Agile by focusing on specific Agile techniques and applying them to their individual development processes. By adopting certain techniques, organizations still receive some benefits of Agile without “going Agile”.  After all, it is possible to do Continuous Integration without time-boxing and still reduce integration problems.

Getting Benefits of Agile Software Development

For those interested in gaining the benefits of Agile through smaller and more targeted techniques, there are a number of possibilities.  Below are recommended readings on Agile techniques, each focusing on one specific area, while detailing the processes and outlining the benefits.  Here is a great place to start when looking to gain the benefits of Agile software development. Getting Benefits of Agile Without Going Agile

User Stories Applied: For Agile Software Development, by Mike Cohn.

The Agile equivalent of requirements is User Stories, and this book is the definitive guide to creating and using them.  Readers will not be disappointed with Mike Cohn’s practical advice on User Stories, as the information offered is easy to read and apply. Valuable topics discussed include why to use User Stories, when they are appropriate, and how to monitor progress.

Getting Benefits of Agile Without Going AgileContinuous Integration: Improving Software Quality and Reducing Risk, by Paul M. Duvall, Steve Matyas and Andrew Glover.

This is a great resource for Continuous Integration. The authors stress the importance of integrating early and often using CI practices and provide detailed results of a successful CI implementation (including reducing risks, better visibility and reducing repetitive manual processes). Another important element of this book is its companion Web site, www.integratebutton.com, which provides updates and code examples.

Getting Benefits of Agile Without Going Agile

The Art of Unit Testing: With Examples in .Net, by Roy Osherove.

This is one of the best on the topic of Unit Testing, partly because of RoyOsherove’s experience and passion about the subject, and partly because of his practical delivery. His book covers important areas of Unit Testing, including writing maintainable test code, code review and adopting Unit Testing in an organization.

Getting Benefits of Agile Without Going Agile

Refactoring: Improving the Design of Existing Code, by Martin Fowler, Kent Beck, John Brant, & William Opdyke

This book offers important technical insight into the process of changing code to improve internal structures without changing external behavior and is a highly recommended resource on refactoring and improving design of existing code.

To get more benefits of Agile without going Agile, try JUnit Recipes: Practical Methods for Programmer Testing by J.B. Rainsberger, and Implementing Lean Software Development: From Concept to Cash by Mary and Tom Poppendieck or visit AccuRev’s Agile Resource Center.

Issues with ClearCase?

June 9th, 2010 by AccuRev

While the AccuRev blog rarely digresses from its serious and technical nature, an opportunity to inject light and humorous content has arisen.

About 3 years ago, AccuRev released a series of short parody videos based on customer feedback that compared AccuRev and ClearCase, and even today, the amount of views continue to grow.

While one might think the videos are now outdated, being 3 years old, they are still very much applicable today because, well, the same ClearCase issues exist…

Example 1: ClearCase Installation.


Installing Rationally

Of the many differences between AccuRev and Clearcase, the first can be seen during installation. How long does it take ClearCase admins to install ClearCase? Hours? Days?  AccuRev’s smaller server eliminates the issue of multi-day-long installations.