2. How can SCRUM and agile development contribute to better results?
Agile development targets complex developments with dynamic, non-deterministic and non-linear approaches. Accurate estimates, stable plans, and predictions are often hard to get in early stages, and confidence in them is likely to be low. Agile practitioners will seek to reduce the leap-of-faith that is needed before any evidence of value can be obtained; requirements and design are held to be emergent.
So, which are the benefits of such development methodologies?
The Manifesto for Agile Software Development is names twelve principles:
- Customer satisfaction by early and continuous delivery of valuable software.
- Welcome changing requirements, even in late development.
- Deliver working software frequently (weeks rather than months)
- Close, daily cooperation between business people and developers
- Projects are built around motivated individuals, who should be trusted
- Face-to-face conversation is the best form of communication (co-location)
- Working software is the primary measure of progress
- Sustainable development, able to maintain a constant pace
- Continuous attention to technical excellence and good design
- Simplicity—the art of maximizing the amount of work not done—is essential
- Best architectures, requirements, and designs emerge from self-organizing teams
- Regularly, the team reflects on how to become more effective, and adjusts accordingly
Very similar principles can be used for the development of new products, services or processes.
With the use of adaptive methods shall be ensured, that one can quickly adapt to changing realities. Depending on the criticality of issues different methods will be used. For low-critical issues value driven methods and a culture which responds to change is most suitable, for those with high criticality plan-driven methods and a higher degree of order will usually be best and for extreme criticality formal methods and a very strong focus on quality are recommended.