Here is a question that we answered in the interrupt slack channel afterwards From the concept to the start: What does it take to build and send a new device Podium discussion. We share the answer in our blog to make it available to a wider audience.
First, I would like to provide a context for this question. During the discussion, I pointed out a common hurdle that build the teams, build up the embedded devices.
The creation and shipping of a embedded system requires coordination of the efforts in various disciplines: mechanics, electrics, firmware, backend servers, application software – only to name just a few. You cannot ignore these factors if they are successfully sent.
The challenge is that the leadership for a embedded product, especially in an early stage company, is tended to bias one of two directions. These prejudices lead to situations that I have seen repeatedly in my career.
- Hardware area (whether a mechanical or electrical engineer)
- Hardware development and construction data act on the schedule.
- The highest priority for the firmware team is to check the hardware design and write Produce firmware.
- The schedule and the development plan neglect software-related activities such as customer software development, security, backend infrastructure, OTA Updates, fleet management functions, etc.
- If the software team always points out that it takes 6 more months to do their work, they are accused of issuing sandbagging or loosely.
- Software aligned
- The development of customer software drives the schedule.
- The schedule and development plan neglects hardware-related activities such as the NPI Process, firmware/tests for production, calibration, reliability test, certification, certification, IQCPreliminary time for parts, lead time for tools.
- Prioritization of aspects such as device size + appearance, without factors such as manufacturing, repair, thermal performance or difficult miniature efforts.
- If late changes in the hardware design lead to lengthy delays (e.g. due to tool or component lead-time), the hardware team is accused of achieving sandbagging or relaxation.
Ultimately, it does not matter which end of the spectrum they are on. It is difficult to bring a product over the finish line if the managers do not concentrate on the Integrated system. This is just the minimum requirement Now.
When asked:
Question about what Phillip said about how product teams are either managed by someone who first understands the physical system, or the software that causes surprises. As a mechanical engineer, should I understand the firmware integration at what level and how best do you learn it? Any resource recommendations?
The answer for managers
If you are in a cross -functional leadership role, it is important that you have a high -ranking understanding of every aspect of the system development efforts for which you are responsible. You need enough to know enough to:
- Understand what the risk areas and the open questions are so that you can get the team to address them (instead of collecting them)
- Make sure that critical steps are not overlooked
- Make sure that the tasks are sequenced in the correct order
- Recognize when the team turns its bikes or goes in a fruitless direction so that they can intervene
If you are one ME or EEI think what I think is important for software development:
- Which general components/functions/processes must be developed on the software page
- Both product-specific and the standard aspects that we discussed in the discussion: OTA updates, security processes, firmware for manufacturing, test plans, release processes, etc.
- The relationship between firmware/applications/backend servers and how the responsibilities of everyone are
- Gating/sequencing in the components/functions to be developed
- A feeling of basebuhling/the backkark for different functions/characteristics/components
- 1 week to develop a driver? Sure, that could work.
- Leave the firmware of the production firmware 1 week before the construction? Smells of trouble!
- What can/should be built internally as if they were bought compared to the outsourced
- The interaction/compromises between software and hardware in a embedded system
- “We can do/fix this in the software” is not always the right answer, even if it is the standard response to use people
For an opposite example: As a firmware developer and EE, I cannot do an actual mechanical design. I still know the high -ranking details and risk areas that I have to pay attention to
- I have a fundamental understanding of the entire design process, the processing, the tool, the pressure, etc.
- I understand how long it takes to produce custom tools and when designs have to be blocked so that we can deliver parts for builds in good time/MP
- I know
- I know that we better have a “fit check” and checked tolerance stacks
- I am aware of the relationship between mechanical-electric software for the thermal performance of the system
- I am aware of the tension between myself PCB Size/component selection/final form factor
- I know that the mechanical design has to be put together on a production line
- I know that repairs occur. Ideally, you have a design that minimized unnecessary wear in components
Experience to a large extent. The more problems you have seen, the more you know that you have to take into account. Regardless of whether you are a guide or not, pay attention to the activities that take place around you. Read the status reports. Listen during the meetings. Connect to team members in other disciplines. Keep up problems and their solutions. There is always something to learn. Over time, you will build an understanding of other aspects of the product development game, as incomplete as it may be.
But of course we can’t know everything. Ideally, you have experienced people in your team that you can rely on and from whom you can learn. If not, you have to find them or let people train as soon as possible!
Apart from that, I think that it is useful to win through webinars, books and conferences (as you do clearly). I have friends in other roles and we often choose the other’s brain. I also pay consultants if I need help/insights outside of my specialist knowledge.
Listening your team cannot be emphasized enough. I was in so many situations in which my input was only ignored because it is unhappy news for the schedule. However, does not change the facts about what to do, but …
Unfortunately, I don’t know too many high -ranking embedded/software books because I am looking for the high -technical technicians. Perhaps Embedded software design Jacob Beningo is a good start and you can skip some of the more technical developmental bits.
Recommendations are welcome!