Learnings from Building Hardware for Production
This is a snapshot into what is involved in bringing a hardware project into reality. That is, hardware in production and available to customers.
The project embarked on building temperature and humidity sensors using IOT technology. Coming from a Software Engineering background, this was a new experience. However, there were transferrable skills that I leveraged from Software Engineering to run the project.
Note: the project was already underway when I came onboard. We were also fortunate with having in-house hardware expertise to guide the technical direction upfront.
Customer Problem
Before building anything, understand what problems you want to solve.
Having already had customers on the platform using temperature and humidity sensors, the feedback collected was key to embarking on building the sensor.
The goal was to bring an intuitive sensor to customers, which was also affordable, reliable, easy to install, easy to replace batteries, operate offline, cover a wide range and last for a long period of time on little power.
Research
At the start of the project, the team began researching different IOT technologies and existing solutions before landing on a chosen technology.
IOT is still a new space and emerging technologies which need to be proven. With that in mind, the decision was made on the following criteria:
- What are the popular technologies?
- Which technology is likely to lead in the longer term?
- Is the technology stable enough? (considering the elements like networks, specification, tooling and support)
- What are the major players in this technology?
- Does this meet the needs of power, bandwidth and reliability?
In the end, LoRa was chosen for building the new sensor.
Choosing Partners
This involved visiting hardware manufacturers, understanding the devices they already produce and their hardware development processes.
Apart from choosing a hardware partner, there were other partners which were key to the project: industrial design, packaging, enclosure production, network partner and logistics.
Internally we leveraged the expertise of software engineering, electronics, go to market, legal and finance.
Tips when choosing partners:
- Leading in the field or recommended by the industry
- There is a proven track record of producing quality products to market and at high volume
- Partners that are transparent, responsive and accountable
- Partners who can provide a clear breakdown of components required in the project build
- Partners who can provide a realistic projected timeline and contingency plan
- Partners who can be agile, pivot and offer solutions as issues arise
- Partners who can advise on required implications, for example certification required, risks that may arise etc
- Choose key partners early. Analyse each partner’s offering and compare on decision points in a timely manner.
When you have chosen a partner, pay particular attention to the statement of work. Understand the likely costs, risks, milestones and proprietary implications. If this is not well understood, this can impact the project build, timelines, cost, quality, pricing of products and ownership of work.
Planning
This is crucial before beginning any build. At this point, the plan is required to identify:
- Key milestones
- Projected timelines
- Risks that might occur
- People needed
- Dependency planning
- Unknowns
- Gain alignment on the plan and timeline amongst all parties
Other points to consider
- Checkpoints: have regular checkpoints in the build to ensure the project is on track and can pivot if needed
- Front load risks and unknowns: start understanding these points, ask for clarity on these details and plan for issues that can arise from these areas.
- Prototyping: if this is a brand new product, a simple prototype to learn and test is a great way to identify potential issues before embarking on the full build.
- Firmware: firmware is difficult to change, once you have devices on the field you cannot re-deploy new software easily. Ensure there are quality measures in place during the build and firmware increments are planned carefully.
Testing
Testing hardware is similar and different to software testing. The added element of hardware means there are added real life scenarios which you need to consider. For example:
- Exposure to different environments: in the sun, in freezers, in humid environments, in enclosed areas (e.g. mimicking a faraday cage), noisy environments +more
- Testing the device being offline
- Testing the device oscillating between different modes
- Testing the device in low battery state
- Switching batteries
- Moving in and out of range
What is similar
- Repeatable scenarios: Map the scenarios and have a shared list with your hardware partner
- Frequent testing: with each incremental build, test and re-test scenarios and bugs. For this project, devices were express shipped to the team and firmware exchanged where the team could update the firmware for each incremental build.
- Exploratory testing: to identify the “chaos” and how people would really use the device.
- Involve as many people: Distribute the load of testing amongst the team, divide and conquer scenarios and exploratory testing.
- End to end and Integration testing: the device will be connecting to a gateway and the data integrated with another platform.
- Bug reporting: Keep a record of the bugs found with repeatable steps and add these to regression testing. Prioritise bugs from each round of testing and make considerations on scope if needed.
- Test reports: As development of each increment is shipped, it’s helpful to have reports alongside to ensure quality and regressions do not re-emerge.
- Production testing: Devices need to be tested as they are being manufactured to ensure quality. Keep abreast of the issues during production testing, keep an eye on the details and ask lots of questions (for example: I noticed the part-number is inconsistent for the region).
Team and Support
Identify what your team should look like and who needs to be involved. Embarking on the whole project is quite a large task, so lean on the right skills needed.
- Stakeholders and owners: identify the key stakeholders and owners that should be present. Lean on their experience to assist with decisions as needed. They may see something you don’t and can guide you as needed.
- Project Management: Identify who can own the project and work with partners to hold them accountable and on time.
- Commercialisation: Identify the required parties needed to commercialise the product, engage them early and build the plan.
- Technical expertise: Identify the technical expertise needed for execution — hardware, software, industrial design, product design etc
Communication
Communication is key to keeping the project in sync and on track. When working with hardware partners, these are tips to ensure good communication
- Frequent communication: Schedule required check in points to keep the flow of communication. For example, borrowing from Scrum, schedule a quick daily standup or weekly sync. Identify roadblocks early and make decisions early before bigger issues arise.
- Proactive and Transparent communication: As issues arise, understand the details and resolve these quickly. Both parties should be providing details as they arise and offer contingencies, follow ups and timeframes. Continually ask: what are the details, how will something be resolved, when will something be resolved, when will you hear back.
- Co-location: This teams for this project unfortunately could not be co-located due to COVID-19, so most of the work was done remotely. If possible, when teams can be co-located, this speeds up with communication and problem solving process.
- Digital communication: Email is slow and text can take longer to decipher, so consider other forms of communication. For example, take videos of issues found, schedule video calls, try to mimic being in person as much as possible.
- Communicate with Stakeholders: Keep the stakeholders regularly. Share the progress, good news, and also keeping them updated of setbacks so they can lean in as required
- Share progress with others: Building the new sensor was quite exciting for people in the team and outside of the team. Not everyone was as intimately involved, so sharing progress regularly also keeps people engaged and can be used as a call for help when needed. Even sharing something like photos of packaging can be exciting!
Contingencies
Projects are not always going to be smooth sailing. The risks and unknowns identified upfront require contingency planning as well as unforeseen issues that arise.
For example, during the project build, a GTM (Go-To-Market) activities were underway, which required the project to be completed by a specific date. Hard deadlines are one example of a constraint but there can be other constraints placed on a project.
With that in mind, we had to make decisions with this constraint in mind, tackling questions like
- What are the biggest risks?
- What are the biggest unknowns?
- What happens if certification fails?
- What happens if end to end testing fails?
- What would re-testing look like? What tools are needed?
- What is the confidence of an item hitting the target date?
- What is the timeline if any issue arises? What gets impacted if an issue arises? What is the timeline if there are issues?
- (Production speed) How many units will be available first? How many units per region?
- What are the commercial availability dates to target? Which regions will be impacted from issues that arise?
Certification
If you are producing hardware which will be available, this needs to be certified in the required region. The certification that we embarked on were: FCC, CE and RCM.
If you are new to the certification process, find the answers to these questions:
- What are the steps involved with certification
- How long does each step take?
- What are the costs involved?
- What are some risks?
- What could fail?
- How can some of the testing be done in development before submission?
- Which companies conduct testing?
- How long will testing take? How long is re-testing?
- What is required to complete certification?
Lessons learnt:
- This can be a long and involved process. If re-testing is required this can be a significant cost, so clear and transparent communication is vital.
- Before submitting the hardware for testing, understand the requirements and ensure this can be tested “locally” first before submitting to the lab for testing.
- Understand timeframes and seek clarity if this is unclear. This has the potential to impact availability of hardware, which can create significant re-work if there are issues that arise.
Logistics
This is the process of shipping products to customers and managing the end to end flow of stock.
The main points to consider:
- Insurance: Ensure that insurance is covered for when stock is at the warehouse and when stock is being shipped
- Warehouse Costs: When stock is processed and is at the warehouse, when stock is being picked and packed costs will be incurred.
- Duties & Taxes: If devices are being shipped in other regions, determine how these will be covered. Will this be covered by you or the customer?
- Tariffs: When shipping electrical devices, there may be restrictions which fall on the device. Do the research to understand what are some of the restrictions and categories this can fall into.
- Stock management: How will stock be managed? How will the stock be scanned and processed through each part of the chain? What labelling is required? What are the SKUs required? How will you know how many items are in stock? When will manufacturing of stock be triggered? How long is the lead time required on manufacturing new stock?
- Integration with systems: When stock is at the warehouse and sold, how is this tracked? How will orders flow from one system to another? How can reports be generated from orders?
- Returns: How will returns be made? Which party covers return shipping costs?
Pricing, Marketing and Sales
When the product is available to customers, how will customers discover the product? How will customers be engaged?
Lean on others with skills in these areas to ensure that the product you have been working on delivering can reach customers effectively and entices them.
Pricing
- Determine the cost price: Take into account costs involved such as manufacturing, development, taxes, insurance, materials, shipping (of materials and finished goods)
- Determine pricing models: Consider different product packs and offerings
Marketing and Sales
- How will customers find the product?
- What are campaigns needed?
- What mediums can customers learn about the product?
- What mediums for customers to purchase the product?
- What points are customers interested in?
- What is the target audience? (industries, existing customers, potential)
Take Aways
This has certainly been a new experience, drawing upon Software Engineering skills acquired over the years to apply to a hardware project.
The biggest asset is having the right people and support system in place. Seek and leverage the expertise around you, ask for support when needed, divide and conquer and have people on hand to for critical thinking and decision making to ensure you have your bases covered.
Plan for risks. Do the work upfront, identify risks early and develop a contingency plan. By the time issues arise you have the tools to pivot and fall on plan B (or plan C).
Lastly, keep communicating. Ensure there is transparency, proactiveness and accountability. If this is missing, change how you are communicating and articulate what is expected.
This has been a journey and one that I have poured immense energy and focus over the past few months. I’m beat, it’s time to recharge!