There are some interesting similarities between professional sports teams and agile development teams. Think about it. Whether it’s baseball, basketball, hockey, (American) football or soccer, teams spend a lot of time training and conditioning. They prepare a game plan and create player match-ups.
As the game unfolds, they make adjustments. No game ever goes exactly as expected so changes need to be made and everyone needs to adjust.
Sound familiar? Software development teams also train and condition — mentally if not physically. They prepare project plans and match-up developers and testers to work together.
As the project unfolds, they make adjustments because no project ever goes exactly as expected.
So, what can we learn from professional sports teams that will help us do a better job as software developers?
- Focus. Develop mental toughness. Deal with the problem at hand. Don’t think too far ahead.
In any company, there are many distractions. The bigger the firm, the more distractions there are. No one can be 100% productive, 100% of the time, but teams need clear goals, clear tasks, clear expectations, and clear leadership.
Without clarity, a team will flounder and wander as it seeks definition. Is your team focused?
- Learn. Keep learning new things. Keep improving. Never take the current situation for granted.
The best sports players constantly improve. They never stop trying to better themselves — even during the off season. Technology changes much faster then sports. Are your team’s skills up to date? Do they have access to training materials and expert advice?
- Plan. Have a plan for each day. Know what the goal is. Don’t waste time on things that don’t matter.
Sports teams don’t plan out the whole season. They know what they want to accomplish during the season and have a high-level plan to get there. However, each game is unique and has a detailed plan.
This works just like agile planning whereby you have a high-level project plan and detailed sprint plans. What do your plans look like?
- Adapt. Be flexible. You will need to do something unexpected. Don’t fight it.
This is one of the biggest problems with big-company, waterfall development — too much time is expended fighting change in order to protect the plan. It’s not about the plan. It’s about customer needs.
Just like players on a sports team, your team members need to be ready to do whatever is needed to make the team successful. Do your team members have that attitude?
Many of us enjoy watching sports. Let’s try applying some of the techniques athletes use to our software development teams.