Typical Agile methodologies such as Scrum, where it’s common to have regular rituals, and lock user stories during the sprint to avoid interruptions, don’t usually work for Operation and Maintenance (O&M) projects, and DevOps, because the activities in that type of projects are usually unpredictable, and priorities change rapidly and really often.
Kanban is a more suitable methodology for that, it was specifically designed to adapt rapidly and deliver results according to the needs of the project.
In Kanban, we still follow the daily standup meetings, but regular planning and reviews are not applicable, because this methodology is not based on regular fixed length sprints but a continuous flow. We still do planning with Kanban, but as needed.
The Agile team usually focus on one or few user stories at a time, and releases happen very often.
Interruptions are also common, at any given time an unexpected priority may take relevance, and the team is forced to drop what they are doing to get that new priority done (say, a security breach, or a server downtime).
Collaboration, peer review, pair programming and swarming are typical in Kanban. The idea is get one thing at a time, and release it as soon as possible to continue with the next priority that is awaiting to be done.
In this methodology, the team relies on a Kanban board to communicate priorities and progress, and also to promote transparency. This board usually have columns indicating statuses of the various activities, and cards under those columns, representing the activities and the development cycle. These are the usual columns in a Kanban board:
- Backlog: Owned by the product owner, it contains anything that is not ready to be developed.
- To do: Anything that is selected to be developed.
- In progress: Work in progress, it usually contains few cards.
- For testing: Anything that developers consider done, but is awaiting to be tested by other members of the team, or any stakeholder interested in doing quality assurance.
- Done: Anything that is verified and is in the process to be released.
Usually released tasks are not shown in the board.
Kanban demands discipline to keep the board updated in real time, so everybody knows what everybody is doing, and what are priorities at the moment. In addition, it’s strongly recommended that the team perform Kanban grooming very often, and work with the product owner to keep the priorities up to date.
We are currently using Kanban with great success in all our O&M contracts. So if you’re a company looking for an effective team to work on your operations and maintenance, give us a call!