At my current client, I've sown an Agile seed in a command-and-control environment. The organisation's culture is predominantly process-heavy, document-driven and full of waste. Nevertheless, my seedling grows. Nurturing it every day, I was inspired to write these statements as I witness the emergence of an Agile subculture.
1. Create A Shared Vision that will guide your decisions.
2. Focus On Purpose, Not Process. Concentrate on building product rather than serving process. Build product to satisfy customer demand.
3. Think Big. Start Small. Get something small and hard-hitting out there early and build on it quickly with regular releases.
4. Keep Things Simple. Simple rules lead to complex behavior. Complex rules lead to stupid behavior. Work by principles and not by prescription.
5. Deliver on time and on budget. Fix Time. Fix Budget. Vary Scope. And never compromise on quality. It'll cost you more in the long run.
6. Working Code Beats Everything. Running tested software is the best measure of progress. It focuses everyones attention. It provokes more meaningful feedback. And you learn more about what you're building.
7. Work From The Outside, In. See everything from the customer point of view first. Understand value from the customer perspective. Be customer-driven. Ask the customer what they want next. Let the customer pull you ahead of the competition.
8. Make Small Decisions to keep moving forward. Small decisions can be made quickly. Small decisions are reversible. If one doesn't work out go back and change it. If you need to make a bigger decision, make it at the last responsible moment when more information is available.
9. Let Details Emerge as things come into focus and you get feedback. Worry about details when they really matter.
10. Make it run. Make it right. Make it fast. Develop software iteratively. First, get something working. Then perfect it afterwards through successive refinements. Build quality in, don't inspect for it afterwards.
11. Let Things Evolve. Fail fast to get feedback early. Inspect frequently and get feedback often. Learn and actively seek continuous improvement.
12. Build Small Teams that can adapt and respond to change quickly. Work with passionate and versatile people who are self-disciplined and who motivate themselves to do good work.
13. Be Effective Before Efficient. Don't get so busy that you lose your ability to be effective. Include slack in your capacity to give you room to maneuver and respond to change.