As more stuff is squeezed into fewer and fewer hours, it seems as though time management is all the rage these days. From software developers to stay-at-home moms, everyone is trying to figure out how to squeeze more output into less time.
But there’s a problem with time management—and it seems to be the reason that everyone keeps talking about it instead of just solving the issue and moving on. The problem is, no matter how much managing you do, there’s always going to be only 24 hours in every day. No amount of negotiating, compartmentalizing, or multitasking will change that fact—it will only drive you crazy.
As opposed to wasting precious minutes and hours trying to find or invent extra time that doesn’t exist, why aren’t we looking for better ways to choose carefully where we put our focus and energy, in order to make the most of the time that we have?
It’s All About Priorities
Achieving more overall output per day is likely impossible. Like a rubber band, most folks are already stretched too thin as it is—ready to break at any moment. But by shifting our focus from managing time to managing our priorities, we can achieve the most important work first and ensure that what’s leftover at the end of the day doesn’t include our most essential responsibilities.
So what does this mean for developers? Experience has shown that just 20% of the activities within a developer’s typical workload are responsible for 80% of project results. That means developers spend 80% of their time on activities that don’t significantly impact the product! By prioritizing the most significant 20% of work, developers can achieve project results more quickly and efficiently.
The MoSCoW Priority Management Method
Originally recommended in A Guide to the Business Analysis Body of Knowledge, MoSCoW is a method of priority management that has been successful for developers and business people alike. It’s a simple and straightforward tool that helps priorities align into an effectively ordered task list. The MoSCoW method breaks down like this:
M – Must Do: The project cannot be completed without this element.
S – Should Do: This is a high-priority task that should be completed if at all possible.
C – Could Do: This is an element considered desirable but not strictly necessary.
W – Won’t Do: This is an element that stakeholders have agreed isn’t necessary for this iteration of a project but may be re-implemented in the future.
By sorting ideas from brainstorms and project flows into this model, project managers can help to organize daily tasks so that the bulk of developers’ time is focused on those elements considered most essential to the project.
Priority Management for Agile Software Developers
The nature of software development is that priorities and requirements are constantly changing. Agilists have met these needs by developing systems for managing development priorities very quickly, constantly adapting workflows to the changing needs.
One of the most common priority management techniques among agile software developers is the Scrum method, This holistic, flexible project management framework helps development teams to set priorities while recognizing that the customer will have continuously changing requirements.
As opposed to a more linear, sequential development method, the Scrum method allows room for emerging needs and focuses on adaptation of strategy to meet those needs quickly and efficiently.
Other agile systems, such as Disciplined Agile Delivery and Lean Product Development methods, take a more concrete approach to prioritization. But overall, the goal of any agile system is to adapt quickly to the changing needs of the customer with minimal time lost.
No matter what project management tool you use or how you go about managing developer workflows—the goal for any team should be to manage priorities in a way that saves time and maximizes ROI for all stakeholders. Ultimately, no amount of time management is going to assure that the most significant work is being achieved. Only priority management can effectively maximize return.