Many companies leverage Agile as the delivery mechanism for new or redeveloped software systems, but not for support of production. Agile methods help small teams deal with a lot of change and uncertainty, and to deliver software quickly – all things that are at least as important in maintenance as they are in development.
- System support is inherently dependent upon continuous delivery, integration, and quality approaches. As with software development, the goal in production is to “get it right the first time.” With system support, getting things fixed as quickly as possible is also a high priority. Agile CI/CD/CQ tools and techniques address both of these areas. Continuous improvement also applies to periodic retrospectives among the system support resources.
- Production teams work on what is most important, versus first in, first out (FIFO). As with Agile software development, the business prioritizes work as a part of backlog grooming. With traditional system support, work is addressed according to the date the request was submitted. This implies that the most important item in the support backlog is not what is being worked on.
- An Agile Factory supports a continuous flow of delivery. In a factory lifecycle, a solution is deployed as often and whenever it makes sense to do so. Work is pulled into the team when there is capacity to do it..
- Agile practices are on their own cadences. With iterations or sprints, many agile practices such as detailed planning, retrospectives, demos, and detailed modeling, are effectively put on the same cadence of the iteration. With a lean approach leveraging Kanban and Scrumban, you should do something when it makes sense to do it, not when the calendar indicates that you’re scheduled to do it.
- The Agile Factory uses a work item pool. All work items are not created equal. Although you might prioritize some work in the “standard” manner, using a value-driven approach like Scrum or a risk-value driven approach like Disciplined Agile or RUP, other work may fit this strategy. Some work must be expedited, such as fixing a severity-one production problem. So a work item pool – not a prioritized backlog stack – makes a bit more sense when you recognize these realities.