Quality has been always the mantra of software development but, most of the time, it has traditionally translated into many recursive semi-automatic processes that manage to bring the software to the right level of quality (typically towards the end of the project).