Activity: Prioritizing software qualities
About prioritizing (5 min)
As I noted in the chapter on software qualities Links to an external site., software qualities are how we judge project success, but also how we plan our work. For example, if you decided the top priority for our project was usefulness, you'd spend a lot of time verifying usefulness with beta releases, at the expense of other qualities, like functional correctness. In contrast, if your top priority was security, you might spend a lot of time doing penetration testing instead of usability testing.
Unfortunately, we can't achieve all qualities at once. Instead, we have to prioritize qualities, so we know how to resolve conflicts between qualities, and plan our work. That's because we don't have infinite time to achieve all of the important qualities.
The best way to prioritize qualities is to derive the high-priority qualities from the goals of your project. Remember that mission statement you wrote? And the problem statement that helped achieve the mission? Inside of it was all of the information you need to determine which software qualities are most important to your project. It's not in there explicitly, but with some discussion, you should be able to pull out all of the qualities and rank them.
Prioritize
In Discord > Team Channels
DESIGNERS lead
Your task is to take the list of qualities in the chapter and:
- Put them in a new Markdown document
- Rank them according to your mission and problem statement.
- Write a justification for why the quality is more important than the qualities below it.
You'll use these qualities when envisioning your design, defining your requirements, and implementing your solution. This is your team consensus on what deserves your attention in this project.