What is Fluency? How to achieve fluency? Why it’s important to be fluent?
What is Fluency?
“Fluency is how a team develops software when it’s under pressure.
True fluency is a skillful, routine practice that persists when your mind is distracted with other things.
Agile development is fundamentally a team effort, and your organization’s success with Agile will depend on the fluency of your teams.” — Martin Fowler
SKILLFUL PRACTICE UNDER PRESSURE
“Fluency is routine practice mastery that persists under stress. A team’s true fluency level is revealed under pressure and in the face of distraction.” — agilefluency.org
DELIBERATE, CONSISTENT PRACTICE
“Deliberate practice involves regularly and consistently practicing a skill with increasing levels of challenge and the intention of mastering that skill.” — agilefluency.org
“Fluency is more a matter of habits than skills.”
— Martin Fowler
Team fluency depends on more than just the capability of the individuals on the team.
It also depends on management structures, relationships, organizational culture, and more.
“Don’t make the mistake of blaming individuals for low team fluency, or assuming that one highly-skilled individual will guarantee high team fluency.” — Martin Fowler
What level of fluency is required?
“The appropriate level of fluency for your team depends on your organization. Two or three-star fluency is often the best target.
Three-star fluency has larger payoffs, but it requires changes to organizational structure and culture.”
— Martin Fowler
One-Star Fluency tools and technics
“Teams fluent at the one-star level focus on creating business value. Rather than planning in terms of technical considerations, such as software layers, one-star teams plan in terms of the benefit their sponsors, customers, or users will see from their software, typically with user stories.
Scrum and Kanban are examples of Agile methods used by one-star teams. In addition to user stories, techniques in common use include backlogs, retrospectives, and iterations, Sprints, or kanban boards.
It takes two to six months of practice to shift from independent individual contributors to a collaborative, team-based workplace.
You may also need to provide coaching or hire a scrummaster (or equivalent) to help the team learn how to remove impediments and focus on business results. The team may need more attention from the organization in terms of information about business priorities and customer value as well.
You’ll have greater visibility into what your teams are working on, and you’ll be able to direct them towards the 20% of the work that provides 80% of the value.” — Martin Fowler
Two-Star Fluency tools and technics
Teams fluent at this level consistently and predictably deliver value.
Teams fluent at the two-star level not only focus on business value, they realize that value by shipping as often as the market will accept it.
Two-star teams are distinguished from one-star teams not just by their ability to ship, but their ability to ship at will.
Extreme Programming is an Agile method commonly used by two-star teams. It’s often combined with Scrum or Kanban. Useful techniques include continuous integration, test-driven development, pair programming, and collective ownership.
“To reach fluency at the two-star level, study and practice techniques such as those described by Extreme Programming, Software Craftsmanship, DevOps, and Agile software quality gurus.
Collective ownership, pair programming, and working in a common team room are useful ways to help team members bring each other up to speed.” — Martin Fowler
The core metric for two-star teams is their ability to ship on the market cadence. If you aren’t getting a consistently low-defect product, shipped as often as the market will bear, then your team still needs more practice.
— Martin Fowler