I'm going to discuss the 12 principles of Agile, why they work, and how they are natural and comfortable to a thoughtful development team.
Principle 1 - Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
Of course, everyone can agree that in any business venture, the customer comes first. When I worked at Novell in the early 90's, Ray Noorda often stated his priorities - "Customers first, employees second, shareholders third." If you take care of the first two, the shareholders pretty much take care of themselves.
If you've studied any economics, you know about the time value of money - a dollar in the hand today is worth more than a dollar you'll get tomorrow. The same principle applies to software in a fast-changing technology ecosystem. The software you put in a customer's hands now adds more value to the customer's business than software delivered next week, next month, or next year. Rather than spending a year building the "perfect" system, give them something that works right now. Then get feedback, incorporate it, and deliver several iterations over the next year. At the end of 12 months, you're likely to have a much better product and a much more satisfied, loyal customer than if you'd waited a year to deliver.
Principle 2 - Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
This one's quite obvious. Anyone can meet requirements that never change. But who has any of that kind of requirements? As in the previous example, if you can deliver multiple iterations, in rapid sequence, adapting to requirement changes at each iteration, you'll do far more to enhance the customer's competitive advantage than if you "save up" for a single, monolithic deliverable.
Principle 3 - Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
Now we're getting specific. Days and weeks, not months and years, between deliveries. Is it easy? No. But in a web-oriented, SAAS-heavy world, it's possible, and even expected. You have to be on top of your game - continuous integration, automated testing, rapid prototyping and deployment, and above all, flawless communication are required.
No comments:
Post a Comment