Combined products fail at the seams, not in the disciplines
Most connected products today are three products in a trench coat: electronics, firmware running on the device, and an app or cloud service talking to it. Hardware and software product development rarely fails because one of those disciplines was too hard. It fails at the seams. The firmware is ready but the new board moved a pin. The app is waiting on a protocol nobody wrote down. The enclosure was released for tooling before the software team discovered it needed one more button.
So the useful question is not "who can build each piece" but "who owns the integration." This article covers how to manage that: the interface definition, the coordinating role, and the milestone structure that forces the seams to be tested while fixing them is still cheap.
Why combined projects stall
- Different clock speeds. Software changes in hours. Hardware changes in cycles of weeks — fabricate the board, assemble, bring up, test. Run both on one flat schedule with no planned synchronization points and software waits or hardware slips, permanently.
- Nobody owns the interface. The firmware team assumes the app will cope with whatever it emits; the app team assumes firmware will add whatever is missing. Without a named owner, both are right and the product does not work.
- Integration deferred to the end. Each team progresses nicely in isolation and the first real connection happens a month before launch, exactly when there is no time to fix what it reveals.
- Irreversible hardware decisions made too early. A software change costs a day of work. A board respin after tooling costs tens of thousands of dollars and months. When software is not in the room early, hardware locks in the wrong assumptions.
- Split vendors, split accountability. Electronics at one firm, firmware with a freelancer, app at an agency: nobody is responsible for the seam, which is the classic recipe for a stuck project.
The interface definition is the document that saves the project
The central artifact in a combined project is a written interface definition, created early and maintained religiously. It answers questions like:
- What messages pass between the app, the device, and the cloud, in what format and over what transport?
- What happens on disconnect, on low battery, on a failed command?
- How does a remote firmware update work, and how does the app know which firmware version it is talking to?
- Which pins, signals, and buses connect the board to the code, and what are the electrical assumptions on each?
Once the interface is defined, every team can work in parallel and self-test against a simulation of the other side — the app against a device emulator, the firmware against scripted test cases — before a real board exists. Equally important is versioning the interface: every protocol change gets documented, numbered, and agreed by both sides, so it is always clear which firmware version works with which app build. Projects routinely lose weeks purely because one team was testing against a stale version of the other. Designing the connected side of that contract deliberately is covered in building an API for a hardware product, and the update mechanism itself in OTA firmware updates.
Somebody has to coordinate
A combined project needs one function that sees the whole picture — a project manager or system architect — who holds the interface definition, schedules the synchronization points, and decides between disciplines when they disagree. This is not overhead; it is the role that prevents the most expensive class of rework. What that function actually does day to day is described in product development project management.
Before you assume you need all three layers, it is worth asking whether the app is load-bearing at all in version one. Plenty of products ship better without one, as discussed in whether your product needs an app. Removing a layer is the cheapest integration strategy available.
Plan integrated milestones, not parallel progress
Structure the schedule around milestones that prove integration rather than milestones that report separate progress. Good ones look like:
- "The app turns on an LED on the first prototype board."
- "A remote firmware update completes end to end, including rollback on failure."
- "A sensor reading travels from the device to the cloud and appears in the dashboard."
- "The device recovers correctly after losing connectivity mid-command."
Each of these forces a seam to be exercised early. A well-structured example of this milestone shape for connected devices is in how to prototype an IoT product. As the design matures, the hardware validation stages themselves impose synchronization points worth planning around — see EVT, DVT, and PVT explained. Locking mechanical design before firmware has run on a real board is a decision you make once and pay for repeatedly.
Budget and schedule realities
Two practical expectations. First, integration and system test is not a rounding error — on a three-discipline product it commonly accounts for a meaningful share of total engineering effort, and a plan that shows it as a single week at the end is not a plan. Second, hardware iterations dominate the calendar: board fabrication, assembly, and bring-up set the rhythm, so the number of planned board revisions is one of the strongest predictors of both cost and duration. In US dollar terms, a connected product with custom electronics, custom firmware, and a companion app is generally a low-to-mid six-figure development program, and the largest single lever on that number is how many hardware spins the plan allows for. Deeper technical background lives in our embedded software guide.
Buy integration, not components
When evaluating vendors for a product that combines hardware and software, the important question is not who will write the code but who is accountable for everything working together. A single team holding electronics, firmware, and app under one roof avoids the seam wars entirely, which is how Projects House structures combined projects. More on that service model is in our product development services guide.
Describe your product through the contact form and we will map the interfaces, the integration milestones, and the realistic schedule before any code or copper is committed.