1. We increase return on investment by making continuous flow of value our focus.
At least with the time we had, we delivered as many of the most valuable features we could.
2. We deliver reliable results by engaging customers in frequent interactions and shared ownership.
We make pace and rhythm visible early and we force the interaction with the customer into a partnership.
3. We expect uncertainty and manage for it through iterations, anticipation and adaptation.
Requirements emerge, they are not gathered. Let things evolve. Start with what the customer says he wants - use it as a warm-up exercise. The customer may say he wants so and so but, more often than not, he has no idea what he really needs nor what he could get. It's often possible to deliver something that he's never even dreamed of.
4. We unleash creativity and innovation by recognising that individuals are the ultimate source of value, and creating an environment where they can make a difference.
Push decisions down and out. Don't worry who is where in the hierarchy find the right home for the decision. Are you the right person to make the decision? You might have the authority to make it but you do you have the right experience and the confidence to make it? Make the workplace safe for people to make decisions.
5. We boost performance through group accountability for results and shared responsibility for team effectiveness.
The great projects have emotion and people care. Emotion comes from collocation and dedication. Their sense of pride is tied up in the success of the project. Every person knows that they can't succeed unless the team succeeds. Early wins beget later wins. Iterations provide shorter delivery timeframes. Delivering working software every iteration (and not parts of specifications) gives the epiphany of 'working' and that's a real adrenaline boost.
6. We improve effectiveness and reliability through situational specific strategies, processes and practices.
To be truly efficient, the process itself must embrace change.