Let me start with an out-loud recap of this post: Agile is not something you can put on a bread nor is it "a certain path to success".
It's about STATE OF MIND.
If I had to describe the meaning of "Agile" to a new teammate I would say: Agile is a constant thinking about how we, AS A TEAM, can produce working features to our users with high quality within a short time-frame. Don't worry:It's really OK to provide only a subset of feature(s) in one sprint. It's really OK to leave SOME designing\architecture issues for later on as long as the high-level architecture is good enough (=you're comfortable with it) to answer the big questions.It's really OK to implement only two REALLY-DONE-HIGH-QUALITY features in one sprint over four semi-working-not-demoable features.
The key here though is not really the practices, it's about the big bullets(again, state of mind):
1). Produce value for your customers and adjust\adopt early. 2). Build a Team (self leadership).
These ideas are hard to implement and require special kind of people. Putting the Team in front of yourself is not a very job-secure attitude. The ability to help your teammates, shift tasks, taking ownership, critisize yourself and your teammates and getting better, produce high quality design, tests and code - all of it - requires versatile people with unique state of mind (and unique abilities, of course). It's worth it. When things glue, it's a real magic; Things start to get going by the Team, improvements and features starting to come from the developers\QA\Graphic Designer, adjustments are made on a regular basis, changes are welcome and productivity is celebrated.
You can feel something is going right. That's Agile.
Remember Me
Disclaimer The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.
© Copyright 2008, Oren Ellenbogen
<= Contact me via E-mail
newtelligence dasBlog 1.9.6264.0