Want more...Agility
Are there any of today's software development teams that aren't using some form of agile method? Dictionary.com defines agility as "the power of moving quickly and easily" and "the ability to think and draw conclusions quickly". Both of these definitions fit perfectly with what developers (individually or in teams) need more of in their projects.
Early computer software methodologies involved so-called "heavyweight" or "ad hoc" methods. When I worked at TRW in Los Angeles in the 1970's we used the "Work Breakdown Structure" for software and hardware engineering management, planning, scheduling, and costing. These beginning methods worked well for the large, long termed projects. Before the introduction of object-oriented programming (OOP) languages and object design, the Waterfall Model was the most commonly used methodology. As OOP and component-based programming paradigms took hold, we needed methods that fit better with the interative and RAD software development that OOP allowed.
The 1990's, thankfully, saw the rise of the "agile methods". There were many different methodologies created to add more agility to software development. Some of these methods were unique to software development. Other methods were derived (or conscripted) from other manufacturing industries. The tipping point for software agility arrived in February 2001 when seventeen of our industry's top luminaries met in Utah and created the Manifesto for Agile Software Development. The Agile Alliance, a non-profit organization, soon followed. In 2005, Martin Fowler, one of the original signatories on the Agile Manifesto, wrote a spectacular article, "The New Methodology", detailing "the reasons for agile methods, focusing not so much on their weight but on their adaptive nature and their people-first orientation".
Agile methods for programming and data include:
The following articles and videos offer interesting perspectives on Agility and Agile Methods:
More agility in theory should lead to software engineering productivity and quality successes. How can we measure the level of agility for large and small teams? Here are a documents and articles that cover measuring agility:
Where are the Agile Success Stories? Here are a few links:
At Embarcadero Technologies we use the Scrum agile methodology. Using Scrum has helped us be more predictable in our product releases coupled with an increase in product quality. Different Embarcadero projects are comprised of mini-teams and use 3 and 4 week long sprints. One of the things we have learned is that while Scrum is a good fit for software product milestones and releases, development of end user documentation development usually trails one or more sprint completions. In our experience, the use of online Wikis for documentation has a good fit with Scrum - the documentation team can put placeholders for sprint backlog items and product backlog entries and fill them in as the sprints progress. Some best practices for and the impact on user documentation in agile projects are discussed in the following articles:
We are proud to have three professional ballet stars in our extended family (Carolyn Judson Urso - Texas Ballet Theater, Elise Judson - Houston Ballet, and Lucien Postlewaite - Pacific Northwest Ballet). Watching the agility, beauty, and grace of the ballet dancers is an awesome sight. The coming together of years of study, practice, musical composition, choreography, movement vocabulary, costumes, makeup, beauty, partnership, the illusion of flight, and that magical something extra produce the top ballet performances and performers. Former professional ballet dancer and software developer Carin Meier has written a wonderful blog post about the relationship between agile software development and ballet - "Agile Software Lessons from Ballet".
What agile method do you use in your team and/or organization? If you have success stories or best practices, you can add comments to this blog post or post links to other articles.
Early computer software methodologies involved so-called "heavyweight" or "ad hoc" methods. When I worked at TRW in Los Angeles in the 1970's we used the "Work Breakdown Structure" for software and hardware engineering management, planning, scheduling, and costing. These beginning methods worked well for the large, long termed projects. Before the introduction of object-oriented programming (OOP) languages and object design, the Waterfall Model was the most commonly used methodology. As OOP and component-based programming paradigms took hold, we needed methods that fit better with the interative and RAD software development that OOP allowed.
The 1990's, thankfully, saw the rise of the "agile methods". There were many different methodologies created to add more agility to software development. Some of these methods were unique to software development. Other methods were derived (or conscripted) from other manufacturing industries. The tipping point for software agility arrived in February 2001 when seventeen of our industry's top luminaries met in Utah and created the Manifesto for Agile Software Development. The Agile Alliance, a non-profit organization, soon followed. In 2005, Martin Fowler, one of the original signatories on the Agile Manifesto, wrote a spectacular article, "The New Methodology", detailing "the reasons for agile methods, focusing not so much on their weight but on their adaptive nature and their people-first orientation".
Agile methods for programming and data include:
- eXtreme Programming (XP)
- Scrum
- Dynamic Systems Development Method (DSDM)
- Crystal Clear
- Agile Unified Process (AUP)
- Feature Driven Development (FDD)
- Lean Software Development (LEAN)
- Agile Data (AD)
- Test Driven Development (TDD)
The following articles and videos offer interesting perspectives on Agility and Agile Methods:
- Agile @ 10 - Ten Authors of the Agile Manifesto celebrate its Tenth Anniversary
- Agile Software Development and Myths about it
- Way of the Agile Warrior
- To Agility and beyond (video) - Kent Beck
- Big Change Up Front (BCUP) - Alan Shalloway
- Feature Driven Development (PDF) - Peter Coad, Eric Lefebvre, Jeff De Luca
- Agile Testing and Quality Strategies: Discipline Over Rhetoric - Scott Ambler
- A Disciplined Approach to Adopting Agile Practices: The Agile Adoption Framework - AHMED SIDKY and JAMES D. ARTHUR
- Comparing eXtreme Programming and Feature Driven Development in academic and regulated environments (PDF)
- Agile - Why the Fear?
- Agile Reality over Rhetoric by Scott Ambler
- Agile and CMMI
- Agile User Stories
- Agile Testing: Nine Principles and Six Concrete Practices (PDF) - Elisabeth Hendrickson
- Agile Journal - http://www.agilejournal.com/
- Agile Zone - http://agile.dzone.com/
More agility in theory should lead to software engineering productivity and quality successes. How can we measure the level of agility for large and small teams? Here are a documents and articles that cover measuring agility:
- Measuring Agility, Craftsmanship, and Success - InfoQ
- Measuring Agile Success Rate the Right way
- Measuring Agility of Organizations – A Comprehensive Agility Measurement Tool (CAMT)
- Agility Measurement Index: A Metric for the Crossroads of Software Development Methodologies - Subhajit Datta (Doctoral Dissertation)
- Measuring the Impact of you Agile Investments
- Beyond Scope, Schedule, and Cost: the Agile Triangle by Jim Highsmith
Where are the Agile Success Stories? Here are a few links:
- Agile/XP Success Stories by Object Mentor
- Five stories of Agile Success
- Scrum Case Studies
- Successful XP Projects
- How Scrum helped our team
- Agile project development at Intel: a Scrum Odyssey
- Agile Alliance Case Studies
At Embarcadero Technologies we use the Scrum agile methodology. Using Scrum has helped us be more predictable in our product releases coupled with an increase in product quality. Different Embarcadero projects are comprised of mini-teams and use 3 and 4 week long sprints. One of the things we have learned is that while Scrum is a good fit for software product milestones and releases, development of end user documentation development usually trails one or more sprint completions. In our experience, the use of online Wikis for documentation has a good fit with Scrum - the documentation team can put placeholders for sprint backlog items and product backlog entries and fill them in as the sprints progress. Some best practices for and the impact on user documentation in agile projects are discussed in the following articles:
- User Documentation in Agile and Scrum projects
- Writing End-User Documentation in an Agile Development Environment
- Software Documentation in Scrum Projects
- Agile Methods and Software Documentation
- Agile Technical Documentation
We are proud to have three professional ballet stars in our extended family (Carolyn Judson Urso - Texas Ballet Theater, Elise Judson - Houston Ballet, and Lucien Postlewaite - Pacific Northwest Ballet). Watching the agility, beauty, and grace of the ballet dancers is an awesome sight. The coming together of years of study, practice, musical composition, choreography, movement vocabulary, costumes, makeup, beauty, partnership, the illusion of flight, and that magical something extra produce the top ballet performances and performers. Former professional ballet dancer and software developer Carin Meier has written a wonderful blog post about the relationship between agile software development and ballet - "Agile Software Lessons from Ballet".
What agile method do you use in your team and/or organization? If you have success stories or best practices, you can add comments to this blog post or post links to other articles.
Tags:
Agile
Agility
C++
C++Builder
Delphi
Pascal
PHP
Prism
Programming
RAD Studio
RadPHP
Random Thoughts
Scrum
XP


David Intersimone (known to many as David I.) is a passionate and innovative software industry veteran-often referred to as a developer icon-who extols and educates the world on Embarcadero developer tools. He shares his visions as an active member of the industry speaking circuit and is tapped as an expert source by the media. He is a long-standing champion of architects, developers and database professionals and works to ensure that their needs are folded into Embarcadero's strategic product plans. David holds a bachelor's degree in computer science from California Polytechnic State University at San Luis Obispo, California.
Agile (Scrum) is a new needless religion. To be honest, the software development worklow is the same as 10 years ago. Fast coding with litle testing. I assume that Delphi 7 was developed wihout Agile? Resulting best quality. I can't say that from Delph 20xx/XE. Particularly the Help system.