Don't give up on quality, please simply don't.

Why it's so important to produce software that works

We do have 4 elements to work on:

  • quality

  • cost

  • time

  • scope


let's simulate 2 scenarios:

  1. scope, cost, time,  are fixed, quality is variable

  2. cost, time, quality fixed, scope is variable


The first case in case of changes or underestimation or problems, what we can do to achieve the results?

  • can we add another developer to the team? NO because the cost is fixed

  • can we work 1 sprint more? NO, time is fixed, we have a deadline for example

  • can we deliver less features? NO scope is fixed

  • the only thing we can do is giving up on quality, TDD, testing, metrics and so on


That means during sprints we'll have unmotivated people, we deliver a bad product or in the worse case a not working one. The client will complain, maybe he refuse to pay and a tons of coming bugs paralyze the team in the following weeks, developers that feels the struggle will quit the job... And we are breaking one agile value: "produce software that works"
Don't give up on quality, please simply don't.

Let's see the second scenario:

  • cost like above

  • time like above

  • can we give up on quality? NO IT'S FIXED!

  • what can we do is simple: variate the scope, deliver less but fully working features, reduce bells and whistles, of course with the client collaboration.


That's is in line with agile methods:

  • produce software that works

  • responding to changes