Product Development Life Cycle

The process of taking an idea to a working product involves
several steps. I am surprised by how many of my clients do not
understand how involved the process is. Below is a brief description
of the process:

1. Requirements

The requirements phase is the most important step. Here we
discuss exactly what the product must do, how it will look and
how it interfaces with the user and with other products. This
step has the most effect on the results. With a good set of requirements,
the amount of work can be estimated reliably. Changes late in
the design for items missed are costly in time and money.

2. Research and Test Designs

This step involved finding documentation to support the requirements.
This may include obtaining published standards, and any development
tools. It may also include a very small "proof of concept"
design. This design is used to test feasibility of any parts of
the design that are questionable if they can be implemented in
a certain way. One example would be a complex algorithm running
on a slow system. A dummy system with only this part would be
implemented. It could then be tested to see if the performance
requirements can be met. If not, the requirements may need to
be revised.

3. Preliminary Design Specification

This is basically a formal document that describes in detail
what the product does and a general idea of how it will be implemented.
It also verifies that there are no misunderstandings of the product
requirements. This document will be reviewed by all parties. For
projects involving multiple developers or teams, this will include
specifications on any interfaces between developers. For example,
if another developer is developing an application to interface
with the design, a specification would describe the interface.
Both he and I would design to this specification. This allows
parallel development, neither would
require the others work to be completed before starting their
work.

4. Initial Estimate

This estimate describes the remaining steps and the amount
of time required. Also included are estimated costs for hardware,
development tools, prototype design and testing. This gives the
client an idea of the overall cost and the length of time required
to reach the final product. This estimate is only as good as the
work done in the previous steps. It describes major milestones
that can be used to judge overall progress.

5. Initial Design

This is the real design implementation. The hardware is designed
up to the schematic stage. The software is written to the specifications.
Some parts may be tested at this stage on simulated systems or
on an test system that may not be related to the final product.
The hardware is defined and an initial parts list is generated.

6. Prototyping and Simulation

At this time a prototype may be built. For small systems, this
may be practical. Large prototypes may be costly and unreliable.
The software may be run in a simulated environment on a system
that has similar architecture. One example may be running the
hardware and software on an evaluation board.

7. PCB design

This is usually done as soon as the schematic is done. I do
some PCB layout but I have a designer that does most of these
for me. Once the design is laid out and verified, initial circuit
boards can be ordered.

8. Initial System Build

For hardware projects, this involves assembling the circuit
boards. For software projects involves getting all the required
software installed and installing the design software.

9. Initial Design Testing

This tests the basic functionality of the system. All major
pieces are usually in place at this point. Hardware is tested
to make sure it is operational. Software tests to see if it performs
as per the specifications. This may include software and hardware
developed only for testing.

10. Integration

In this step, all the pieces are brought together. This includes
work from other development teams. Compatibility issues are identified
and resolved. At this point the system is functional and all functions
are ready to test. If all of the subsystems have been tested properly
before this point, the integration step usually goes well.

11. Testing

All functions of the system must be tested. This can take time
on complicated systems. The functions of the system are tested.
Also, any error conditions are tried to test system stability
(i.e. improper user input, faulty hardware and bad inputs from
other systems. This step guarantees reliability of the system.
A system is only as good as it its tested to do. Problems not
found in this step are much more difficult to identify and fix
in a final product.

12. Final Design Revisions

Any changes in the design are implemented. This may include
updated circuit boards and changes to software. These changes
must be brought back to the testing stages before they are considered
complete.

13. Final Documentation

In this step all documents required to build, test and install
the system are finalised. Someone described that engineers design
documents not hardware. This is true; A product may work perfectly,
but if it is not documented, no one will be able to build or install
it.

14. Manufacturing

The documents are usually sent to third parities to have them
build the final system. This tests the documentation and will
show any missing pieces.

15. Field Testing

The system is tested in an actual end-user setting. This verified
that the system matches the users needs. It also tests documentation
to see if a "non-developer" can install and use the
system.

16. Completion of Design

The system is ready to ship. If the above steps are followed
properly, there is no work here.

The design process should be considered iterative. Any changes
along the way may require returning to previous steps. This is
why the first few steps are the most critical. Changes in later
steps may require extensive redesign and testing, basically throwing
away work already done.

For very simple designs, some steps may be simplified or eliminated.
Most designs require all of the steps even though they may be
trivial.

Refer to the FAQ page for some more information about designs
and the process.