Posted by Tom De Schutter on May 10th, 2013
Last month we were all waiting for white smoke to emerge from the chimney on the roof of the Sistine Chapel at the Vatican. I am of course talking about the election of the new pope. I couldn’t help but see a parallel with how software developers are anxiously waiting for their software to run correctly and finally get past the series of seemingly never ending bugs (black smoke). While software might never be bug free, seeing the right functionality for a particular use case is a good feeling.
It is important to consider how to get to working software the quickest. A lot of people are like the dove on the chimney of the Sistine Chapel. Watching from the outside to try to get a sense of if something works or not. However, it is so much better to be an insider and probe what is going on to more quickly determine the outcome. And what is better for a software developer than having a software model of the actual hardware? It takes one to know one. Software can be controlled, probed and analyzed much more easily. So nothing beats having a virtual prototype—a fast, fully functional software model of the system under development that can execute unmodified production code. It is like being a cardinal at a pope election. You still don’t know when exactly the next pope will get elected, but at least you are actively influencing the outcome.
The time at which you start software development will influence when your software will be ready for use in combination with the target SoC or device. So, similarly to how the conclave elects a new pope was moved forward to make sure that there would be a new pope by Easter, you might want to consider starting your software development early to get white smoke by the time you want to release your SoC or device. By using a virtual prototype, you don’t have to wait for a board to be available to start software development. And your chances of getting the software ready by the time the hardware will be ready increase significantly. Hallelujah!