Agile and Scrum

 · 6 mins read

Agile

Agile is a term used to describe approaches to software development emphasizing incremental delivery, team collaboration, continual planning, and continual learning.

Agile Manifesto. The manifesto set out to establish principles to guide a better approach to software development. At its core, the manifesto declares 4 value statements representing the foundation of the agile movement.

We have come to value:

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

Agile is a mindset, which drives an approach to software development.

Scrum

Scrum is an agile way to manage a project, usually software development. Agile software development with Scrum is often perceived as a methodology; but rather than viewing Scrum as methodology, think of it as a framework for managing a process.

Instead of providing complete, detailed descriptions of how everything is to be done on a project, much of it is left up to the Scrum software development team.

Scrum relies on a self-organizing, cross-functional team. The scrum team is self-organizing in that there is no overall team leader who decides which person will do which task or how a problem will be solved. Those are issues that are decided by the team as a whole.

Within agile development, Scrum teams are supported by two specific roles.

ScrumMaster, who can be thought of as a coach for the team, helping team members use the Scrum process to perform at the highest level.

In the Scrum process, a ScrumMaster differs from a traditional project manager in many ways, including that this role does not provide day-to-day direction to the team and does not assign tasks to individuals.

A good ScrumMaster shelters the team from outside distractions, allowing team members to focus maniacally during the sprint on the goal they have selected.

Product Owner (PO), who represents the business, customers or users, and guides the team toward building the right product.

The product owner works to direct the team to the right goal. The product owner does this by creating a compelling vision of the product, and then conveying that vision to the team through the product backlog.

The product owner is responsible for prioritizing the backlog during Scrum development, to ensure it’s up to par as more is learned about the system being built, its users, the team and so on.

The third and final role in Scrum project management is the Scrum team itself. Although individuals may join the team with various job titles, in Scrum, those titles are insignificant. Scrum methodology states that each person contributes in whatever way they can to complete the work of each sprint.

One way to think of the interlocking nature of these three roles in this agile methodology is as a racecar.

The Scrum team is the car itself, ready to speed along in whatever direction it is pointed. The product owner is the driver, making sure that the car is always going in the right direction. And the ScrumMaster is the chief mechanic, keeping the car well tuned and performing at its best.

Scrum Development

The Scrum model suggests that projects progress via a series of sprints. In keeping with an agile methodology, sprints are timeboxed to no more than a month long, most commonly two weeks.

  1. Scrum methodology advocates for a planning meeting at the start of the sprint, where team members figure out how many items they can commit to, and then create a sprint backlog – a list of the tasks to perform during the sprint.</p>
  2. During an agile Scrum sprint, the Scrum team takes a small set of features from idea to coded and tested functionality. At the end, these features are done, meaning coded, tested and integrated into the evolving product or system.

  3. On each day of the sprint, all team members should attend a daily Scrum meeting, including the ScrumMaster and the product owner. This meeting is timeboxed to no more than 15 minutes. During that time, team members share what they worked on the prior day, will work on that day, and identify any impediments to progress.

  4. At the end of a sprint, the team conducts a sprint review during which the team demonstrates the new functionality to the PO or any other stakeholder who wishes to provide feedback that could influence the next sprint.

This feedback loop within Scrum software development may result in changes to the freshly delivered functionality, but it may just as likely result in revising or adding items to the product backlog.

Another activity in Scrum project management is the sprint retrospective at the end of each sprint. The whole team participates in this meeting, including the ScrumMaster and PO. The meeting is an opportunity to reflect on the sprint that has ended, and identify opportunities to improve.

The Main Artifacts

  • The primary artifact in Scrum development is, of course, the product itself. The goal is to bring the product or system to a potentially shippable state at the end of each Scrum sprint.</p>
  • The product backlog is another artifact of Scrum.This is the complete list of the functionality that remains to be added to the product. The product owner prioritizes the backlog so the team always works on the most valuable features first.

  • Additional artifacts resulting from the Scrum agile methodology is the sprint burndown chart and release burndown chart. Burndown charts show the amount of work remaining either in a sprint or a release, and are an effective tool in Scrum software development to determine whether a sprint or release is on schedule to have all planned work finished by the desired date.

BTW, what is a burndown chart? see the definition.

Benefits

Organizations that have adopted agile Scrum have experienced:

  • Higher productivity
  • Better-quality products
  • Reduced time to market
  • Improved stakeholder satisfaction
  • Better team dynamics
  • Happier employees

Waterfall vs. Agile

Waterfall is a linear approach to software development. In this methodology, the sequence of events is something like:

  • Gather and document requirements
  • Design
  • Code and unit test
  • Perform system testing
  • Perform user acceptance testing (UAT)
  • Fix any issues
  • Deliver the finished product

issues with pure Waterfall approach:

  • One area which almost always falls short is the effectiveness of requirements. Gathering and documenting requirements in a way that is meaningful to a customer is often the most difficult part of software development.</p>
  • Another potential drawback of pure Waterfall development is the possibility that the customer will be dissatisfied with their delivered software product. By that time, changes can be difficult (and costly) to implement.

Resources:

1.what is agile

2.scrum

3.waterfall vs agile