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.