Features of Agile SCRUM development
Agile is the an approach to developing software and the management of software development teams. It is built around a number of simple concepts:
- The need to develop software in a rapid way to achieve quicker development cycles, so that progress can be demonstrated quicker and earlier to stakeholders. It also recognises that stakeholders and clients can change their minds on requirements, so that the software development process is effectively non predictive, more real world than ideal.
- The need to develop software when not all the know requirements are established at the outset of the development.
- Breaking down a development into iterative components or Agile parlance, Sprints, so that delivery of functionality becomes staged and more visible quicker.
- Everyone on the software team is aware of each other's workload and able to roll up their sleeves to support the development. The idea here is to reduce the reliance on any one single individual and to share the load as much as possible. The team will be made up of cross functional skill sets such as software developer, analysts , testers etc.
- Create visibility of the development so that people not directly involved, such as stakeholders, can participate and change their minds even.
- Stimulate the practice of automated software building and testing to create a more rapid development experience.
When should I use Agile SCRUM development
Agile can be applied to any software project that can be delivered iteratively or in "chunks". This applies to most software developments that are interactive.
When is Agile SCRUM NOT appropriate?
Agile is not appropriate in cases where you have a software development that can only be delivered in a single "chunk" or can not be divided into
Sprints. A classic case would be a calculation engine or process that can not be tested until the development is complete. So single iteration projects do
not suit Agile. Agile works best when the software development team are located physically close to each other however technology is removing this as a
barrier to agile adoption. Daily meetings are held by the project lead to keep the team focussed on the tasks in hand. If this not able to be achieved, it
makes running an Agile projected somewhat difficult.
Agile is not appropriate in software development environments where there is a mix of new product development and existing product support, be serviced by the same team. New product development tends to be much better suited to Agile then support, which in its nature is more fixed and delivered in single iterations.
How do I adapt to Agile SCRUM
- Developers have to be happy to communicate and to share their workload.
- Developers have to be able to address changes in direction of requirements, workload and priorities. Agile imposes are more chaotic / disruptive style of development. Some developers would find this un-nerving and to unsettling.
What is the best way to adopt Agile SCRUM?
The best way to acquire skills is to isolate a pilot project that can be delivered in iterations. Select a team of say four or five developers. Ensure there is participation from a stakeholder. Elect a leader to run the daily meetings. Prior to starting the pilot engage in some team training on Agile and more specifically on SCRUM and consider using an Agile SCRUM mentor to run the first sprints to ensure successful adoption . It is likely that agile adoption will require compatible technology adoption to facilitate automated builds, automated testing and agile templates e.g. burndown charts. Dunstan Thomas are experts in Agile Software Development and can provide training, consulting and mentoring services to facilitate smooth adoption as well as supporting tools such as Microsoft Team Foundation Server and Micro Focus SilkTest. Contact Dunstan Thomas ALM for more information on Agile SCRUM services.