I worked as a product owner for two years before I finally realized the value of Agile prioritization—the process of ranking items in a to-do list from most to least important. Ironically, I wasn’t at work when the benefits became clear. It happened while planning my wedding.
A month before the big day, I sat on the porch with my fiancé and looked over our very long to-do list. We were paralyzed by the length of the list compared to the amount of time left to complete the tasks. We couldn’t decide what we needed to work on, so we couldn’t do anything.
Finally, my fiancé—another product owner—suggested that we prioritize the list. I groaned and rolled my eyes, but his suggestion was better than the stress of doing nothing.
From that day until our wedding day, we managed to get up every day, get work done, and focus on the most critical tasks. Our perfect wedding was the direct result of prioritizing our to-do list.
I’ve used Agile prioritization at work to launch six major projects, and I’ve used it in my personal life to plan a wedding and move across the country. If you’re looking for a way to accomplish more—and feel more accomplished—take time to get to know the basics of Agile prioritization.
A Brief Introduction to Agile
Agile was created in 2001 by a group of software development leaders who were trying to solve one of the biggest problems in the industry: the fact that there's never enough time and budget to complete all project requirements.
Before Agile, most development teams followed the Waterfall model. In Waterfall, a business gives their development team a long and complex set of requirements and expects all requests to be completed on time and within the allocated budget. Time, scope, and budget are all fixed.
Agile says a realistic plan requires that one of those pieces are flexible. Generally, the flexible element in Agile is scope. A Product Owner—a representative from the business side of things who prioritizes project requirements—works with the development team to understand what amount of scope can be delivered within a fixed timeframe and on a fixed budget.
The Product Owner may have 100 requirements, but the development team may only be able to complete 10 given the time and budget constraints. The Product Owner’s job is to choose the 10 most important requirements—to prioritize the requirements—to make sure a releasable product is delivered at the end, and the delivered product has all of the most important features.
Basic Agile Prioritization
Whether it’s a plans for remodeling your kitchen or the requirements for developing a large website, most projects have multiple tasks that must be completed within a certain timeframe and budget. Agile says the best way to achieve this is to create a ranked list of priorities.
Ranked priority means if you have a list of 10 tasks, each task gets a number between 1 and 10. Two tasks can’t both be priority one. One must be priority one, and the other priority two.
Here’s an example:
It’s human nature to think every task on a list is crucial. But relative prioritization forces you to compare each task to all of the others to determine how important it really is. This makes it easier to identify flaws in the everything-is-crucial approach.
Imagine you’re building an ecommerce website. You have two tasks left, but only enough time and budget to complete one. Either set up the shopping cart to accept payments, or create a blog. You want both, but accepting payments is the obvious choice. You can’t make money without that feature.
Outside of the context of relative prioritization, that decision is much more difficult. Since you want both tasks to be completed, you’re inclined to rank both as equal priority. But when it comes down to choosing between one task and another, the decision is simple.
Of course, it’s not always so cut and dry. Let’s say the two remaining tasks were "accept Visa payments" and "accept Mastercard payments." If you release the site with just one, it creates a terrible user experience. In this scenario, it's necessary to take things a step further and add a criticality level to prioritized tasks.
Intermediate Agile Prioritization
A criticality level represents how important a specific task is to the overall project. Going back to the example of Visa and Mastercard payments: since both can’t be priority one, a criticality level can be assigned to show that—regardless of priority—both of those features must be delivered in order to have a releasable product.
There are four levels of criticality that are commonly used in Agile:
-
Critical – Critical tasks must be completed. They’re not up for debate because they’re essential. An example of a critical task for a wedding is having an officiant. Without someone who can legally perform the marriage, it’s not really a wedding.
-
High – High priority tasks are things that aren’t absolutely critical, but they are things you want more than anything else on the list. For a wedding, inviting guests isn’t critical. You can have a wedding without guests. But you probably really want to invite people. Sending out invitations, then, is a high priority.
-
Medium – Medium priority tasks are things you still want, but things you want less than the high priorities. You could definitely live without them. Having a DJ may be a medium priority for a wedding. Worst case scenario, create a playlist of songs for wedding music.
-
Low – Low priority tasks are nice-to-haves. Decorations are pretty obvious nice-to-haves for a wedding. They make things look pretty, polished, and planned, but they’re not essential to getting married or entertaining guests.
Relative prioritization and criticality levels work best when you use them together. Critical tasks are at the top of the priority list. Since they must all be completed, the rankings you assign really just represent the order you plan to complete them in. Those are followed by tasks with high criticality levels, then medium, then low.
For high, medium, and low tasks, relative priorities are very important. Imagine that at any point after the critical tasks are completed, you could run out of time or money. The first high priority task, then, is the thing you want more than anything else on the list.
Advanced Agile Prioritization
To get the most value from Agile prioritization, break every to-do item down into the smallest possible tasks. This helps because one large task may represent 10 small tasks, but those 10 small tasks may not all be equally important.
Some examples of breaking large tasks down into smaller tasks:
-
A large task for an ecommerce site is "accept payments." Broken down into smaller tasks, you have "accept Visa payments," "accept Mastercard payments," "accept American Express payments," and so on.
-
A large task for a wedding is "get clothes for everyone in the wedding party." Broken down into smaller tasks, that becomes "rent tuxedo," "buy wedding dress," "get wedding dress altered," "choose bridesmaids’ dresses," and so on.
To go back to my own wedding as an example: I’m a fairly frugal person, so the idea of paying several thousand dollars for a wedding venue seemed insane. I have a well-landscaped back yard, and it seemed like the perfect place for a wedding. Instead of spending money on a venue, I could spend it on home improvements and use the wedding deadline as motivation.
One of the home improvements I started—but hadn’t finished by the time I created my prioritized list—was painting the outside of my house. "Finish painting the house," was an item on my list.
But the more I looked at that task, and the more I realized how huge it was. There was almost no chance that we were going to finish painting the house and complete all of the other critical tasks on the list before the wedding.
So I broke the task down into smaller tasks:
The task to finish painting the siding and trim on the front of the house was a high priority because it was currently half painted, and while I could certainly have people over with a half-painted house, it would be pretty embarrassing.
Painting the trim and porches and scraping the paint off of the windows were only medium priorities. While I wanted to get to them, they were less important than things like serving food and getting a dress.
Painting the left side of the house, I decided, was actually a low priority. It’s so close to my neighbor’s house that you can’t really see it unless you’re walking between the two houses.
By breaking the task down, I discovered that one of the most massive high-priority tasks on my list was actually pretty small when I focused in on what specific things were most important.
Finally, I added a time estimate to each task. Like most Agile projects, I was working within a fixed timeframe, so an important part of creating my plan was seeing what I could accomplish within the amount of time I had left before the wedding.
But even beyond that, time estimates can be helpful in setting priorities. For example, if you have three weeks before a wedding and a single task is going to take two weeks, it gives you more perspective on the importance of the task: Am I really going to give up music, food, chairs, and decorations so I can finish painting the outside of the house?
I went through the same exercise for all of the tasks on my list. When I finished, the critical and high priority items on my list were much more manageable.
Initial Prioritized List
Final Prioritized List
To get the biggest benefit from agile prioritization, break every task and to-do into the smallest possible tasks. This helps with prioritization, allows you to get things done faster, and makes you feel more accomplished. There’s nothing quite like marking a to-do as a complete to stay motivated over the course of a large project.
Agile Prioritization for Work and Personal Projects
The most obvious way to use Agile prioritization is in software or web development; it’s the industry the entire Agile approach was created for. But the principles of Agile can be applied to get more done in any industry and job, and even in your personal life.
Here are some examples:
-
Create a marketing strategy. There are dozens of ways to market a product and thousands of tasks for each approach. Work with your team to brainstorm as many ideas as possible, prioritize the final list, and complete tasks in order of priority to keep everyone focused. Also, take time regularly to re-prioritize based on new data.
-
Buy a house. You have to find a house, put an offer on it, get a mortgage, have the house inspected, and get homeowners insurance. On top of that, you need to pack your existing house, donate anything you don’t plan to take with you, and maybe even buy new furnishings. Simplify your to-do list and stay sane by prioritizing.
-
Plan a training session. Create a list of things that are important to cover in the training session, and add criticality levels to each topic. During the training session, enjoy some flexibility by removing medium and low priority topics. This gives you time to cover things you hadn’t considered that come up as questions during training.
-
Remodel your house. A home remodeling project may not be limited by time, but it’s certainly constrained by budget. Use a prioritized list to factor what you really want and need against the costs for each request and your overall budget.
-
Meet your annual goals at work. Break down complex goals into small tasks, and rank those tasks against the other items in your daily/weekly to-do list. You’ll need to re-prioritize frequently, but the list will keep your long-term goals fresh in your mind and help you decide which tasks are the most important to focus on.
-
Plan a vacation itinerary. You can’t visit every tourist attraction in Rome in a week, but you can definitely see the ones you’re most interested in. Create a list of things you want to do the most, and use relative prioritization to make sure you get to visit the attractions you’re most excited about.
If you want more ideas, check out these two SlideShare presentations: Agile and Scrum Beyond Software Development and Agile at Home.
Helpful Tools for Agile Prioritization
While you can’t go wrong with a handwritten to-do list, you may want something that’s easier to manage after deciding you like the approach.
For basic functionality, use Google Sheets. It’s similar to a handwritten to-do list, but it has the added bonus of letting you cut, paste, and add rows easily. This keeps you from having to rewrite your entire list every time to need to make a change.
To get even more features, use Trello or LeanKit. With these systems, you can:
- drag and drop tasks to prioritize them
- color-code tasks to signify criticality levels
- add due dates
- share the list with multiple users
- send automatic notifications when a task is assigned to a new user
For really advanced functionality for teams that are using more aspects of agile than just prioritization, use VersionOne or CA Agile Central to create backlogs, prioritize, plan releases and sprints, add estimates, and bill hours to tasks.
And if you’re planning a vacation or prioritizing things with you family at home, you can also go with the traditional Post-it Note approach. Write tasks on sticky notes, and stick them to a chart on the wall to share priorities and to-dos with everyone in the house.
If you’re stressed or overwhelmed by a too-long list of things to do, take time to prioritize it using Agile techniques. It will help you focus on what’s important, avoid spending time on what’s not, and stay motivated to mark more tasks as complete.
Title photo by seamartini via Canva
source https://zapier.com/blog/agile-method-prioritization/
No comments:
Post a Comment