I started another post and got stuck on this Wikipedia definition. The great insight normally found on Wikipedia, in this case, has left me disappointed:
Agile Software Development: refers to a group of software development methodologies that promote development iterations, open collaboration, and adaptability throughout the life-cycle of the project.
Are these the three bullet points what we should highlight for Agile: Iterations, Open Collaboration and Adaptability? I think they are all critical, but do they cover the fundamentals?
This definition has actually improved greatly over the last couple months. In June, the summary definition focused only on iterations:
”Agile Software Development” is a ”conceptual” framework for software development that promotes development iterations throughout the life-cycle of the project.
Clearly this definition was inadequate since iterative and incremental development models have existed since the Spiral model promoted by Bohem by 1988 and other forms of iterative development as advocated as early as 1975. Even Royce suggests in his 1970 founding paper on Waterfall that some iteration is required.
The most interesting aspect of the topic is the background and discussion. Multiple comments debate whether the page is needed or neutral:
This is an unnecessary page – Wikipedia is not an instruction manual. We don’t have, say, When to use a riding mower rather than push mower. The basic extreme programming page is more than sufficient, although it may need work or expansion. – DavidWBrooks 20:12, 6 May 2004 (UTC)
Oh bollcks. Checkout “Waterfall model”, “Moore’s Law”, etc. and get back to me when you get it. The page is far more than necessary. In fact Wikipedia is a primary source for me in keeping up with changes to technical terminology. In fact you could look up Riding Mower and Push Mower here and learn something. wjbean (UTC)
The author covered up his tracks pretty well, but it’s still quite obvious he doesn’t like XP. –jae 04:08, Dec 29, 2004 (UTC)
Another is simply titled: “XP != Agile”.
At one point in late May, the entire article was edited to one word: “SHUTUP.” Clearly, there continues to be a (hopefully healthy) discussion about what Agile development really means and debate over specific approaches.
There is also a newer section titled “Agile Best Practices” which tries to summarize in a few bullets how to do agile:
- Daily kickoff and review of goals
- Short release cycles
- Responsive Development
- Generalism – Use of generic skill sets that are common across the team, not reliance on specific skill sets that are scarce
To me, this is completely inadequate and misses the most critical people focused and continuous optimizing nature of Agile not to mention a number of best practices. Further, to be prescriptive in how to use an Agile methodology is like using Waterfall to implement it. Fundamentals and values are what matter. It helps me to go back to the founding principles of early Agile thought leaders. To this category, I also add Martin Fowler’s work, The New Methodology. Anyone interested in the various flavors of Agile would do well to read detail descriptions and comparisons of methodologies from other sources.
I’ve done some editing to the page to begin to address some of my concerns. Anyone that feels they can help with this definition should lend their talents to Wikipedia.org. Frankly, I am surprised there is not more supportive collaboration given the reach and potential impact of the page.