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.
Other Posts That Might Interest You




