Why write a PRD?
From rockets to bicycles, great products are built to satisfy customer needs. Engineering world class products starts with understanding customer needs, communicating them to the entire design team, and making sure every engineering decision is aligned with these customer needs. One of the most effective ways to translate customer needs into sound engineering decisions is with a product requirements document (PRD). Five Flute was built with PRD development in mind. In this article, we’re going to quickly touch on how to think about developing a great PRD and how you can use Five Flute to drive this development.
Getting started - understanding what is most important
There are lots of guides out there that talk about what a perfect PRD looks like, but very little about how to create a useful PRD starting from a clean sheet. Usually these guides say your PRD must include the following sections:
- Purpose: At a high level, what does the product do? and why?
- Features: Describe the features and functions of the product.
- Evaluation criteria: Define the required functionality, usability, reliability, and maintenance or support criteria of the product on a per requirement basis. The basic focus here is to explicitly define how you will evaluate if a requirement has been met.
- Priority, budget and timing: Understand what the most important features are and what features are “nice to have”, as well as what project constraints are driving these requirements.
In our experience, focusing on extremely detailed documentation can be a distraction in early development phases. The most important part of creating a PRD is to drive conversations between all of the different stakeholders in the project. Good product requirements are rarely developed in isolation.
Taking this into consideration, we find that it helps to think of PRD development as an ongoing process of initial requirements definition and refinement driven by in depth conversations about each requirement. This is where all of the value of developing a PRD comes from; getting everyone to discuss each requirement and why they think it is important will reveal all of the conflicting implicit assumptions across your team. Resolving these conflicts leads to a more aligned development team, a better understanding of design tradeoffs, and sets you up for a faster design effort.
Mindset shift - the PRD is a living document
Product requirements documents are not written and then set in stone, they are a living document. Hardware product development involves many twists and turns, and the lessons learned along the way will inform your PRD.
We strongly recommend that you use tools that can help you uncover and discuss these lessons. That’s where Five Flute comes in.
Using Five Flute issues as requirements
The first step in PRD development is to get all of the information about potential requirements out of your head and into Five Flute issues. Each issue should be a unique product requirement. Start by making a project in Five Flute dedicated to your PRD development, or use an existing project that you already have.
Org Settings > Navigate to Projects section > New Project
Describe each requirement in the issue title
Now head to the issues page in your project and start writing down each requirement. Try to compose each requirement as a single sentence in the title field of the issue. For example, if you were developing a piece of fitness equipment you might want to define what size users the equipment is designed to accommodate. Here’s an example requirement.
Add context in the description
Next, use the issue description and attachments to provide more context and rationale for the requirement.
Get organized with custom tags
Complex electro-mechanical devices may have hundreds of requirements, so staying organized is critical to PRD development. An organized PRD is a readable and functional PRD that your team will actually want to use during design. Five Flute has a custom tagging system to help tame this complexity and give you the views of the PRD that you care about.
Start by adding tags to categorize each requirement. In our example we’ll use an “ergonomics” tag to group together any requirements related to user size, human factors, and general ergonomics.
We’ll also use tags to monitor the draft status of each requirement. The custom tag group feature in Five Flute lets you keep each category of tags organized and colored as you see fit.
Use Views to see the requirements you care about
Once you have all your requirements written down and organized, you can build custom views in Five Flute to drive collaboration and organize your work. In our example, we can make an issue view that shows requirements that have a “review” draft status (indicating they need review) and are tagged as “safety” related.
Discuss every requirement
Requirements development should be a collaborative process that uncovers critical design tradeoffs. To uncover these tradeoffs, every requirement should have a clearly understood rationale that is agreed upon by the development team. Five Flute issues can help foster this kind of communication and keep it connected to the requirements it impacts. Here’s how to use Five Flute to drive collaboration around requirements.
Use issue assignment to solicit feedback about specific issues
We recommend first soliciting feedback from the team about every relevant issue. You can use issue assignment in Five Flute to notify collaborators that they should review requirements. Bulk editing in Five Flute makes batch assignment a breeze.
Drive collaboration in the issue timeline
When you use Five Flute issues to develop your PRD, every requirement has a dedicated comment thread in the issue Timeline. In addition to comments from your teammates, you can see the complete history of who created each requirement, when it was created, and every edit made. You can use the Timeline to drive a rich discussion around the rationale for each requirement. Simply @ mention your teammates and they will get notifications directing them to the discussion.
The great thing about using issue comments is that it keeps important discussion and design history connected to the requirements they impact. Anyone on the team (new team members especially!) can return to any requirement and see what informed it and why it is necessary. This is great for maintaining continuity and knowledge transfer throughout design, build, and test efforts.
Link requirements to your designs using references in Five Flute
Five Flute connects to your CAD tools via integrations like our SolidWorks task pane add-in. This means you can easily link your requirements to the designs they impact. This is useful when you are developing early prototypes that you only intend to meet a subset of your requirements.
Continuing our exercise machine example, imagine you are developing a looks-like 1:1 scale prototype to prove out the ergonomics, human factors, and safety aspects of the device. You can link the ergonomics and safety issues directly to the top level assembly model of the prototype using the references field in issues. Here’s what it looks like in the table view. Note the connection between each issue and the top level SolidWorks assembly shown in the References column.
View requirements in CAD
The next time you return to CAD, you can easily see the specific subset of requirements associated with the design you are working on directly in the task pane.
From there you can dive into individual requirements to learn more, edit contents, tags, and assignees, and chat with your team without ever leaving SolidWorks.
Finally, when the design is at a stage where it meets your requirement, you can mark the issue closed and move on to the next one. With the Five Flute web application and SolidWorks integration, you can confidently develop a product requirements document that keeps your team pointed in the right direction, helps solicit feedback from everyone in engineering, and ensures that you close the loop by addressing every single open requirement.
For more ideas on how to use Five Flute in your hardware development process you might want to check out these articles.