Many companies leverage Agile as the delivery mechanism for new or redeveloped software systems, but not for support of these systems once they are staged to a production environment. 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. More and more companies are deploying Agile Factories to scale their Agile software development culture into system support activities based on the following inherent benefits:
- System support success is dependent upon effective continuous delivery, integration, and quality (CD, CI, CQ). 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. AgileCD/CI/CQ tools and techniques address both of these areas. Continuous Improvement also applies to periodic retrospectives to assess and improve system support responsiveness and effectiveness.
- 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 leverages 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 the Rational Unified Process (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.
Ultimately, the participation of business management in setting priorities on an ongoing basis and conducting retrospective meetings enable Factory teams to achieve more visibility on management’s radar, which otherwise rarely happens unless escalations reach the top echelons. An Agile Factory enables an ability to project and report system support achievements in a more structured and time-bound way, bringing management’s attention and focus to the Factory teams’ successes.