daveboster / daveboster.github.io

The MVP of personal websites for a developer enthusiast 🙂
1 stars 0 forks source link

Balance Achieving Results and Attaining Competence #20

Open daveboster opened 1 year ago

daveboster commented 1 year ago

In managing software teams, it's important to carefully manage a balance between teams achieving results and attaining competence.

Most everyone loves to achieve a goal or reach a milestone, however, like with most things it's critical to find a balance. I think there's a saying about "Too much of a good thing..."

Introducing Test-Driven Development (TDD) and adding tests, is different than achieving proficiency (or even mastery) with TDD. Submitting multiple pull requests per story is different than understanding the benefits of merging code often, safely leveraging dark launch and feature toggling techniques, and working towards more frequent deployments with less change.

Achieving a goal is a boost and can help with motivation. Like consuming sugar, however, the "boost" is typically followed by a "crash." Competence in an area is much harder to attain. Similar to a "runner's high" or "flow" it takes longer to achieve but can offer consistency, and quality, and yield even greater results.

The data suggests (Accelerate) successful teams have a higher deployment frequency, get a requested feature to a user faster (lead time), faster recovery times, and lower failure rates (DORA metrics). As Accelerate quotes Jannes Smit, "You have to understand why, not just copy the behaviors."