Introduction to Agile

edit

In today’s fast-paced world, companies often need to change from traditional to newer, more innovative methods across all business aspects in order to succeed. An example of this is adapting to the agile development methodology. This allows for software developers to rapidly deliver and customise quality products.

The agile methodology is widely used in software development as it allows organisations to respond to unpredictable changes that may occur throughout the project. This report will briefly introduce the SCRUM management framework – a commonly used agile method for software development – and outline its key benefits and drawbacks. This will follow with a conclusion about the analysis and a recommendation to the IT manager on whether or not the company should adapt to the agile approach. [Agile Methodology, 2014]

SCRUM

edit

What is SCRUM

edit

Scrum is a management framework for incremental product development using one or more cross functional, self-organising teams of about seven people. It provides a structure of roles, meetings, rules and artefacts. Teams are responsible for creating and adapting their processes within this framework. Scrum uses fixed-length iterations, known as sprints, which last typically 30 days. Scrum teams attempt to build a fully tested, shippable product increment at each iteration. [James, 2011]

SCRUM Roles

edit

The Scrum framework has 3 roles in total: Product Owner, Scrum Master, and Team Member. The Product Owner is responsible for having and keeping the vision of the product and conveying this to the scrum team. They must also represent the customer’s interests through prioritisation and requirements. Meanwhile, the Scrum Master facilitates the scrum process and helps resolve impediments. Ultimately the team members are responsible for determining how it will accomplish the work to be completed in each sprint. [Burchmore, 2013]

SCRUM Process

edit

A Scrum model consists of a series of sprints, which typically lasts a fixed length of maximum 30 days. Each sprint completes an iteration and involves requirements definition, product design, coding, and testing. The outcome of each sprint is usually a shippable product.

Figure 1 visually outlines the general Scrum framework. This methodology promotes regular meetings at the start of each sprint. Here team members are allocated specific items creating a sprint backlog. This is a list of tasks that need to be completed during the sprints. During a sprint, there are daily Scrum meetings that need to be attended by all team members, the scrum master, and the product owner. Meetings generally last 10-15 minutes and the scrum master asks three questions to each member:

  1. What did you do yesterday?
  2. What will you do today?
  3. Are there any impediments in your way? [Cohan, 2014]

Following these questions, the team members responsible for the work create a Sprint Backlog comprising of Product Backlog items that can realistically be completed within a 30-day period.

The key benefit of the Scrum methodology over the traditional waterfall development is the ability to develop a subset of high-value features first, incorporating feedback from customers or development personnel sooner. At the end of each sprint, a part of the product is fully completed. [See Figure 2]

Benefits and Drawbacks

edit
Benefits Drawbacks
Increased Project Control

The increased inspection opportunities throughout agile projects allow all stakeholders (Product Owner, Scrum Master, and Development Team) to exercise control and ultimately create better products.

Higher Dependency on individuals

While other methods are not affected so badly, the agile one can’t afford to have absent team members. This can be a lot more harmful for the project development.

Reduced Risk

The chance of absolute project failure is minimised by a severe amount in agile techniques through the daily Scrum meetings and by providing regular feedback on products and processes.

Creep

The agile development method tends to lead to scope creeps initiated by the project management. Unless a specific end date is agreed, the management often continues to demand higher quality from their developers.

Better Product Quality

Scrum teams can continually improve processes and work by conducting sprint retrospectives leading to an overall higher product quality.

Increased Stress for Team Members

Agile development tends to be more intensive for developers with very limited flexibility on time and quality during iterations. A reasonable pace needs to be determined in order to avoid the mentally tiring relentlessness of iterations.

Higher Customer Satisfaction

In agile methodology, customers are constantly involved and engaged throughout the development process. This ensures that the product backlog is updated and prioritised in order to quickly respond to change as well as delivering products to the market quicker and at higher frequency.

High Workforce Requirement

As the ability to respond to changes in the marketplace is highly dependent on the workforce’s ability, this can lead to incomplete or failed projects due to a lack of commitment from the team. Also, the team usually requires training leading to both increased time and expenses for the organisation.

Conclusion and Recommendation

edit

Having outlined and analysed the benefits and drawbacks of Scrum – an agile development method – it is evident that the benefits clearly outweigh the drawbacks [Table 1]. The key benefit is the ability to quickly respond to both market and customer changes, making Scrum the perfect tool for Software Development.

Since feedback on products is brought up in Scrum meetings on a daily basis, the agile approach virtually eliminates the risk of total failure during projects. The end product has a much higher chance to meet the customer demands due to them being directly involved in the project with more interaction at the development stages. The end effect will be increased productivity, profit, and above all customer satisfaction. For all these reasons an agile approach (such as Scrum) has the edge over a traditional method (such as the waterfall method) in today’s market and. Therefore, it is highly recommended that the company adopts Scrum into various aspect of the software development lifecycle.