Development double feedback loop

In a previous company, we had an every other week whole team discussion about a technical topic.

It was my turn, and I have picked an episode a podcast with David Farley and Kent Beck.

He quickly opposed the desert and the forest, which are two irreconcilable projects types:

  • Desert: low delivery, huge number of bugs, heavy technical debt
  • Forest: high delivery, small number of defects, low technical debt

They are so different, one team cannot imagine what it could be in the other team.

I have worked in both teams, and I assume they are the result of a double reinforcing feedback loop:

    graph LR;
    Dev[Product team] -->|Deliver| Product;
    Product -->|Used by| Users;
    Users -->|Change usage| Product;
    Users -->|Change expectations| Dev;

The thing is:

  • The more a product team is reactive when a bug is reported, the higher the quality of the product will be, but also the expectations of the users
  • The less a product team is reactive when a bug is reported, the lower the quality of the product will be, but also the expectations of the users
    graph LR;
    Team[High reactive product team] --> Bugs[Low number of bugs];
    Bugs --> Quality[High quality];
    Quality --> Expectations[High expectations];
    Expectations --> Requests[High number of requests];
    Requests --> Team;
    graph LR;
    Team[Low reactive product team] --> Bugs[High number of bugs];
    Bugs --> Quality[Low quality];
    Quality --> Expectations[Low expectations];
    Expectations --> Requests[Low number of requests];
    Requests --> Team;

A team should be glad to have many feature requests, and worried to hear over and over about the same bugs.