Writing and Prioritizing Requirements and Features to Realize Your Vision
We’ve reached the final step in your software discovery process! Have you found a way to quantify where you are now and where you’ll be once you’ve reached your vision? How far are you from reaching it? You have your vision, you’ve completed your Information Gathering, now it’s time to pull it all together and define your requirements. To do that, you’ll need to think about what it will require for you to get from here to your vision. You may be wondering when we’re going to get to the “software” part of your software discovery. The truth is, the best software solutions are built around your business’ unique requirements. They’re meant to provide your business with exactly what it needs, so as you figure out your business’ requirements, the features your software needs to meet them will begin to fall into place. For example, a requirement for your business may be that salespeople need to know who to visit, as well as when and where to meet them. To meet this need, a feature of your software may be a CRM that displays the day’s appointments and has GPS integration. To reach this level of clarity for your entire system, you’ll need to list out all the requirements your business needs. You want to write a solid set of requirements to help produce software that is beneficial for the long term health of your business. So, how do you start writing good requirements?Writing Good Requirements
A crucial element to writing your software requirements is being mindful that you’re never too vague or too specific in your wording. If you’re too broad in defining what your business needs, it can be difficult to narrow down what you need your software to do. Conversely, if you’re too specific, you may focus on one thing while omitting other, equally important aspects of what you want your software to do. You want to maintain some flexibility so when the time comes to decide on features, you have a little wiggle room.
Focusing on What’s Important: The 80/20 Rule
As a general rule, you want to think 80/20. You want to focus on requirements which cover the top 80% of what your business does every day. These percentages are flexible (your business may need to take a 90/10 approach, for example.) The important takeaway, however, is to remember that you can’t cover everything, and some of your business needs will be more important or more utilized than others. If you were to attempt to cover 100% of your business needs with your software, it would only lead to slow, inefficient core processes, effectively eliminating the entire purpose of why you’re seeking new software in the first place. Spend some extra time figuring out which requirements could actually help your business run significantly better for that 80% of the time. These are the requirements you want to prioritize. Increasing the efficiency of your core processes is the only way you will start to see real, quantifiable impacts to your bottom line. Only your most important requirements should be true, “need-to-have” requirements. They’re the things that your business absolutely needs to operate properly and will lead you to bringing your vision to life. The rest of your requirements list should be categorized into your “nice-to-have” components. When you think of less-common problems or exceptions to the way things run, try to find other solutions to these problems. Anything that falls into this category will be one of your “nice-to-have” requirements. Look outside of your software for solutions to these exceptions. Are there manual solutions that could be implemented to combat rare occurrences? It may be worth putting in a little extra effort for those 20% exceptions to allow your 80% core processes to run as smoothly as possible.Don’t Build for Rush Hour
Put another way, you don’t want to build a highway for rush hour.
Creating a Features List
Now you’ll start determining your software’s features based on your requirements. As you work through your requirements and begin writing a features list, a key element to consider is that you should be able to easily test whether or not your software meets your requirements. Take a look at your requirements list. You have options on how to best solve your problems based on your required timeframe, budget, and how close you want your software to match your ideal.