What makes embedded system development unique is that the hardware and software components are sometimes co-developed. This means that as the hardware (PCB) is being designed, software is written in parallel. Sometimes, the “experimental” hardware is made available via prototyping means, such as breadboarding, wirewrapping or prototype boards.