Scrum Alone Does Not Good Software Make

by Robert Dempsey on May 11, 2009

Scrum is defined as, “an agile software development framework being used to deliver high-quality software, develop complex products, and change the way that business is done.” As it relates to software development, Scrum addresses the people side by offering a defined set of practices, including:

  • Use of user stories for requirements, estimated in story points
  • The breaking down of user stories into tasks, estimated in hours
  • The daily scrum and the three questions
  • Scrum roles: ScrumMaster, Product Owner, Team
  • Release planning
  • Sprint planning and review
  • Sprint retrospective

For some, Scrum does not go far enough in terms of development practices. Nowhere in the above list are development practices discussed. For that, many have turned to Extreme Programming (XP), which holds customer tests, pair programming, test-driven development, continuous integration, and coding standard as core practices.

If Extreme Programming prescribes a defined set of development practices, why doesn’t Scrum?

In reality, many development shops are different, both in their makeup and their circumstances. Don’t get me wrong. Every software developer needs to implement solid development practices, and I’m not dissing XP. However, which ones to implement should be up to you and your team.

For instance, we now have two full-time employees here at ADS: myself and Justin. I’m handling the business side of things, consulting on Agile and Scrum for clients, and managing our contract developers. Justin is working on our custom development projects, and managing our offshore teams. Justin and I work on separate projects, so for us, pair programming is not an option. We do, however, practice test-driven development, have a continuous integration server set up, have our customers test what we produce for them, and have coding standards in place. We didn’t start out this way six years ago, but we now have it all in place.

The bottom line is this: if you need to be able to adapt to a continuously changing business environment, implement Scrum. If you want to consistently deliver a quality product, not worry about breaking what you’ve already created, and proceed with confidence as you adapt, implement solid development practices. The two should not, and cannot, be separated.

Bookmark and Share

Other Posts That Might Interest You

  1. Prescriptive Versus Descriptive Agile
  2. Software Craftsmanship and Engineering Practices in Agile
  3. Introduction to Agile and Scrum, Part 1
  • hi,
    i think you have already noticed ken's recent article on flaccid scrum - http://www.scrumalliance.org/resources/745
    btw, thanks for nice post

    best wishes,
  • Ken who? Just kidding. I've been following Ken since we started using Scrum a number of years ago. Thanks for the link.
  • Hi Robert,

    Thanks for the post, I agree with your statements here. It's not just about one methodology or one practice. It's about looking at the process as a whole and implementing tools, technology, flexibility and methodology where they will do the most good and have the best impact on the end product.

    At the end of it, it's all about ensuring that the customer has what they really need, something that will solve their particular point of pain.

    Thanks again!
blog comments powered by Disqus

Previous post:

Next post: