|SHDesigns: Embedded Systems Design, Consulting and Developer Resources||Page hits:|
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:
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.
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.
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.
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.