Prototype
Description
A prototype is an early sample, model, or release of a product built to test a concept or process. The benefits of a prototype include:
- freedom to make mistakes and fail fast and fail forward.
- identify issues up front, which gives you more time for resolution
- demonstrate ideas to the team and client
Before we can work on the prototype, we need to identify candidates:
- Identify the external application (if any)
- Identify high risk components
- Identify unknown interfaces
- Identify user interface preferences
Prototype Plan
- Identify which component to prototype
- Identify the hardware and external software your product will use
- Identify the component those requirements will be mapped to
- Plan the effort
- You may want to create a Kanban board (or some schedule/plan) for the prototyping effort
- Create detailed tasks for completing the prototype
- Divide responsibilities
- Hold team members accountable
- Design the prototype
- Create a graphical representation
- Define interface communications; systems tend to fail at integration points
- Determine components
- Hosting - where will the prototype be hosted?
- Language - which language is best?
- Tools - git, third party applications, etc.
- Define test cases
- Success and failure cases
- Edge cases
- For each test case list:
- What is being tested
- Inputs
- Expected outputs
- Run test cases and note success or failure
- Implementation
- Divide up responsibilities
- May not be be in the same language
- “Code” may vary based on the prototype
- Present results