Having been asked a number of times recently how SAP change control technologies, like Rev-Trac for example, can assist with managing agile development processes within an SAP development we thought you might be interested in our thoughts.
Over the next few blogs we will be teasing out the concept of agile development, how it fits within an overall change control process and how change control automation can hold it all together.
Firstly, although far from an agile development expert (however this is the method RSC uses in its own software development) some basic explanation around agile development is required to set the scene.
Goals of Agile Development
The main goal of agile development is to implement software release faster and at higher quality to provide quicker returns on development investments. In short, agile development is about working software being made available quicker.
It involves less reliance on documentation and specifications and more reliance on iteration and collaboration to achieve the desired result.
What is Agile Development?
One of the main features of agile development is minimal planning and no long term planning involved.
Agile puts responding to change first over following a plan, individuals and interactions over processes and tools, working software over comprehensive documentation, and customer collaboration over contract negotiation. To achieve this, the development process is broken into small tasks in short time frames of one to four weeks.
A typical agile development cycle consists of requirements testing, design, unit testing and acceptance testing performed by the business customer.
Agile Development Methods
Agile development methods take numerous forms with some of the better known ones as follows:
- Scrum
- Agile Modeling
- Feature Driven Development (FDD)
- Test Driven Development (TDD)
- Adaptive Software Development (ASD)
- Extreme Programming (XP)
- Dynamic Systems Development Method (DSDM)
Normally, a development organisation would select one of the known agile development methods in the context of their own development culture and development and then tailor it to meet their own particular development needs.
Interestingly, some development types do not suit agile development very well and require a higher degree of thought and tailoring and are perhaps more suited to the traditional waterfall development methods.
For example:
- Large-scale development efforts where many developers are involved in single projects,
- Distributed development efforts where developers are located in various locations and
- Mission-critical systems where software quality is paramount
Interestingly, these describe most large SAP development IT organisations!
Scum Method
Of the above agile development methods, the Scrum method is the most used (11% - Forrester) and the one believed to be most easily adapted into most SAP development environments. The Scrum method consists of several well defined phases.
- Planning phase:
Planning of the requirements
- Sprint phase:
Development, implementation, testing and documenting the changes to meet requirements
- The postgame phase (closure phase):
Integration, testing, user documentation, training
As you can see, the Scrum method is a well organised method and not too different to existing SAP software development methods and quite easily adapted.
Agile Development and Change Control
Taking the Scrum method as an example, change control processes can be easily developed to manage the Scrum phases and phase components of the software development assisting the integration of agile development methods into the larger, distributed development team mission critical requirements of most SAP IT organisations.