Hello, I’m Veronica
The sky is not completely dark at night. Were the sky absolutely dark, one would not be able to see the silhouette of an object against the sky.
-
Defining Agile Development (part 2)
In my first post, I expressed my disappointment with the Agile software development definition on Wikipedia. In this post, I’ll try to work to a concise working definition of Agile.
UPDATE: Also see my refinement to this Agile Development definition.
In my quest for a brief definition of Agile software development, I’ve tried to a number of sources. I’ve already discussed the limitations of the definition on Wikipedia. On Britannica, I found no entry. So, let’s start with a dictionary definition of agile:
1. quick and well-coordinated in movement; lithe 2. active; lively
3. marked by an ability to think quickly; mentally acute or aware
[French from Latin agilis, from agere, to drive, do]Dictionary.com Unabridged (v 1.1). Retrieved August 11, 2008, from Dictionary.com website: http://dictionary.reference.com/browse/agile
I like this because it nicely describes attributes of Agile development, but it doesn’t really say how it works. It also misses the adaptive nature of the approach.
Where to go next? I’ve covered some of the founding principles of early Agile thought leaders. Martin Fowler’s work, The New Methodology is also a good early defining paper. Various flavors of Agile methodologies are described well and compared in a number of sources. Still, these don’t offer concisely what Agile is.
I recently saw a post from Tom Perry offering bullet points around agile development. In 22 bullets, he offers topics to be covered in transitioning to Agile. It is mainly focused on Scrum, but we could add to it and include other concepts to broaden it and create a more complete menu (paired programming, spikes, emergent design, etc.) While better than the bullet points in Wikipedia and useful from an implementation perspective, 20+ items does not get me to my goal of a concise definition.
In the comments to my first post on this topic, Kevin Schlabach offered this reference from Mike Cottmeyer:
Agile is basically three things: a set of engineering best practices that allow for rapid delivery of high-quality software, a project management process that encourages frequent inspection and adaptation, and a leadership philosophy that encourages team work, [self-direction] and accountability.
Now we’re starting to get somewhere. I added the bracketed words to get a sentence I think I can use to explain Agile to a VP of Development or CEO and have them start to see the value of further exploring the benefits and the whats and hows. I can evaluate these three areas and help teams understand how well they are doing in each. It allows for many of the laws of development while permitting experimentation outside of specific methodologies.
Thanks Kevin and Mike. Think you can help with the Wikipedia mess?
-
-
The Results are In
What better way to beat the 104 degree heat in Denver than to head to the mountains for a down hill mountain bike race in Winter Park. Out of a field of about 50 Amateur men competitors, I placed first in my age group and first overall. Wahoo! I am especially happy because a while back, the only place my name showed when Googled was for a near last place finish in a different cross country race.
Tomorrow we leave for a family vacation for a week. My niece is getting married in Maryland. We’ll spend a little time with the grand parents, go to the beach and hang with the family. I am looking forward to a little down time.
-
Swarming Blobs
I laughed out loud as I read this post from Tom Perry. He is Co-presenting the topic: Swarming – The Birds and the Bees and Agile at Agile 08. It would not be quite as intriguing if it were titled: Slime Molds, The Birds and the Bees and Agile. I am sure there is something analogous to self-organizing teams in all this. In the mean time it’s worth a good laugh along with a ‘how bout that.’
-
Defining ‘Agile Software Development’ on Wikipedia
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.
UPDATE: Please see Part 2 where I try to develop a concise working definition for Agile Development

About Me
The sky is not completely dark at night. Were the sky absolutely dark, one would not be able to see the silhouette of an object against the sky.
Follow Me On
Subscribe To My Newsletter
Subscribe for new travel stories and exclusive content.



