For organizations that are not happy with the delivery of their software projects, Scrum / Agile is an approach made up of values, principles and specific practices that can help you deal with the constant need to change direction while still maintaining control, to dramatically decrease your time-to-market, to reduce the risk of working with complex projects, to improve the quality of delivery so your customers see fewer defects, while also increasing the engagement and morale of your people.
An Agile / Scrum approach achieves this by:
Ordering the delivery of functionality based on the “most important value first” principle, prioritizing our demand based on sound economic principles.
Organizing our system of delivery around the “delivery of value to the customer.”
Delivering value in short iterations (also called sprints - 1-4 week time-boxes) to a known quality standard so the decision to release can be made at any time (usually when it is determined that sufficient functionality is provided). In other words, “deliver on a cadence, release on demand”.
Delivering value piece by piece so that customers can provide feedback as the work is completed.
Ensuring there is transparency of progress and constant communication / collaboration especially between the people who need something and the people that can provide it but throughout the whole delivery system.
Ensuring that we build plans based on the real capacity of the organization to deliver.
Unlike the traditional development approach, which assumes that you plan a software project upfront and in detail, Agile / Scrum approaches understand that the real world of software is a place where:
The customer does not (and cannot specify) exactly what he / she wants, but rather will be able to provide solid feedback when they see a running system.
Our teams have potentially lots of ways to build a capability but it is when they start working on the capability, with the whole team (development, QA, documentation, BA, etc.), that they will really understand how to solve the problem and deliver the value.
That change will happen and, more importantly, that change is a good thing as it means we have learned something about the requirements or the approach we are taking, and we should leverage that knowledge. This means Agile / Scrum approaches work to make the cost of change low.