Methodologies: Agile vs Scrum

Due to increasingly rapid rates of change in the corporate world, whether they occur within customer demands, project requirements, support issues or tasks, many companies are finding that their traditional business processes do not allow them to move fast enough and keep up with changes.

An increasing number of project management, product management and software development teams are transitioning from traditional Waterfall methodologies to Agile ones. Those who are new to Agile are often unaware of the fact that there are different types of Agile methodologies. One of the most popular Agile process is the Scrum methodology. We hope that this post clarifies the idea behind both Scrum and Agile.

An overview of the Agile methodology

The Agile methodology was first introduced in 2001 when the “Agile Manifesto” was formalized when 17 people got together at Snowbird Ski Resort in Utah. The Agile Manifesto outlines 12 important principles, which include communication, collaboration, the importance of software, and open-mindedness to change.

I previously wrote a post entitled Waterfall vs. Agile, in which I explain what differentiates Agile from Waterfall. The Agile methodology was basically put together as a solution to circumvent to pitfalls associated with Waterfall. Being a more flexible management framework, Agile allows teams to bypass traditional sequential paradigms and get more work done in a shorter time period.

What new Agile teams don’t realize, is that there are different types of Agile methodologies, the most popular one being Scrum.

The Scrum Methodology

Most teams that transition to Agile choose to start with Scrum because it is simple and allows for a lot of flexibility.

As explained on Scrummethodology.com, “Scrum is unique because it introduced the idea of “empirical process control.” That is, Scrum uses the real-world progress of a project — not a best guess or uninformed forecast — to plan and schedule releases.”

What differentiates Scrum from other methodologies?

– Scrum has three roles: Product owner, team members, scrum master.

– Projects are divided into sprints, which typically last one, two or three weeks.

– At the end of each sprint, all stakeholders meet to assess the progress and plan its next steps.

– The advantage of scrum is that a project’s direction to be adjusted based on completed work, not on speculation or predictions.

The Scrum process includes the following steps:

Backlog refinement

This process allows all team members to share thoughts and concerns, and properly understand the workflow.

Sprint planning

Every iteration starts with a sprint planning meeting. The product owner holds a conversation with the team and decides which stories are highest in priority, and which ones they will tackle first. Stories are added to the sprint backlog, and the team then breaks down the stories and turn them into tasks.

Daily Scrum

The daily scrum is also known as the daily standup meeting. This serves to tighten communication and ensure that the entire team is on the same page. Each member goes through what they have done since the last standup, what they plan to work on before the next one, and outline any obstacles.

Sprint review meeting

At the end of a sprint, the team presents their work to the product owner. The product owner goes through the sprint backlog and either accepts or rejects the work. All uncompleted stories are rejected by the product owner.

Sprint retrospective meeting

Finally, after a sprint, the scrum master meets with the team for a retrospective meeting. They go over what went well, what did not, and what can be improved in the next sprint. The product owner is also present, and will listen to the team lay out the good and bad aspects of the sprint. This process allows the entire team to focus on its overall performance and identify strategies for improvement. It is crucial as the ScrumMaster can observe common impediments and work to resolve them.

Redmine Scrum Plugins

Scrum and Kanban Plugins for Redmine

Redmine is a popular open source project management web application. It was written using the Ruby on Rails framework. This software is more oriented towards a traditional approach for project management with Gantt charts and calendar than Agile, Scrum or Kanban. However, Redmine architecture allows however creating plugins to add additional features. The development of a number of Agile and Lean plugins has therefore been started in these past years. However not all those plugins have been in continuous development until the current release of Redmine 1.2.1.

You will find below a list of Scrum and Kanban plugins that you could consider to use. You might also decide to fork some of the “abandoned” projects if you are willing to put them up to date. The number of these plugins is limited and trying to add Scrum/Kanban support to Redmine might not be the easier road for your Agile open source journey. For people that are looking for open source solutions, the Open Source Scrum Tools Directory is a good place to visit to have an idea of available open source Scrum tools.

Active Plugins

* Easy Agile

Easy Agile is a simple task board that allows you to define stories and track their statuses through iteration. The application is quite straightforward for the people familiar with the SCRUM and Agile methodology.

Web site: https://github.com/SphereConsultingInc/easy_agile

* Redmine Kanban

The Redmine Kanban plugin is used to manage issues according to the Kanban system of project management.

Web site: https://github.com/edavis10/redmine_kanban

* Redmine Backlogs

Redmine Backlogs is still a work in progress but can already do a number of useful things for your agile team:
* Sort stories in your product and iteration backlogs
* Track story points for each of your stories
* Display burndown charts to show progress
* Track tasks via your iteration’s taskboard
* Produce printable task board cards
* Track impediments within each iteration

Web site: http://www.redminebacklogs.net/

* Redmine-Scrumbler

Redmine-Scrumbler is a Redmine plugin that allows to use the Scrum/Agile process in projects. Scrumbler have interactive dashboard with the ability to configure for each sprint. Plugin adds Scrum Points field in every issue in project. Scrumbler as possible using the standard redmine structure of projects.

Web site: https://github.com/256MbTeam/Redmine-Scrumbler

Redmine Scrumbler plugin dashboard

Redmine Scrumbler plugin dashboard

Plugins valid for older Redmine version

* Scrum PM

Scrum PM is a plugin for Redmine for Scrum project management. Redmine Version class becomes a sprint and issue becomes task. Most actions support drag and drop and in the dashboard you can change status of your task simply by dragging it to another column.

* Support for UML diagram generators railroad (Rails) and umlgraph (JAVA).
* One click documentation generation (rdoc and javadoc)
* Continuous integration with CruiseControl
* Burndown charts
* Velocity planing

Web site: http://www.software-project.eu/EN/scrumpm
Web site: https://github.com/software-project/scrum-pm

* Version Burndown Charts

Version Burndown Charts Plugin create burndown chart graph for Scrum from ticket’s estimated hours and %Done in target version.

Web site: https://github.com/daipresents/redmine_version_burndown_charts

* Redmine Todos-Scrum Plugin

Development stopped in 2010. A nested, easy to use project based todos plugin for Redmine. Allows easy creation and management of infinitely nestable todo lists on a per project basis, that can be organized into sprints(or releases). Also provides global ‘My Todos’ for all projects. Todos can be allocated to uses, and tied to Redmine Issues.

Web site: https://github.com/dalyons/redmine-todos-scrum-plugin

* Scrumdashboard

Development stopped in 2009 “Scrumdashboard” is a plugin for Redmine. It enables Redmine to better support the Scrum process by giving the users access to a digital “dashboard”. This shows the status for the current sprint through a digital representation of a whiteboard with post-it notes detailing User Stories/Features/etc (from the product backlog) which is often used with projects using Scrum.

Scrumdashboard supports the following:
* Drag & Drop to change the status of an issue, following the workflow
* Change the types of statuses/trackers displayed on the dashboard
* Column sorting for statuses
* Choose which version to display on the dashboard
* Tooltips for each issue
* Display all the issues or only the issues assigned to the current user
* Configure colors for issues displayed

Web site: https://github.com/thus/redmine-scrumdashboard-plugin