This post originated from an RSS feed registered with .NET Buzz
by Jonathan Crossland.
Original Post: The Gap between Agile Methods and Agile Development
Feed Title: Jonathan Crossland Weblog
Feed URL: http://www.jonathancrossland.com/syndication.axd
Feed Description: Design, Frameworks, Patterns and Idioms
Agile Methods are a people-centric way of running projects where increasingly teams are accepting that it has tremendous value. However there is more weight put on the code for an Agile Method based project, as with more deployments, milestones and iterations, there is either a need for more refactoring over time, or a more future-proof design is needed. However both refactoring tools and greater predictive powers on the future of the code are both valuable tools.
However, if the software being crafted is not of an equally high and maintainable standard, the project can also fail at being more agile, (just like a people-centric approach can fail with the wrong set of people, irrelevant or bad design can affect the iterations and deadlines).
The software design should also be crafted in an Agile way, to support the Agile Method governing the people.
However, being more agile in code does bring in some side affects.
An increase in software abstraction
An increase in configuration and meta data
An increased requirement for intelligent design
A more controlled, standardized, patterned and convention based development environment
Currently though, I see a gap between the Agile Method and the code written within the project. ie. the relationship between the agile software and the Agile Method.
There are many reasons why teams using Agile Methods could fail and I include design and coding into that list.
I believe that:
If being more agile is being more 'adaptive' (rather than predictive), then being more agile in code, needs the counter-weight, which is 'predictive', rather than 'adaptive'. I believe code should be more predictive of future changes, the more adaptive the business becomes. The balance of the two concerns is where you will find a good software system with happy clients. It is all the balance.