When sports teams hit slumps, what do they typically do? They focus on the fundamentals. The sport could be baseball, basketball, ice hockey, American football or (what we call) soccer. It doesn’t matter. When the team isn’t winning and needs to improve, the focus is on the fundamentals.
What does it mean to focus on the fundamentals?
It means keeping the approach simple. Get everyone to focus their attention on the basics of the game. Hitting, throwing, running, passing, catching, kicking, blocking, etc. are all basic elements of one sport or another. If the team can’t execute the basics well, they will never master the finer points of the sport.
The same logic applies to software development teams. They need to master the fundamentals before having any hope of executing flawlessly.
What are the basics? In no particular order, the ten fundamentals of software project management are:
- Clearly defining the vision for the end result
- Gathering the requirements in detail
- Breaking down the work effort into tasks
- Establishing measurable milestones that the team accepts
- Obtaining commitment on meeting the project objectives
- Tracking progress using metrics that are simple and fair
- Implementing quality controls that everyone understands
- Staffing the project appropriately to meet the project goals
- Selecting adequate tools and training to get the job done
- Assessing risks and mitigating them
If your software development team doesn’t have these basic elements nailed down, no development approach will save you. We often have great debates about using waterfall versus Scrum or Kanban but if the team hasn’t mastered the fundamentals, those debates are mute.