I am a difficult customer. When I am buying something, I want see exactly what I am getting for my money. The words of the salesperson and the blurb on packages just does not convince me - I have been caught out too many times.
Recently my daughter was after a charger for her iPod, as she was traveling without a computer and “needed” her iPod. What she wanted was a mains plug which has a USB socket on the back. Easy, there are lots of those on the market. I even have two on the shelf in front of me. But neither of these work with her iPod [a current generation Nano]. Some research on the Internet showed that this problem is very well known. We went into a shop and found a charger which said “suitable for all iPod models” on the pack. I enquired whether this really meant ALL. I was assured that it did and the guy asked if we wanted to try it. The charger worked perfectly and he made a sale. [Email me if you want to know what product it was.]
If only it were that straightforward with software …
Computer programs are extremely complex. If I draw a comparison with machines, the most complex mechanical device ever created is the Space Shuttle orbiter, which has around a million moving parts. In software terms, I suppose a bit is a moving part and program code consisting of 100m bits is not unusual. Apart from the debugging/verification issues [which I will save for another day], this complexity makes choosing software very challenging. It is virtually impossible to give a meaningful amount of information on a package or brochure. The only way to really find out what a program can do, whether it can perform the job that you want and if you are comfortable with the way it does it, is to give it a try.
A demonstration of software may be more interesting than a brochure, but I have a lot of experience in doing such demos, so I am very aware of their limitations. I love shareware and evaluation packages. I am more than happy to pay money for software that has proven itself useful to me. Interestingly, I find that I can often reach conclusions very quickly. I can download a program, try it for a few minutes and immediately know it is not for me. If it gets past the first few minutes, a longer trial can prove the software’s true worth.
This is all fine for desktop software. The software developer knows exactly what my machine looks like - every Windows machine is, for all intents and purposes, identical. So it is easy to provide an evaluation that I can try. Embedded software is another matter, because every embedded system is different [which is what makes the business so interesting]. This means that an evaluation needs to be specific to each customer, which, even if it is possible, is not an economic use of resources. The Mentor Graphics embedded software team are well aware of these constraints. So they came up with a means of running an evaluation version of the Nucleus OS on a regular PC, which enables the user to try out lots of API calls and get a feel for how the RTOS works. You can download it from here, where there is also access to other evaluation software packages.
I just hope that our customers are not quite as difficult as I am.