What is agile?
Agile is not a software methodology, process, scrum, stand-ups, sprints, boards, post-its or sharpies. It is a collection of values, practices and behaviours enabling teams to build services (or things) iteratively, delivering early and often.
What happens in an agile environment?
In an agile environment, multi-disciplinary teams are co-located, self-sufficient, empowered and responsible for the delivery. Collectively they develop empathy for their users and continue to work with them until user needs are met.
To help develop the prototype and then build the minimum viable product, the team will define a list of user stories which collectively form a product backlog. User stories are a way of organising user requirements into manageable chunks. Each week these user stories are prioritised and planned into the sprint and entered into the sprint backlog. See further information about sprint planning below.
For more information on defining user stories see Defining User Stories.
The agile operating model
During the Discovery and Alpha phases, the team will operate on a one week time period known as a sprint. Beta can operate in either one week or two week sprint cycles. Throughout the sprint, the team will work through the following agile ceremonies.
At the beginning of each day, the team will gather for a brief 15 minute session, known as a daily stand-up. The stand-up will provide opportunity for the team to regroup on their focus and goal for the week, and discuss progress made and any constraints/blockers. Typically the team will use a wall/board and cards/stickies to visualise their work, ensuring the stand-up is focussed on the work inflight.
At the beginning of each sprint, the team will conduct a one hour planning session, allowing them to determine the plan for the upcoming week. During the session, the team will capture their overarching goal for the sprint and the prioritised user stories/tasks required to achieve this goal. The product manager plays a key role in leading the prioritisation.
All tasks are visualised on their team wall/board. There are systems available to manage user stories and tasks such as JIRA and Trello, but it is recommended to use the wall during Discovery and Alpha. During development (Beta), the tasks are more granular and move through more roles. Therefore a system is recommended here.
Considerations when planning include task sizing (e.g. Small, Medium and Large) and team capacity (allowing for pre-planned leave, ramp-up time, etc.). At the completion of sprint planning, the team should have a high level of confidence in their ability to achieve their goal.
Continuous improvement is a key principle of the agile way of working, ensuring the team is regularly inspecting and adapting. Held at the end of the sprint, the retrospective is a collaborative workshop in which team members capture what worked well throughout the sprint, what worked not so well and what improvements can be made in the upcoming sprint.
Transparency and feedback are critical throughout all phases. At the end of each sprint, the team will regroup with stakeholders and other interested parties, showcasing the work completed throughout the sprint. The team will discuss the goal captured during sprint planning, progress against the goal and any impediments which held them up in achieving the goal.
The showcase is an opportunity to celebrate the achievements of the team, while capturing feedback for consideration in the upcoming sprint.
By sharing regular updates to stakeholders at the showcase, you can reduce the amount of ad-hoc 'drop-ins' to the team from stakeholders, during the sprint.