With the number of customers and products we support and the changing needs of churches in the world today, development at ACS Technologies is constantly seeking better ways to do our jobs. A few years ago we began researching Agile development methodologies such as Scrum and Extreme Programming. At the time we realized we were doing something like Agile, but were missing a few key pieces. Some called it ScrumBut. We’re doing Scrum, but we’re leaving some things out.
About a year ago we decided to fully embrace Agile and Scrum. We created a team to work on a new project with the following mandate: learn Scrum, use it on your project, and make plans to train and assist all other development teams at ACS in moving to it. I’m very pleased with the progress of the initial team, and we are now in the process of implementing it in other teams.
In the past year I learned to really appreciate the benefits of Scrum and Agile: Here’s my top five list:
- Less Management overhead with self led teams. We long ago set as a goal for our corporate culture that teams function effectively without continual management oversight. With Agile, team member accountability is built into the process by virtue of the daily Scrum meeting. Agile is the most effective system we’ve found that supports this culture.
- Better communication among team members. Programmers don’t necessarily like to talk to each other and to other team members. It’s often part of their makeup to be more comfortable “in the computer zone” than in meetings, etc. Scrum fosters and requires communication in many ways.
- Change is welcome. Breaking up big projects into smaller sprints that each deliver working product means change can be embraced and implemented in short time frames.
- Focus on prioritization. With the fast paced nature of sprints the product owner and stakeholders are always forced to re-prioritize what is important.
- Its quality based. Each sprint consists of completing a programming plan, a test plan, and a documentation plan. Thus, the team prepares for release with each iteration. This differs from a more traditional approach where programming works for several months then hands off to testing who then hands off to documentation.
If you are interested in Agile, the Web is loaded with great resources for learning about it. One document that really had an impact on our team was the Agile Manifesto. We also used an excellent series of books from Mike Cohn at Mountain Goat Software. My favorite is Succeeding With Agile: Software Development Using SCRUM. We also employed a fantastic trainer, Ken Rubin from Innolution. Mike and Ken are true Agile evangelists and have helped us tremendously. Ken believes that some Agile fundamentals can be used for projects outside of software development, and gave an example of a pastor friend that uses it to manage ministry projects.