Not sure who originally posted this:
> - Test Driven Development
> - Automated Acceptance Tests
> - A War Room Environment
> - Tight iterations (circa 1 or 2 weeks)
>
> That's not to say that an organisation *must* implement these practices in
> order to be agile, I've just never seen an organisation I would consider
> to
> be agile fail to implement all 4 of these core practices.
I like to generalize these practices into:
1) Developers frequently deliver the product to customers for use and
review.
2) Developers frequently test the software and its components.
3) The whole team focuses intensly on producing accurate, relevant, timely
feedback about product, project, and process.
4) Team members communicate early and often, using media appropriate to the
purpose.
5) Developers focuse intensely on expressing their intentions in the code.
I figure there may be many specific ways to apply those general practices.
If we look at the benefits of the general practices, we get:
A) Because developers frequently deliver the product to customers for
review (1), customer feedback about the product is highly accurate,
relevant, and timely.
B) Because developers frequently test the software and its components (2),
they have at all times a shared, clear, accurate, current, actionable
understanding
of the product.
C) Because the whole team focuse intensely on producing accurate, relevant,
timely feedback about the product, project, and process (3), and because
team members communicate early and often, using media appropriate to the
purpose (4), the whole team has at all times a shared, clear, accurate,
current, actionable understanding of customers' needs, of the project plan,
of the process, and of the product.
D) Because developers focus intensely on expressing their intentions in the
code (5), the product is at all times highly changeable, and the team is
able to make changes quickly.
E) Because the whole team has a shared, clear, accurate, current,
actionable understanding of customers' needs and of the product (B, C), and
because the
the team is able to make changes quickly (D), developers at all times keep
the product closely aligned with customers' current needs.
F) Because developers frequently make the product available for use (1),
and because developers at all times keep it closely aligned with customers'
current needs (E), the software at all times has high value.
To me, it's the combination of those general practices and those beneifits
that characterize Agile.
Dale
--
Dale Emery, Consultant
Inspiring Leadership for Software People
Web: http://www.dhemery.com
Weblog: http://www.dhemery.com/cwd