We have a great team with a combined experience of over 400 years. Do you have a great idea you would like realized? Come talk to us today!
Common Costly Mistakes to Avoid in Product Development: Part 2
“The only real mistake is the one from which we learn nothing” ~ Henry Ford.
With nearly three decades of design and engineering experience and with a team that has a combined experience of over 400 years, we have come across several situations where mistakes in basic design engineering principles, have resulted in roadblocks that we have noted, learnt from and now as seasoned designers, avoid.
In our last blog we covered some of the common costly mistakes to avoid in product development at a macro level in the pre-development, development, and post development phases. In this second part of the blog on the same topic, we go in-depth into some of the common mistakes across specific disciplines of design engineering.
Common Mistakes in Industrial Design
1. Designing for days on end
Sometimes inexperienced designers are trying to create the perfect prototype, spending too much time on the visual details.
The trick here is knowing when to stop prototyping. This can help in saving time, effort, and energy for the designer and considerable time and cost for the innovator. While we do not advocate for a rushed, course or a “good enough” prototype, there is a balance that must be achieved. Note that, one of the primary goals for a start-up is to achieve the point of making (some) revenue. Once the innovator has achieved constant revenue from the design, the design can then be perfected and improved constantly. Remember the advice from our first blog, continue to iterate and to bring to market improved revisions.
2. Over-constraining the design space
Unrealistic size/weight/material requirements can make the design impossible. Especially for young designers and/or a process with limited resources (access to lower-level technologies, aka older machines), over constraining the design will make it impossible to realize the design.
Even the opposite can be true - over engineering the product (building in unnecessary extra margins) without a clear direction or realistic requirements, can result in a bulkier end-product with additional time and cost wastage.
The only advice here is to gain more experience and to learn to design for a realistic vision and with a reasonable timeline in mind. For that the communication with the product owner is again, crucial.
3. Not accounting for tolerances for the manufacturing process
This is a common mistake and is clearly the mark of an inexperienced designer. This issue is not just observed in Industrial Design, but also in Hardware Design, especially when it comes to analog circuitry design, where component tolerances can render a good percentage of the units produced unusable.
This is a common mistake and is clearly the mark of an inexperienced designer. This issue is not just observed in Industrial Design, but also in Hardware Design, especially when it comes to analog circuitry design, where component tolerances can render a good percentage of the units produced unusable.
4. Not choosing the right prototyping techniques (equipment)
Sometimes the right prototyping techniques are not chosen for the task at hand. Due to their overoptimism (unrealistic expectation of being market ready in one iteration) and/or the (some time artificial) rush to get the product ready for market, we have seen customers rushing towards a stainless-steel mold. Obviously, this is not necessarily a good decision as even a slight design edit can result in wastage of the very expensive mold.
Today, there are many ways to ease your way into manufacturing through rapid prototyping– 3D printing is obviously one such way. Another popular option is vacuum casting (it’s not as precise, but it’s much cheaper) and aluminum molding (won’t be able to reach 10000s of production units) but it is way less expensive than stainless steel.
5. Ignoring Customer Feedback
Once the prototypes are ready, it is important for product innovators to get their prototypes into the hands of customers to get critical, valuable feedback. We have had some clients who design in vacuum and only work with engineers and project managers for feedback. You do not want to get too far deep in the design process without getting valuable feedback from your customer base.
We have seen products that have been designed this way used incorrectly by the end customer. This makes you think “Why isn’t the product being used as intended? Isn’t it obvious?”. This is because there was little to no empathy or understanding of client needs and the core problem that was being solved through the product. Once you have clearly defined the problem after receiving feedback from the end user, only then can you find the ideal solution. This is the core of Human-Centered Design.
Common Mistakes in Electronic HW Design
1. Not reading the datasheet thoroughly and entirely
Long gone are the days of printed data sheets which one would know inside-out and by heart. Today, there are products that have more than 1000 pages in the datasheet(s), and it is a challenge to go through. The problem here is that if you do not know and understand the datasheet, you do not know what you are designing with.
My advice here is to improve your reading skills and to improve your document search abilities. While it may be quite challenging to read the entire datasheet at once, it would help if the designers knew what they are looking for (i.e., output impedance of a specific pin). And then, do a thorough search in the datasheet on the topic being researched and spend time to get familiar with the product through the datasheet. However, at the end of the day this is just a shortcut, and it is advised to always read and understand. Verify and cross-check design data against the data sheets with every occasion.
2. Not considering Operating Environment of the product
Young engineers and designers should remember that they do not only design for lab conditions. If not designed for real environment, the system can present erratic behaviors: screen may not update, system can lag, may not boot entirely or even destroy itself.
The advice here is to select components with proper temperature range and keep in mind the entire system must comply with this range. Design for the entire range of temperatures as neither extreme is favorable.
3. Not considering the heat dissipation
Another point to consider about temperature range is self-heating of components and the issue of dissipating this energy properly. An example of a worst-case scenario here is that due to thermal runway, a unit may...smoke. This might seem like an extreme example but unfortunately is not as seldom as you may think. Except for a very few low power designs (i. e. wearables), always consider and check the heat dissipation of the system. Increased temperatures, due to poor heat dissipation design, can not only alter the system characteristics (system behaves differently, sometime even erratic when overheated) but will also shorten the life of the product.
The advice here is to select components with proper temperature range and keep in mind the entire system must comply with this range. Design for the entire range of temperatures as neither extreme is favorable.
4. Failing to derate components
This is again the mark of a young designer. I have seen designers who believe they can design above the specification limits because “the manufacturer has built in extra margins”. Not many designers understand the importance of derating. Not properly derating all components can result in premature failure of not just that component, but even the entire system.
Always identify and understand the industry/standards you are designing for and always derate accordingly, taking in account the working environment, self-heating and expected lifetime of the product.
5. Not considering component aging (e.g., electrolytic cap degradation)
The characteristics of a new component will not match the characteristics of an older one, even if the new one is the same component, with the same manufacturing process. Let’s consider the case of electronic capacitors, because of ripple current and their intrinsic internal resistance, they will heat up and with that their life expectancy will be proportionally lowered. Similarly, an opto-coupler’s transfer ratio varies a lot with the component life. It lowers to even half towards the end of life of the component, compared with the initial value. And as such the designer must account for this edging effect so that the system will continue to function for years.
So, remember to derate popularly, not only with the environment conditions but with component’s aging as well.
6. Failing to apply good PCB layout practices:
- Improper or unoptimized layout:
Poor layout design will render useless the best of schematic designs.
These are some questions to note during layout:
Is the antenna positioned close to a DC-DC converter? How is the orientation of the antenna in relation to other noisy components on the board? How about transmission lines? Do they go in parallel for a certain distance? Do they pass another DC-DC converter?
Improper layout results in poor performance (noisy systems, low quality sample data, unreliable communication, etc.), EMI issues and can result in several rounds of redesigns and failure of certification testing.
The solution here is not easy, read a lot, be ready to ask for help. It takes years of experience to understand the flow of current and to know how to layout a good circuit. - Insufficient width for PCB traces:
If you don’t correctly dimension the trace for the current that will pass through, the trace can end up acting as a fuse. I have seen many cases of PCBs where the traces look burnt and dark though they may continue to work.
The solution here is to find a source that will suggest the thickness of the trace based on the position of trace, length of trace, thickness of copper, layer (external & internal), and amount of current that goes through. Also remember to not use sharp corners for the layout of high current traces as the current density across the trace width is highly dependent on the geometry of the trace, with higher resistive areas around the sharp bends.
If you don’t correctly dimension the trace for the current that will pass through, the trace can end up acting as a fuse. I have seen many cases of PCBs where the traces look burnt and dark though they may continue to work.
The solution here is to find a source that will suggest the thickness of the trace based on the position of trace, length of trace, thickness of copper, layer (external & internal), and amount of current that goes through. Also remember to not use sharp corners for the layout of high current traces as the current density across the trace width is highly dependent on the geometry of the trace, with higher resistive areas around the sharp bends. - Incorrect use and placement of decoupling capacitors:
In my opinion, you cannot have enough capacitors on the board. The rule of thumb is to have as many capacitors as you can, however, be mindful of how you place them. For example, if a small capacitor (100nF or lower value), is placed more than 10mm away from the pin intended for decoupling, they will serve no benefit and may result in noisy circuitry, erratic behavior, even resets.
Please choose the right value for the capacitors for decoupling. The rule of thumb is to place the caps as close as possible to the pin they are decoupling, with the smallest one placed the closest.
7. Failing to test
It is a fallacy to assume that the product is ready to ship as soon as the design is done.
Without testing, you end up with an unproven, unstable, and unreliable product that can produce more damage than good for you and for your customers.
The four pillars for testing are long term stability, temperature, humidity, vibration.
For some designers it’s very hard to fool proof or verify their own product and so the solution is to have a different engineer for testing rather than the product designer.
8. Not considering cost of using certain high-density parts
The tendency, especially for young designers and engineers, is to make use of latest and greatest technologies. While this is a normal tendency and a perfect design strategy from many perspectives, it could fail the practicability test.
For example, using a 0.35 mm pitch BGA can drive up the cost of your PCB due to the technology needed to break out the connections. There is nothing wrong in using new and “cool” technology, but do not use it without an objective need.
9. Using buried and blind vias:
Same as for the above, using more complicate technologies then realistically necessary for the design will easily double the manufacturing costs, in this case the cost of the PCB.
There is nothing wrong with using this advanced technology, if the geometrical requirements are tight, and the goal is a small board, then yes, it can be justified. But otherwise, it will increase the price of the product unnecessarily.
Common Mistakes in Firmware Design
Here are some commonly overlooked mistakes in firmware design
1. Not making ‘System Security” part of the solution from the start of the project
Adding security to an application is not always as simple as adding a wrapper. More often than not, you need to know exactly where to store certificates, keys, etc. and you won’t be surprised to find out that even the hardware has to be prepared for it. For example, in the payment industry, you need to use TrustZone technology for applications and for this you will need a processor that is compatible with this security extension.
So, it is important to know ahead about the standards that the product must comply with and to start designing accordingly.
2. Not including OTA or FW update part of the initial plan
You need to consider FW updates from the initial part of the design. It is not as hard to overcome towards the end as the system security presented above, but always make sure that there is enough space for the bootloader and enough memory to hold the image of the new firmware that you want to upload as you need to verify the entire FW image before you swap and make the new firmware active.
3. Failing to verify the integrity of stored or communicated data
While wired communication is generally more secure and reliable, wireless connections are ‘open season’ for anybody and any system to use. Think about checksums, CRC and hushKeys. Make sure you verify the integrity of the data that is passed from one end to the other and employ proper design techniques to guarantee reliable data transfer.
Special provisions must also be made in FW to allow retries, especially for wireless communication. Its always best to have handshake communication between the two nodes.
4. Logic which does not thoroughly check for all possible failure conditions
This one is as old as time. It goes back to fully understanding the system, the operation, and the expectations from the system behavior. In a way it is interlinked to the QA process of the system testing, as the system designer must consider all scenarios and use cases in order to prepare the system for a failsafe or at least fail gratuitously.
The best systems are the ones designed to at least give you an easy way to trace the source of the problem and you can come with an update of the SW/FW. The solution here is to follow good design practices and design checks.
5. Lack of flexibility in software codes
- Monolithic implementation rather than modular design: It is the sign of a young designer to work with long line of codes. Long, monolithic code is hard to maintain, debug and improve. The solution is to use modular design (use functions). There are opinions that state that if the function is longer than how much can be displayed on a screen, then it is long. Keep it short, keep it modular and easy to understand.
- Redundancy rather than reuse: One commonly observed mistake is maintaining similar functionality in multiple instances of similar code. The best practice is to reuse. It is better to write simple functions that can be reused and that can be updated at once for the entire code.
- Embedding hard-coded settings that may eventually need to be configurable: Sometimes you are in a rush, and you hard -code settings. It may be good for today, but in the future it will not help. The better way is to use # (pound) defines, and macros. In the long run it will help you to maintain code.
- Not properly accounting for scalability requirements of a system: It is a complex issue especially for IoT systems. For e.g., with mesh networks, the moment you have many nodes in a network, you start to have more problems. The advice here is to have this in mind from the beginning of design. And during QA, conduct design system load tests to see how it behaves when the entire system is operational. Many times, we see customers having a hard time grasping this concept. It is a different scenario when we have only a few systems running as compared to having several thousand running at the same time.
These are some of the commonly observed mistakes across industrial, hardware, and firmware design. Though these mistakes may seem trivial, if overlooked they can result in very expensive redesigns, which can set back product development targets by a couple of months, or worse.
While these are mistakes that designers learn to overcome and avoid with years of experience, for the more recent designers, referring to a list of mistakes to watch out for can help to a large degree to avoid and create successful designs.