~ By Chris Young
The term iterative and incremental development describes a class of methodologies for software development where the system grows incrementally through a series of complete development cycles.
Agile software development methods are a group of specific iterative methodologies that combine relatively short iterations with evolutionary refinement of the requirements, plans and targets across each subsequent iteration.
In my experience, agile and iterative methodologies are lower risk than using more traditional 'waterfall' style methods, where all of the planning and design is done in advance.
Scrum is one of the simplest "Agile" methodologies and is also proven to be highly effective for both software development and more general product development. Scrum is often used in financial product development.
Scrum is based on the idea that during a project the customers will almost certainly change their minds about what they want and need. To address this, a Scrum project moves forward in a series of short iterations each of which delivers an incremental set of improvements to the product.
Scrum has frequent intermediate deliveries with working functionality. This enables the customer to get a working product earlier and enables the project to change its requirements according to changing needs.
Scrum provides a set of practices and predefined roles which a team adopts in order to maximise the team's ability to deliver quickly and respond to changing and emerging requirements.
A Scrum team is typically cross-functional and generally consist of around five to nine people, however it can be much larger. The team has the responsibility to deliver the product. Scrum encourages co-location of all team members and verbal communication between team members.
A number of specific roles are defined in Scrum:
Scrum projects are run using very flexible management style and require project managers with specific experience managing Agile projects. The project management role is non-traditional in that the ScrumMaster is primarily a facilitator who enforces the agreed rules, removes impediments to progress and ensures the team remains focussed.
Scrum teams are self-organising. The ScrumMaster is not the leader of the team and instead acts as a buffer between the team and any distracting influences.
The Product Owner represents the customer and ensures that the Scrum Team works on the "right things" from a business perspective. The Product Owner writes customer-centric "stories" which are one or two sentences in business language describing a specific product feature. These are then implemented by the Scrum team.
These are the people for whom the project will produce the agreed-upon benefits. They are only directly involved in the process during reviews of progress.
Work is packaged into small parcels of around two to four weeks in duration, called "Sprints." During each Sprint, the team creates a complete product increment resulting in a potentially shippable product.
The set of features that go into a Sprint come from a prioritised set of high level requirements of work to be done, known as the "product backlog." This product backlog contains broad descriptions of all required features for the new or enhanced product, prioritised in terms of their projected business value, along with estimates of the effort to deliver them.
Which specific backlog items go into a Sprint is determined during a planning meeting prior to the Sprint. During this meeting, the Product Owner informs the team of the items from the product backlog that they want completed. The team then determines how much of this they can commit to complete during the next Sprint, which becomes the "Sprint backlog" for the next Sprint.
During a Sprint, no one is allowed to change the Sprint backlog, which means that the requirements are frozen for that Sprint. After a Sprint is completed, the team demonstrates the product to the Product Owner. The team can cancel a Sprint if they feel they are unable to meet the goals of the Sprint and external stakeholders can cancel a Sprint if external circumstances negate the value of proceeding. If a Sprint is abnormally terminated, the next step is to conduct a new Sprint planning meeting, where the reason for the termination is reviewed.
A publicly displayed chart is often used to show the remaining work for the current Sprint. This is known as a Sprint burndown chart and should be updated each day to provide visibility on progress.
The transition from traditional methods of working to Scrum is relatively straightforward. You may benefit from engaging an experienced Scrum coach to assist in training and implementation.
Scrum works very well in its own right and is also an excellent first step if you want to introduce Agile concepts into your organisation since it is simple and focuses on high-level project management.
Christopher Young is a senior consultant and executive coach with a broad knowledge and experience in financial services, project and change management, personal empowerment and information technology. His areas of focus include developing highly successful leaders, creating high-performance teams and implementing best practices in process improvement, project management and software development process.