Part 4: Technical Design Doc/Product Spec + Learning Phase
NOTE: These two sections of Part 4 are **especially important** because it dictates your team’s project design and determines whether you are capable of contributing code once your team starts developing. Specifically for the learning phase, if you want to code, you must ensure you learn enough about the language you plan on coding in before you dive into it. See Learning Phase for more info.Product Specification
Now that you’ve gotten feedback from your designated club lead guide about your project through your pitch, it’s now to formally design your product and how it will work! There are two reasons why we require new projects to create a specification. First, to ensure that every project member has the same vision for the project. Second, it motivates project teams to create a plan about how to tackle the project without the complication of the actual code.
This is an extremely important phase of your project that should not be taken lightly! This is an opportunity to completely lay out how your product looks and behaves, how every feature works, how the UX/UI looks, your projected timeline, and more.
We do NOT encourage beginning project development until the entire spec has been completed, presented, and approved. This is in order to provide your team with useful feedback and to help your team identify any potential gaps in your research or design for your team to fill in.
There are two different technical design docs/product spec templates we provide to you. Your team can discuss which spec would be ideal for your learning and preparation, but we recommend that level 1 teams use this Product Technical Spec Template, and that levels 2/3 use this Technical Design Doc Template. The only difference between the two is that the Technical Design Doc goes into more detail within your tech stack (High-level architecture, Databases, Models, Endpoints, Status Codes, etc.), so it may help your team answer more of the technical questions before you start implementing your project. It may be helpful to choose between one or another depending on the underlying knowledge between your teammates. Ask your club lead guide if you need guidance in choosing, or need example specs to read!
Here’s the Google Docs template to get started. You can also navigate to Resources/Project Spec Template
on this documentation website to find the spec template. This document highlights the requirements you need to meet with your technical spec and also has a template guide to follow. Please reference it closely and ask club leadership if you have any questions.
When you finish a rough draft of your spec, let your club lead guide know so club leadership (our Design and Tech Teamns) can provide feedback! Once your team is done with your spec, there will be a spec presentation day where your team will present your spec and get additional feedback from project teams! Go to Part 5 to see how this will work.
Begin your Learning Phase!
In order to optimize your time with your project, we recommend that you begin exploring the technologies associated with building your product while you are designing. However, don’t go too far into the deep end just in case you might have to switch programming languages. Do some general learning projects with your teammates so that you learn together! But, if your team is sure about which stack they will use, then get started with your learning phase ASAP.
There is no exact order where the learning phase fits into this timeline, but we recommend that you should begin when your team has begun writing their spec and knows what tech stack they plan to use. But the sooner, the better. If it's not here and you're having trouble finding the resources yourself, contact your project guide for support!
Examples!
The following are links to some great examples of design documents/project specs. Feel free to use their structure and style as a place to start, but try to make it your own!