We are always looking for ways to improve our internal processes to provide better services and software. Recently, we've started experimenting with a different software development methodology called Scrum. Traditionally, we have used the Waterfall methodology, which our clients will be familiar with in practice if not by name. Roughly, the process progresses through the following steps: business requirement -> functional design -> development -> QA -> release. Here is a diagram of the classic Waterfall method we've been using for the past 30 years.
Why change if the current process works? Well, we're not throwing out the Waterfall model entirely - it can be effective in some instances. However, in some development projects, particularly larger ones involving several engineers, the Scrum methodology provides key benefits. Additionally, as the industry pace of change increases, we need to meet that pace with a more agile approach to software development and delivery.
What is Scrum? This is not the Scrum we are discussing... but it was the inspiration for the approach.
Here's how the founders, Hirotaka Takeuchi and Ikujiro Nonaka, defined the general approach in their 1986 article titled "New New Product Development Game": a flexible, holistic product development strategy where a development team works as a unit to reach a common goal. Instead of following a series of sequential steps, Scrum employs an agile methodology that allows quicker adjustment to shifting business requirements, more frequent delivery of development, and integrated development teams.
The business requirements are broken down into user stories that are placed in the product backlog. The backlog items are then organized into sprints ranging from 2-4 weeks (or longer). The items are developed in the sprints as well as tested by integrated analysts. Within a sprint, the team has a daily standup meeting to discuss the progress. At the end of each sprint, the user stories are completed and in a state that can be demonstrated or actually shipped. That is the process in a nutshell, but there is certainly more to the methodology and the Wikipedia article is a good starting point to explore more.
So, how's it working so far? Really well! We are using Scrum for Project Cider and some of our larger client projects. The various teams had to go through some adjustments at the beginning, but the process smoothed out after the first sprint or two. The integrated teams of engineers and analysts have produced working software quicker, higher quality software, and created more transparency of the development process. It is really exciting to see analysts and engineers collaborating on the design and implementation of development with the combined goal of high-quality software features. The agile nature of the methodology has created some very interesting discussions that are sometimes missed until time of QA testing. Overall, we have been very encouraged by the early results and feedback by the teams. We plan to continue to expand our use of Scrum to further integrate ACS teams and to keep delivering high-quality software faster.
If you're interested to know more about how AdvantageCS is using scrum, don't hesitate to contact your account manager. It may be that scrum is right for you!