Why Setting Priorities Is a Core Agile Practice
If you think about it, every aspect of agile includes prioritization. The most important user stories are implemented first. Testing is prioritized to make sure features valued by customers are tested the most. Even everyday tasks and activities are discussed and prioritized during daily standups.
There are many reasons setting priorities is essential to your success when building software.
Priorities make you focus
One of the root causes of project failure is a lack of focus. Too often teams are working on so many things at once that nothing ever gets completed. Teams waste time thrashing between activities, spending as much time context-switching as they do working, and solving problems that aren’t yet germane to what needs to get accomplished.
Instead of producing working software incrementally, the application consists of half-implemented capabilities that aren’t well tested.
Establishing work-in-progress (WIP) limits and separating work to identify the highest-priority activities can help drive your process toward one that makes constant, measurable progress. Productivity increases as more time is spent implementing and testing solutions rather than figuring out where you left off on something you started earlier.
Priorities drive embracing change
The world changes every day, and agile is built to not only see change as it happens but embrace it. Embracing change means constantly reprioritizing work based on new information and discoveries.
Sometimes change is due to external factors, such as shifts in the market, the appearance of new technology, or changes to regulatory or compliance requirements. Other times change happens when we learn something we didn’t know about the application we are building, its expected use, or its environments.
Regardless of the reason change occurs, the priority of our activities should always be reconsidered in case this change has materially impacted what is most important or what is even now necessary to implement. Without reprioritization, change cannot be embraced, and your software will not reflect the current needs of your customers.
Priorities make you think things through
I once had a colleague who had a sign over his desk that said “THINK.” When more junior staff would come to ask him a question that he didn’t feel was well formed or that he thought they had not spent an adequate amount of time trying to solve, he would point to the sign.
While some may feel his approach was a bit off-putting, it was very effective. Team members made sure they had thought things through themselves before coming to him for help, and that often resulted in their solving their own problems and becoming better engineers.
Having the discipline to set priorities is like having a THINK sign. It forces you to think about what is most important. It makes you more likely to ask your product owner and others why particular things are important and assess how much their answers are aligned with customer value.