by QA

What is agile?

Agile is an approach to software development and project management that focuses on delivering products and services iteratively, providing value to end users on a continuous, rolling basis throughout product development.

Unlike traditional methods such as Waterfall, which focus on launching a completed product after a lengthy development period, Agile focuses on reacting to market trends and customer feedback, and incorporating these into the development process. 

Agile methodology explained

agile methodology diagram

The Agile Manifesto, published in 2001, was written by a group of 17 thought leaders, called the Agile Alliance. The Agile Manifesto consists of 4 values and 12 principles.

The four values of the Agile Manifesto:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

The 12 principles of The Agile Manifesto:

1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.

3. Deliver working software frequently, from a couple of weeks to a couple of months, with preference to the shorter timescale.

4. Business people and developers must work together daily throughout the project.

5. Build projects around motivated individuals. Give them the environment and support they need and trust them to get the job done.

6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.

7. Working software is the primary measure of progress.

8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

9. Continuous attention to technical excellence and good design enhances agility.

10. Simplicity –  the art of maximising the amount of work not done – is essential.

11. The best architectures, requirements, and designs emerge from self-organising teams.

12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly.

Why agile?

According to the 14th Annual State of Agile Report, the two most popular motivations for adopting Agile are accelerating software delivery and improving the capacity to deal with changing priorities. Many teams choose Agile to better prepare them to succeed in a VUCA environment.

VUCA is an acronym – first used in 1987, drawing on the leadership theories of Warren Bennis and Burt Nanus – that describes unpredictability of the working environment.

VUCA stands for:

  • Volatility
  • Uncertainty
  • Complexity
  • Ambiguity

In this environment, the assumption that a solution can be designed in detail up-front rarely reflects reality. Instead, successful Agile teams monitor market trends and user feedback, then amend their workflow as necessary. The ability to react dynamically to such changes not only delivers value to users more quickly, but also preserves the resources of Agile teams. Incorporating feedback into the development process ultimately saves time, money, and energy as the large-scale, retrospective changes of traditional development approaches are no longer necessary.

The business benefits of agile

Companies and teams that adopt Agile frameworks often experience many improvements. If you’re wondering whether Agile is worth learning and adopting in your own environment, consider the list of benefits Agile can bring below: 

1. Customer satisfaction 

Agile places users at the heart of the development process. Agile teams are encouraged to be empathetic towards their users, to create detailed user personas, and to focus on delivering the most valuable functionality to users first. As a result, Agile teams often see increased customer satisfaction and retention, particularly as users recognise that their input and concerns are a priority. 

2. Higher quality products

 

The iterative approach of Agile teams, in continually delivering improved functionality with each iteration, results in the development of far superior products. Agile encourages a shift of mindset, whereby teams understand that products can always be improved based on feedback.  

3. Adaptable

Agile teams thrive in the VUCA environment. Agile teams react well to change, even under time constraints, as the possibility of shifting requirements is always a considered a possibility. Agile teams are able to alter their workflow efficiently in line with clients’ changing requirements. 

4. Predictable & estimable 

 

Given that Agile teams work in short, time-boxed periods, e.g., sprints, it’s often easier for project managers to estimate the resources required, as resource assignment is generally simpler over a shorter timeframe. The time-boxed workflow, with a set number of tasks to complete in a given iteration, also makes measuring team pace and performance far easier compared to projects that span many months. 

5. Risk reduction

 

Progress is evaluated on a regular basis throughout sprints. As a result, blockers and obstacles are picked up quickly by development teams, preventing smaller issues from ballooning into larger problems. Agile teams focus on mitigating risk through regular reflection, resulting in a higher probability of overall project success. 

6. Effective communication

Consistent, effective communication is a key priority of the Agile approach, particularly as teams are self-organising. Teams are encouraged to share their progress on a daily basis, e.g., in 10-15-minute Stand Ups, ensuring the whole team agrees on processes and goals. This regular communication helps to iron out any potential miscommunication before it snowballs into larger problems, making the development process a far smoother one.

7. Consistent pace

Agile teams focus on finite, manageable tasks within iterations of their workflow. This allows teams to gain a sense of achievement with each task completed, and helps teams avoid burnout. As a result, Agile teams are often highly motivated and energised, which in turn makes them all the more dynamic!

How to adopt an agile approach

If you’re thinking about implementing Agile in your workplace, you’ll first need to consider which Agile framework will be the best fit for your team.

Below is a brief exploration of the 4 key Agile frameworks. Perhaps you might find the perfect fit for your team…

  1. Scrum:

Scrum is an agile framework intended to deliver high-quality products to users quickly and continuously.

Each project with the Scrum framework is broken down into manageable tasks, which are organised into Sprints. These have a duration of 1 to 4 weeks.

Scrum employs an iterative approach to control risk. Issues within the Sprint are systematically pulled through a workflow as follows: To Do, In Progress, Done.

Each sprint involves four ‘ceremonies’: 

  • Sprint Planning: A team meeting to determine the work to be completed within the upcoming sprint. A Product Owner organises and prioritises tasks in the Product Backlog.
  • Daily Scrum / Stand Up: Short meeting of 10–15 minutes to discuss progress and roadblocks.
  • Sprint Review: A collaborative meeting where the team showcases what they’ve developed.
  • Sprint Retrospective: An evaluation of the results the sprint to amend your process as necessary.

"Scrum should not be viewed as a collection of practices but rather as a culture or a set of values."

– Ken Schwaber, Software Developer

  1. Kanban:

Kanban is a workflow management system focused on the visualisation of the team workflow. As with Scrum, Kanban seeks to pursue evolutionary, continuous improvement, whereby the requirements and wishes of the users are prioritised.

With this framework, teams establish Kanban boards, which are populated with Kanban cards (containing user stories from the Product Backlog), which are then progressed through the workflow.

Kanban’s visualisation is vital as it provides a clear, tangible representation of team progress. The Kanban framework also seeks to increase efficiency, or flow, as teams must establish work in progress limits. Again, the visual reminder can be a powerful tool here. Teams are asked to limit how many cards may be in each column at one time. This ensures a smooth workflow, with cards moved across the board only when the team is ready to work on them.

Another key principle of Kanban is start with what you do now. Kanban can be an ideal way into an Agile way of working, as teams are encouraged to apply the Kanban methodology to their current way of working, rather than undergoing any major overhaul.

  1. Scaled Agile Framework (SAFe):

The Scaled Agile Framework (SAFe) offers a structured approach to scaling Agile to a wider, organisational level.

SAFe is applicable to enterprises of a range of sizes. There are 4 configurations available: Essential SAFe, Large Solution SAFe, Portfolio SAFe, and Full SAFe.

The Core Values of SAFe indicate the kind of environment and behaviours that will reap the greatest benefit from the framework:

  • Alignment: Teams are synchronised, with everyone on the same page regarding business goals and the plan of action.
  • Built-in quality: Teams must establish a clear, specific definition of ‘done’ for all tasks.
  • Transparency: SAFe fosters behaviours that establish trust within the team, such as planning smaller batches of work so potential problems become visible at an earlier stage.
  • Program execution: Teams are expected to deliver quality products on a regular, consistent basis.
  • Leadership: Effective Agile leadership is required to ensure that a suitable environment is created. 4. Lean Software Development (LSD)

Lean Software Development (LSD) is an Agile framework based streamlining development resources, eliminating waste, and delivering only what the end user requires.

LSD is also referred to as the Minimum Viable Product (MVP) strategy. Using this approach, a product or functionality is launched by the development team, user feedback is swiftly acquired, then the functionality undergoes further development based upon this feedback.

LSD is a particularly efficient way to streamline the development process. It also forces teams to make swift, and potentially impactful, decisions about which features to cut and which to develop. This can be an overwhelming prospect for some teams, so this is approach is not for everyone.

Agile jargon buster

Below are a number of key terms that can help demystify the world of Agile.

Product Owner

The Product Owner is accountable for maximising the value of the product resulting from the work of the Scrum Team. How this is done may vary widely across organisations, Scrum Teams, and individuals.

Definition of done

The Definition of Done is the agreed set of activities that must be completed for the task, often a User Story, to be considered done and moved out of the workflow.

Sprint

An agile sprint is a short, timeboxed period during which a set amount of work is completed by an Agile team. Sprints range from one week to a maximum duration of one month, with the most common duration sitting at the two-week mark.

The idea is that the shorter the sprint, the greater the momentum of the team, and the quicker the end user will benefit from the completion of the work. Of course, the length of your Sprints will depend on the nature of the development your team carries out, and as the length of Sprints remains the same, it’s vital that you select an appropriate time frame for your team to be able to consistently complete a given number of tasks, or User Stories.

Daily Scrum

A 15-minute event for the developers of the Scrum Team. The purpose of the Daily Scrum is to inspect progress and adapt the Sprint Backlog as necessary for the upcoming planned work.

Daily Stand-up

A very similar meeting to the Daily Scrum, though not defined by the same restrictions (timeframe, attendees) in The Scrum Guide.

Epic

Important for Agile and DevOps teams, Epics are large projects that are then divided into smaller, specific tasks, e.g., User Stories.

How to learn agile

A great way to learn about Agile and the benefits it brings is to begin to implement Agile principles within your development team. If you’d like to deepen your understanding of Agile, simply out of interest or with a view to making your own team an Agile one, there are a number of QA courses on offer to help you reach your goals. 

QA offer a wide range of Agile training courses and qualifications, all led by our team of expert trainers. This includes specific training on how to become an Agile Product Owner, or the Agile Coach within your organisation, or dedicated training in Scrum

 

Discover Agile courses and certifications

Related Articles