Team:Concordia-Montreal/Agile

Astroyeast - Accelerating outer space exploration through synthetic biology !-- Title end -->

...

Agile Development

We applied the latest Agile Development practices to deliver AstroBio.

Introduction

Agile software development relies on a set of methodologies that are based on iterative development. This approach consists in grouping software development tasks into small development cycles that are repeated until a final product is achieved. Agile processes promote the rapid delivery of software and emphasize engagement with end users.

In general, agile development refers to any development process that is aligned with the concepts of the Agile Manifesto. This Manifesto was conceived by leading software development experts based on their experience on what techniques work or do not work in this field.

For our project, we followed a subset of Agile called Scrum.

Scrum can be defined as lightweight process framework centered around accelerated delivery, fast feedback, and continuous improvement.

Scrum Framework

Product Backlog

Our product backlog includes all the list of features that needed to be part of the final version of AstroBio.

To capture all these product features, the first step we took was to create user stories. These stories captured software requirements from the user’s perspective. The product backlog can be thought of as a list of user stories.

User Stories

User stories are informal descriptions that focus on what the user wants to be able to achieve with the software without going into technical specifications. We created using as follows:

As a [ occupation ], I need to [ task ] so that I can [ purpose ].

Sprint Planning

We held sprint planning meetings to select the order in which product backlog items would be implemented. Items from the product backlog were chosen based on priority and moved into a sprint backlog.

Sprint Backlog

Product backlog items or user stories were further broken down into sprint tasks. Each task was given a description, an assignee, and a deadline. To keep track of tasks, we implemented scrum boards.

Scrum Boards

Scrum boards are visual frameworks used to display the progression of software development tasks. These boards are known today as one of the most useful agile techniques. We created these boards using Asana. Our boards included the following:

User Stories: each user story came directly from the product backlog.

Sprint Tasks: each sprint task was derived out of a specific user story.

Task Workflow: typically, a task card followed a workflow until completion was achieved. We employed a simple workflow to organize all of our task cards: “To Do”, “In Progress”, and “Complete”.

By using Scrum boards, we were able to spot workflow bottlenecks quickly. For example, if the “In Progress” section contained several cards that were awaiting for activity, it was evident there was a delay. If that was the case, possible solutions were discussed during our weekly stand-up meetings. Since all the cards had assignees, it was also easy to spot which team member needed additional support.

Without a doubt the boards also helped us save time on unnecessary meetings or progress reports. They worked as a centralized task repository that keep everyone on the loop regarding how the project was progressing. Thanks to this factor, weekly meetings ran smoothly.

4Ls Retrospective

A retrospective is a meeting in which the software development team looks back on their experiences after a given sprint. It is important to note that 4L stands for:

Liked: What did you like about the sprint? What worked really well?

Learned: What did you learn? This included technical as well as non-technical knowledge.

Longed for: What resources did you want to use during the sprint that were not available?

Lacked: What did not work? What things could the team do better?

Retrospectives took place at the end of each sprint and lasted approximately 30 minutes. The software division’s team lead served as a retrospective facilitator. The findings were openly discussed, evaluated, and included in future sprints. In other words, the results were used to keep track of lessons learned and to ensure continuous improvement throughout our project.

The 4Ls retrospectives did not only allow us to assess AstroBio’s code base, they helped us assess our performance as a team and to evaluate the quality of our results. Moreover, these retrospectives encouraged us to acknowledge positive experiences and to remain factual in the face of challenges.

After setting the tone and preparing a virtual space for the retrospective, the facilitator guided the team to uncover useful insights regarding what worked well, and why. The idea was to guarantee that good working practices and procedures were maintained. By sharing the knowledge that was acquired during a specific sprint, team members were able to learn from others, and enhance their own knowledge base.

It was always communicated that no learning experience was too small to share with the group. When it came to what was longed for and what lacked, the team had the opportunity to determine what was needed and to prioritize future tasks based on these findings. Hosting online retrospective brought the team closer together and allow us to truly concentrate on taking action.

References

Agile Alliance. (n.d.). What is Agile? Retrieved from https://www.agilealliance.org/agile101/

Cluster, K. (2019). Agile Project Management: Learn How To Manage a Project With Agile. Independent Publisher.

Scrum.org. (n.d.). What is SCRUM? Retrieved from https://www.scrum.org/resources/what-is-scrum