Writing for Java Code Geeks, Calen Legaspi is on a quest to debunk a common myth surrounding Agile development – that Agile is only concerned with project management. Legaspi points to the fact that many of Agile’s originators were software engineers. Even the first Agile training courses were established as workshops for programing instruction. He adds to this revelation:
<em>Most of the Agile authors were aware that even if you do the project management side well, if you ignore the engineering side, a project will eventually be in quagmire.
The Iterative Decline
This insight about software engineering is tied to a post by one of the method’s original founders, Martin Fowler. Fowler notes that those who choose the Agile (and the Scrum) framework find it all too easy to ignore their code base. This omission grinds productivity to an ever slower pace, largely because it encourages poor internal software quality.
The iterative decline proceeds as follows:
a. As requirements are ushered in, and features ushered out, the project team must accept that there is a limited capacity for handling development.
b. As bugs are discovered, some of the team capacity goes into fixing them, hence reducing development.
c. It’s when team members ignore engineering practices that they start to meet trouble, since this generates technical debt. Technical debt means that weak code becomes harder and harder to work with, and technical debt causes more bugs.
Herein lays the crux of the problem, stated thoughtfully by the author:
Just like real debt, if technical debt is not addressed, it just grows – the more code you add to the system, the harder and harder it just gets to work with. Eventually, the majority of the team’s capacity is taken up by just technical debt and bug fixing. Very little actual creation of new features comes out of the development team, if any at all.
Legaspi goes on to recommend several resources for establishing clean code writing and sound engineering practices; from Java development, to legacy coding, to domain-model design. Certainly, if Agile were merely about project management, it wouldn’t take such a long time to explain the nuances of its software development pitfalls.
Read the blog in its entirety at: http://www.javacodegeeks.com/2014/07/agile-myth-2-agile-is-about-project-management.html