Distributed Agile development, outsourcing and off-shoring in particular, have made change management troublesome without some level of automation of the process. Integrated tools for Agile change management are still evolving, but thankfully, a lot of this automation can be achieved with existing tools on the market. By systematically mapping the different Agile processes in use in a project in sequence, we can select and use automation tools for each of those, effectively accomplishing what a single integrated tool could accomplish.
Epics, features and story gathering tools
Project management tools designed specifically for Agile development already support, to a large extent, Web-based collection, dissemination and maintenance of epics, features and stories. Epics are large groups of features such as “support for field service technicians.” Features are smaller tasks such as “field service technicians able to handle trouble tickets.” Stories are the smallest category and include tasks such as “field service technician being assigned a ticket,” or “field service technician closing out a ticket after service is delivered.”
A number of these tools automatically send out email alerts if a new epic, feature or story is added or modified.
Story scheduling in Agile development is still a predominantly manual process, but support does exist in many tools for including complexity
Automated support for Scrum scheduling, participation, issues tracking
Many Agile development tools support scheduling of Scrum, facilities for recording minutes of these meetings, creation or modification of issues. Issue changes or additions can automatically be distributed by email to all stakeholders. Change management in Agile is more frequent by its very nature. Automated support for Scrum and ensuing change management challenges is absolutely necessary these days especially with geographically distributed stakeholders. Time zone differences only amplify the need for such automated support.
Change management and automated testing
Change management in Agile increases the need for regression testing simply due to the frequency of changes that sprints bring in. Between one iteration and the next, many parts of the code-base could change, increasing the potential for bringing back previously fixed defects. Test automation becomes essential. Agile test automation tools exist for user interface, black box and functional testing. They go a long way in enabling rapid change management without drops in the quality of the code.
Traceability support in Agile change management tools
Agile traceability support can be implemented by deriving acceptance tests directly from each story. Since stories may make up features, and features may make up epics, traceability support is provided all the way from epics down to stories by acceptance tests (usually many to each story). By making sure that acceptance tests cover all user stories, you provide a traceability route for every feature and epic. Automation of acceptance tests automatically provides traceability. In Agile, design and deployment of acceptance tests should keep pace with changes since they may be more frequent. This is the reason automated tools are very important in Agile change management.
Automated tools for browser abstraction
With many browsers fighting for market share apart from the one or two leading ones, support for browser abstraction is becoming increasingly important. When you introduce the element of change management also, it becomes absolutely essential. Exhaustive testing of the application in each browser even for a finished application takes time and resources. Bring in change management that’s more frequent, and now you have a testing nightmare. Fortunately, browser abstraction support is available in many Agile automated test tools. This allows testers to develop tests independent of browsers used. You just need to change the setting from one browser to another and the tool runs the same test case without any changes on the other browser. This allows testing of changes on multiple browsers quickly. Without this, change management in Agile development will bring in additional elements of potential project delays and complexity.
Automated tools with underlying toolkits abstraction
Applications may need to support multiple underlying user interface toolkit technologies. For example, they may need to support Java-based toolkits as well as Dot.Net-based ones. Automated test tools that support multiple underlying toolkits allow the development of acceptance tests that need not be changed for each of these toolkits. You just change a setting and the tool tests for that underlying toolkit. This shaves a lot of effort from testing, especially when frequent change management is needed.
Companies that have frequent change management in their Agile efforts need support from a variety of tools all the way from managing requirements to scheduling stories to testing, acceptance and closing out stories. Change management is hard enough in non-Agile methods where changes come only at the end of well-defined phases, mostly one or a few. Agile methods by their very nature require expanded support at every phase of the Agile development methodology. Without them, the whole effort will not be successful. Fortunately, there are a number of these tools already available that can fill these needs while fully integrated, dedicated tools for Agile development are evolving.
About the author: Nari Kannan is currently the Chief Delivery Officer of V-Soft Consulting, Inc., a Louisville, Kentucky-based software consulting firm. Nari has 20 years of experience in information technology and started out as a senior software engineer at Digital Equipment Corp. He has since served variously as vice president of engineering or CTO of six Silicon Valley startup companies, working in the areas of business process improvement, IT consulting, automotive claims processing, human resources and logistics applications. He can be reached at firstname.lastname@example.org.
This was first published in June 2011