Sloppy Code...Who's fault is it?
Manager: "Is the bug a show-stopper"? Developer: "No, but it's definitely a flaw".
Manager: "Doesn't matter, it can be fixed in the next release. Get ready to ship".
Does this conversation sound familiar? It happens all the time....businesses make the decision to ship products while knowing that the code isn't perfect. So, who's to blame for faulty deliverables? There are several plausible answers:
It could be the managers who constantly push their developers against impracticable timelines. New requirements, unexpected bugs, feature additions...these directly impact the developers workload. But how often do these sudden changes impact the timeline? The answer is rarely. The thought is that with effective project management and the tracking of deliverables, the original goals set forth at the start of a project should be upheld. Unfortunately, expectations don't always align with reality and deadlines are expected to be met, no matter what the circumstances are.
But who is responsible? Some would say that individual teams are liable for not implementing development standards into their work cycle. Others would blame suppliers who are looking at the bottom line and knowingly decide to increase their profit by releasing faulty software with the intention of maybe fixing bugs later. And, some would blame consumers who push companies to honor their release dates lest leaving them susceptible to negative reviews and damaging publicity.
So, can Agile methodologies fix the problem? The waterfall approach favors those who are involved earlier in the cycle leaving less time than originally was planed for testing and bug-fixes. Agile, on the other hand, improves the quality of code by embedding testing earlier and more often in the development life cycle. The 7th Annual State of Agile Development Survey was recently published by VersionOne. Not surprisingly, 81% of respondents said that the quality of software got better with Agile methodologies and 90% of respondents said implementing Agile improved their ability to manage changing priorities. So, for those who still see agile as a phase, I'd encourage them to consider it a paradigm shift that will soon become the status quo.