Thursday 8 April 2010

Cont.'d - Quality: another agile buzzword?

In my previous post on software quality, I talked about how quality has an indirect, nevertheless beneficial effect on costs and time.
Now I want to continue with the next most important factor of a project, that is the most important from the customer's perspective.
(Functionality) How improved quality helps to deliver better functionality? Interestingly enough, asking that question is already the first part of answering it. Really, there is no magic answer here: it's plain to see, that once you concentrate on quality from day one you will deliver better functionality. Your testers can focus on usabilty instead of checking and tracking trivial bugs and scenarios. Instead of the i-click-here-and-it-crahses type of bugs, you will get more of the it's difficult-to-find-that-menu-item or this-messagebox-makes-no-sense kind of bugs. Your customer also can effectively participate in the developing process, once he's not stuck trying to only install and start your program. In short it's similar to the Maslow for Programmers, but on the project's scale. If customers, product managers, developers and testers don't have to spend precious time on finding, documenting and fixing trivial bugs, they all of a sudden have time for something else, and unless they hooked up on porn beyond the avarage amount they can spend it on creating software of real value.

(Developer Team)And last but not least, I'd like to mention DeMarco's take on quality. He advocates that quality is more important for the dev team, than anyone else involved in the project. It's for the programmers' self-esteem. If you deliver quality software as a rule, you can be proud of every day's work. If you are proud, you can and want to take credit, if you take credit, you will be even more motivated to deliver quality. It's a positive feedback loop, but according to Wikipedia, it's not a bad thing:
"Positive feedback amplifies possibilities of divergences; it is the condition to change, evolution, growth; it gives the system the ability to access new points of equilibrium." It also helps team culture, and creates an atmosphere where the constant urge to improve is a common and selfexplaining thing.

No comments: