embedded software boot camp

The consultant's dilemma

Tuesday, September 29th, 2009 by Nigel Jones

Today I’m going to talk about an interesting ethical dilemma that is faced by all engineers at various times in their careers but which consultants face much more frequently because of the nature of the work. The situation is as follows:

A (potential) client has a new project that they wish to pursue and they have brought you in to discuss its feasibility, risk, development costs etc. At a certain point in the discussion, the topic of CPU architecture comes up. In rare cases, there is only one CPU that makes sense for the job. However in the majority of cases, it’s clear that there are a number of potential candidates that could get the job done and the client is interested in your opinion as to which way to go. In my experience you have the following options:

  1. Recommend your favorite architecture
  2. Recommend that time be spent investigating the optimal architecture
  3. Recommend the architecture that you are most interested in gaining experience on in order to develop your career.

Let’s take a look at these options:

Favorite Architecture
The advantage of going with your favorite architecture is that presumably you are highly experienced with the processor family and that you already have all the requisite tools in order to allow you to quickly and effectively develop the solution. The downsides to this approach are:

  1. It leads to antiquated architectures hanging around for ever. The prime example of this is of course the 8051.
  2. It means that your skill set can stagnate over time.
  3. It also may mean that the client pays more for the hardware than they would if a more optimal solution was used. This comes about when e.g. an ARM processor is used when an HC08 would have done quite nicely.

Architecture Investigation
With this approach you are essentially asking the client to pay you to work out what the optimal solution is to their problem. Sometimes this is just a few days work and other times it’s a lot more. This is often a tough sell because clients expect the consultant to instantly know what the best architecture for their application is. Furthermore, at the end of the day the consultant may end up recommending an architecture for which they have little experience. Whether you think this is reasonable or not depends on how you view consultants.

Career Development
In the 25+ years I’ve been doing this, I’ve only come across a few blatant cases where it’s clear that an architecture was chosen because that’s what the lead engineer wanted to play with next. My experience is that engineers are way more likely to be too conservative and stick with their favorite architecture than they are to go this route. Nevertheless if you are in the position of asking an engineer (and particularly a consultant) for a CPU architecture recommendation, then you must be aware that this does go on. Your best defense against this is to closely question why a particular architecture is being recommended.

So what do I do when faced with this issue? Well you’ll be pleased to know that I have never recommended an architecture in order to further my career. The decision as to whether to recommend my favorite architecture or to suggest an investigation comes down to one of cost. If the client will be building 500 of the widgets a year, then development costs will dwarf hardware costs and I’ll go with my favorite architecture. Conversely if they will be building 10,000 widgets a year, then an investigation is a must. The middle area is where it gets tricky!

I’d be interested in hearing how you have handled this dilemma.

Tags: ,

5 Responses to “The consultant's dilemma”

  1. Kyle Bostian says:

    Regarding your quote: "an ARM processor is used when an HC08 would have done quite nicely…" I think your point comes across very clearly, but you may be surprised if you compare these two Digi-Key part numbers: MC908AP64CFBE-ND and 726-1021-ND.

  2. NAthan B. says:

    Which is your favourite 8 bit (say, 4-32 KB ROM) architecture? 🙂

  3. Nigel Jones says:

    To Kyle's point – yes the price performance ratio of Cortex processors from Luminary, NXP & ST (to name a few) is quite astonishing. Indeed I can see this leading to the whole sale death of many architecture lines. Thanks for keeping me straight on this Kyle (as always)!To answer Nathan's question, my favourite 8 bit architecture is by far the AVR from Atmel. There isn't a lot to to chose from in the 16 bit realm and so by default I seem to use the MSP430. The Hitachi SH range looks interesting – but I've never used it (so if you one day you retain me and find that I'm recommending the SH range then be suspicious :-)). I know a lot of folks like the Microchip PIC24 series as well.In the 32 bit arena, ARM is king from a market share perspective. However I can't say that I'm particularly enamored with it. I was really heartened to see that Microchip went with the MIPS architecture in its recent PIC32 announcement. I'm also intrigued by Atmel's new AVR32 offerings.At the high 32 / 64 bit end I much prefer the PowerPC architecture over the X86.

  4. Kepa Diez says:

    I started developing for embedded systems with (the very limiting, and not so compiler-friendly) 8 bit PIC microcontrollers, and since then I have always wanted to try the 8 bit ATMEL MCU family, but haven't had the chance yet.But it is a bit strange, being such an interesting family from the technical point of view, that there seems to be very little presence in the mass production industry (>100.000 units manufactured). Maybe the price in large quantities is not as compatitive as the good old 8051s, or even newer Freescale/NEC/Microchip/Renesas MCUs?Is there any other reason that I miss, which makes them less suitable for mass production?

  5. Nigel Jones says:

    I have worked on one high volume (> 100000) project involving AVR's- not that it proves anything. My recollection from the last industry survey I saw is that Atmel is number 2 in 8-bit micros, albeit a long way behind leader Microchip. Atmel has suffered from turmoil at the top of the company as investors have asked "how come your products are so good – but your sales don't reflect this?". I think it's a great question. We have had some brief discussions before on this blog where the merits of PIC and AVR were discussed. It seems to me that Microchip has done a great job of marketing to those in college, and then this momentum (inertia) has carried through to the market place.My assessment is that engineers are far more objective and logical than the general population. Despite this, when I see the enormous popularity of the 8 bit PICs I get a bit depressed about what it says about even engineer's objectivity.Despite all this, maybe Kyle's comment above will make the whole discussion moot, as it's highly likely we'll all be programming ARM processors for every application in the near future.

Leave a Reply