Do I Need an Embedded Systems Consultant?
Embedded systems consultants work on embedded systems—which of course begs the question, “What exactly is an embedded system?” Embedded systems are electronic systems with a microprocessor and are designed for a dedicated function.
Examples of Embedded Systems
If your product requires a microprocessor, then there is a good chance it falls within the domain of an embedded systems consultant.
- Engine management system
- Microwave oven
- GPS unit
- Blood glucose meter
- Process control instrumentation
- Set top box
By this definition, a PC is not an embedded system because it is a general-purpose device.
Types of Embedded Systems Consultants
It should be clear from the above description that embedded systems cover a very wide field. As a result, no consultant can have pan-industry expertise. Instead it is common for embedded systems consultants to specialize in certain areas. The specialization may be by hardware/software, by industry or by technology.
1. Hardware/Software Specialization
Because the presence of a microprocessor is a key characteristic of an embedded system, it naturally follows that embedded systems consist of both hardware and software. The software executed by the microprocessor in an embedded system is usually referred to as firmware. (This terminology came about because changing the software in an embedded system also often required the changing of hardware. Thus hardware + software = firmware.) You will find that embedded systems consultants fall into three broad categories—firmware only, hardware only, and both.
This is by far the most common form of consultant. While they can typically read schematics and operate basic test equipment, the firmware only consultant will not normally take on any hardware based design work. Instead they work exclusively on writing firmware. Firmware only consultants will typically have a degree in Electrical Engineering, Computer Science or Computer Engineering. You will also find a significant number of firmware consultants with degrees in Mechanical Engineering, Mathematics, or Physics.
While the hardware only consultant can typically write firmware—it’s not something they want to spend much time doing. Instead they concentrate on the hardware aspects of embedded systems. Hardware only consultants will nearly always have a degree in Electrical Engineering.
Hardware & Firmware
This is the most rare of embedded systems consultants. They are equally at home in hardware and firmware and typically strive to achieve some balance between the two disciplines. These consultants will also nearly always have a degree in Electrical Engineering. This is our specialty at RMB Consulting.
2. Industry Specialization
It is also common to find consultants that specialize in specific industries. Examples include medical devices, telecommunications or consumer products. Industry based specialization occurs because certain industries have peculiarities, or because the consultant just likes working in that arena.
3. Technology Specialization
Finally it is common to find consultants that specialize in specific technologies. For example, portable electronics is a popular specialization. Other consultants may specialize in specific protocols (e.g. CAN-bus or Bluetooth™) or they may specialize in microprocessors from specific vendors such as Microchip, Atmel, TI or ARM.
Who Hires Embedded Systems Consultants?
Embedded systems consultants are most often hired by the following organizations:
- Companies looking for assistance in embedded systems product development
- Organizations assessing technology and staff
- Law firms looking for expert witness services in the field of intellectual property
What to Look For in an Embedded Systems Consultant
It depends upon your problem. If you are looking for someone to help design a product from the ground up, or you have a number of complex problems, then you will probably want a hardware/firmware consultant with a wide range of experience that can offer a plethora of solutions to your particular problems.
Conversely if you have a very specific task (like implementing a Zigbee stack on an ARM processor running uCOS-III with a Rowley compiler), then you can afford to look for a firmware only consultant that has extensive experience with those particular protocols and tools.
Compensation for Embedded Systems Consultants
There are two main methods of compensation—fixed fee and hourly rate.
Fixed Fee Compensation
Although a fixed fee schedule is attractive on first blush, in practice it is not very common. The reasons are as follows:
- In order to quote a fixed fee, the consultant will normally require an extensive and detailed specification. Even if you have such a specification, a prudent consultant will insist on a clause that states that additional payment will be due if any material changes are made to the specification. This is necessary because sometimes seemingly innocuous changes can have a dramatic impact on the amount of work required. Thus, a fixed fee system effectively limits flexibility by preventing the client from adjusting development without re-negotiating compensation.
- An experienced consultant also knows that it is very easy for things to take a lot longer than expected. As a result, it is common for consultants to pad the fixed-fee quote by 30–50% in order to give themselves an adequate hedge against the product development risk. This padding often leads to a higher development cost than you would get with an hourly rate.
As a result, the majority of consultants will give a client a good faith estimate of the time required to do something—yet charge for the actual number of hours worked.
Hourly Rate Compensation
It is important to understand that the cost of a consultant is the hourly rate multiplied by the number of hours that the consultant takes to complete the work. While this is of course obvious, what is not so obvious is that different consultants have markedly different productivity rates. Indeed it is widely accepted in the industry that the best are 5 to 10 times more productive than the worst. With this variation in productivity, the hourly rate of a consultant is almost irrelevant. What really counts is their productivity.
(Here’s a passionate discussion on this topic. The meat of the article occurs towards the end where the author discusses the productivity of CS students at Yale. While not directly equivalent to Embedded Systems Consulting, the data cited does correlate well with our experience.)
It is extremely difficult to directly assess the productivity of an embedded systems consultant. But it’s relatively easy to assess their success—and a successful consultant has to be productive. To assess the abilities of a consultant, you should do the following:
Ask for references. Good consultants should have a plethora of references to offer you. Call them and ask pointed questions like, “Do you intend to use the consultant again?”
Ask how long the consultant has been working with their clients. Good consultants develop long-term relationships with a relatively small number of clients. A consultant that has worked for dozens of clients only one time each is almost certainly not very good.
Ask for examples of the consultant’s work. If the consultant does good work then they will be more than happy to show you examples. If the consultant equivocates then keep shopping.
See how quickly the consultant grasps your problem and the key issues facing you. The good ones get it sooner.
Another factor that is often considered is the geographical location of the consultant. It seems obvious that a consultant located close to you is preferable to a consultant located a thousand miles away. However, despite this being ‘obvious’ it’s our experience that geographic location is only important when the work necessitates the consultant’s access to your specialized test facilities. The rest of the time modern telecommunications makes the consultant’s location almost irrelevant. Thus given the choice between a local mediocre consultant and a remote great consultant, then you will almost certainly be better off with the latter. To illustrate the point, although RMB Consulting is located in the mid-Atlantic region of the USA, some of our more important clients are in Texas, California and Europe. Indeed we have done extensive work for clients where it has been several years before we have had our first face-to-face meeting.
Narrowing the Field
Let’s assume that you have identified several consultants. They all have a good track record, solid references and relevant expertise. How then should you decide between them? Well one differentiator that you may want to consider is business acumen. This is important because a consultant that understands business is likely to have a much better grasp of the business realities facing you and can tailor solutions accordingly. You can tell if a consultant understands this issue if they ask you a lot of questions about the target market, the competition, the key product features, time to market, return on investment, and so on. A consultant that focuses solely on the technical aspects of the product is less likely to help your bottom line.
A great consultant can be a real asset to your organization. It can take a long time to identify someone that has the requisite skills, productivity, and business acumen. However, once you have found such a consultant, the chances are you will have a long and successful relationship.