A brief introduction to agile process, principles, methods, and tools
As a technologist, all my projects have used agile methods for over a decade. The initial transition from waterfall methods to agile was not easy, but I have never looked backed after seeing the value.
In this article, I provide a brief introduction to the agile method at a high level for beginners. If you are new to the agile approach, these terms and concepts can be helpful.
Agile team members can create different personas or a group of personas for creating solutions similar to the ones in Design Thinking workshops. Personas represent fictitious people or characters representing the users or consumers of the solution.
A scrum master can be a technical team lead role; however, it has a project management flavour. For example, as a scrum master for a Sprint, we are expected to create and collect all User Stories, review them and publish them on an Agile board. In large business organizations, a project manager usually undertakes this role; however, if an Architect leads an IoT solution, the lead architect is expected to be the scrum master for that specific solution.
At a high level, some of the key concepts in an agile project are creating Epics, writing User Stories, putting Stories to the Backlog, creating solution artefacts, and completing the Sprint successfully by producing Acceptance Criteria. I explain these five key concepts to help you understand how to use an agile method.
A User Story is a tool used in agile solution development to capture a description of a solution feature from a user perspective. The User Story describes the type of user, what they want and why they want it. In other words, a User Story is a simplified explanation of the solution requirement. A collection of these User Stories establishes the requirements published in an Agile management tool.
An Epic can be a feature, customer request or a chunk of business requirements. The details of the features are defined in User Stories. An Epic can be defined as a group of work items that has a common objective. An Epic usually takes more than one Sprint to complete. In other words, Epics are big User Stories in nature.
A Sprint is a planned and time-boxed iteration of a continuous development cycle. Sprints usually take two weeks. Some may take a month. A timebox is a strictly defined time during which a task must be completed.
At strict Agile practice, once the two weeks or a month is consumed, the Sprint is stopped because it is time-boxed. If the tasks, User Stories cannot be completed at the determined time, the Sprint fails.
A Spike is a kind of communication such as a meeting or a phone call to investigate how much time a User Story may take. This means that we need to use a spike for a User Story that cannot be estimated until the solution team performs a time-boxed investigation.
A backlog is a list of all tasks that need to be completed within a project. However, this list needs to be the desired features for the product or service component. It is a replacement for the traditional requirements specification artefact.
Backlog items can be described in technical terms or can be documented in the User Stories format. A Backlog is used to prioritize features and understand which features to implement in priority order.
At the end of each Sprint, there is also a Backlog Grooming (aka Backlog Refinement) activity that occurs. This activity is done to make sure the Backlog is ready for the next Sprint. Using this activity, the Scrum team members can remove irrelevant user stories, create new stories, or reassess priority, or even split user stories into smaller stories.
An Acceptance Criteria specifies a set of conditions that the solution must meet to satisfy the client. The product owner writes statements from the client’s point of view that explain how a User Story or Epic must work.
For the User Story or the Epic to be accepted, it needs to pass the acceptance criteria. If not, it fails! Acceptance criteria must be written in a clear, concise and in meaningful manner to bring the client and the solution team members on the same page.
Minimum Viable Product (MVP)
Each iteration in a Sprint or an Epic in the agile approach aims to create a product that offers minimum functionality based on the use cases of the solution. MVP is assessed based on Acceptance Criteria.
One inevitable thing in agile is the Daily Scrum or Daily Stand-up sessions. These are brief communication and status check sessions managed by the Scrum Master. In the Daily Scrum meetings, the team members share their progress, report constraints, and make commitments for the current Sprint.
A Daily Scrum session includes focused conversation kept to a strict timeframe. Daily Scrum sessions are held simultaneously on every business day, usually in the same location. The Scrum Task Board serves as the focal point of the Daily Scrum sessions. The Scrum Master asks three main questions of each team member:
- What progress have you made today?
- Do you have any roadblocks?
- What do you plan for tomorrow?
The team members provide quick and concise responses to these three questions. The scrum master keeps minutes of the Daily Scrums and enter them tools like JIRA. The action points in these minutes are reviewed each day.
Chicken and Pig
It is also common to find some interesting terms in Agile teams such as Chicken and Pig. A Chicken in agile terms refers to someone involved in the project; however, he or she is not accountable for any specific deliverable. On the other hand, a Pig is considered someone who is committed and directly responsible for deliverables. This means that the Solution Architects are certainly categorized as Pigs (with no offence).
The term Kaizen is repeated a lot in agile methods. It means continuous improvement. Kaizen is a process of improving quality and efficiency by making small, incremental changes over time.
Two key Kaizen activities for IoT solutions can be optimizing workflows and reducing cycle times, which can result in increased productivity.
Kaizen is a useful agile term and principle to introduce to the IoT ecosystems.
As an agile practitioner, you create Epics, write User Stories, put Stories to the Backlogs, create solution artefacts, and complete the Sprint successfully by achieving goals set in the Acceptance Criteria. There are many tools on the market. One of the most common tools is JIRA. Agile principles help the practitioners to produce fast, using minimum viable products by embracing change, working as a team, being transparent, and measuring progress.
Thank you for reading my perspectives.