The AI Productivity Paradox in Firmware Teams

The AI Productivity Paradox in Firmware Teams

Engineering is much more than just generating code quickly

An experienced firmware engineer starts leaning on AI every day. Tickets move faster. The empty-file dread is gone. “Honestly, I’m at least 30% quicker now,” they tell their manager.

Three months later, the graphs don’t share the enthusiasm. Incidents per PR are up. Review queues are sticky. QA is catching regressions in places that used to be quiet. Nobody can point to a single catastrophic failure, but the background noise level has changed. People are busier, not calmer.

That gap between “this feels faster” and “this is actually helping us deliver” is the AI productivity paradox for firmware teams.

Why “I’m faster” is a bad steering mechanism

AI does make parts of a developer’s day feel better. It’s good at blowing past small obstacles:

  • “Translate this scribbled state machine into actual C.”
  • “Give me a first pass at this driver API.”
  • “Show me a unit test skeleton for this module.”

You go from stuck to “there’s something to run and poke at” very quickly. That’s real.

The trouble is that personal experience is a narrow lens. It doesn’t see the whole system. The engineer at the keyboard doesn’t see:

  • The extra review hours logged by other engineers who had no context on what prompts produced the code and now have to reconstruct intent from scratch.
  • The subtle integration drift when each AI-assisted change nudges the architecture a little bit.
  • The support tickets that pop up two releases later because a race condition got past incomplete tests.

In controlled studies, this isn’t just a feeling problem. Experienced developers predict that AI will speed them up, and they still believe it did after the fact, even when the measured effect is a slowdown on real issues in mature codebases.

So, if a firmware lead hears “I’m 30% faster now,” that’s a useful data point about how the workday feels. It is not a reliable metric for whether the organization is actually better off.

What acceleration whiplash looks like

As AI usage grows, a recurring pattern shows up: coding accelerates, but delivery doesn’t automatically improve. In some organizations, stability actually gets worse. On the ground, it looks like this:

  • PR counts go up, or the average diff size creeps larger.
  • Review feels heavier. People either spend more time per PR or start clicking approve just to keep things moving.
  • CI pipelines that were fine pre-AI now struggle to keep up with the volume.
  • QA and support see more issues per release than before.

You’ve stepped on the gas in one part of the system, local coding speed, while leaving the rest of the system unchanged.

Nobody put that in the sprint goals. It just sort of happens when a rocket gets bolted onto a 2018-era delivery pipeline and everybody hopes for the best. For embedded firmware, the consequences aren’t abstract.

  • Debug cycles require real hardware, not just another test container. Losing two days of bench time to track down a new intermittent bug is expensive.
  • Rolling back a bad change is not just “deploy the previous build.” It’s OTA constraints, bootloaders, and sometimes field service, as well as re-certification.
  • Observability is often thin. When devices lock up on a customer’s site, the team may get a vague log and a screenshot, not a full stack trace.

Multiply those costs by a higher incident rate per PR and the math stops working very quickly. If a team can comfortably absorb three medium-severity issues per release and that quietly becomes six or eight, it doesn’t matter much that one engineer feels 30% faster. The system is now underwater.

Why self-reported productivity keeps lying

If team-level decisions are being made, it helps to know why self-reports are so skewed.

One reason is that AI improves the most visible, least measured part of the job: the minutes where somebody is actively typing and seeing the program evolve. That’s what people remember at the end of the day. The long debugging session that followed a rushed change gets filed under “CI is slow” or “the hardware is being weird,” not “this new AI habit made the system harder to reason about.”

Another reason is cognitive offload. When the tool fills in a big stretch of code, the sense of effort drops. It’s easy to misread that as speed. The cost of understanding, testing, and maintaining that code is back-loaded and shared across the rest of the team.

That’s because humans are simply not good at attributing delays. When a release slips, people point at meetings, dependencies, process, maybe the compiler version. Almost nobody says, “we’ve been steadily increasing the complexity and churn of changes we’re pushing through the exact same funnel.”

That is why the metrics that matter at team level are not “how fast does this feel?” They are things like change failure rate, review load, time to diagnose device issues, and regression patterns over time.

If those aren’t improving, tuning AI usage around “it feels great” is more likely to amplify the problem than solve it.

Why firmware teams feel it harder

A lot of early AI productivity stories come from web and enterprise software. Those environments usually have short feedback loops, rich observability, cheap rollbacks, and more mature automation. They also benefit from a softer failure mode: a flaky web app is frustrating. A device that locks up or behaves unpredictably erodes trust in a way that a redeploy can’t fix. Firmware is not playing that game.

Hardware doesn’t forgive sloppiness

AI is good at generating code that compiles and passes shallow tests. It is much less trustworthy with tight timing on buses and ISRs, vendor errata buried in PDFs, power budgets, startup sequences, and safety margins that are not obvious from one source file.

When those are wrong, the result is not just another failed build. It can be a device that locks up once a week in the field, a battery that drains faster than spec, or a factory test that starts failing for reasons nobody can reproduce on the bench. The takeaway? Embedded-specific risks are sharper around memory safety, determinism, hardware-specific correctness, and certification-heavy environments.

Turn up change volume with AI without strengthening hardware-in-the-loop tests, factory tests, and field telemetry, and the roulette wheel is just spinning faster. That cuts directly against the testing and reliability emphasis in Dojo Five’s broader embedded guidance.

Review gets harder when authors don’t own the code

In embedded, reviewers carry a lot of system context. They are not just asking whether the code looks okay. They are asking whether it respects timing, power, watchdog behavior, interface contracts, and how the whole device is supposed to behave.

When a PR arrives full of AI-assisted code that the author can’t walk through line by line, reviewers are stuck. They either spend more time reconstructing intent and checking hardware interactions, or they lower the bar and hope the existing tests catch anything serious. If the engineer cannot explain the code’s behavior without the AI tool open, the code is not ready.

At team retros, that usually shows up as “reviews are slow” or “CI is underpowered,” not “we handed reviewers a pile of half-understood code and asked them to be psychic.”

Tooling is halfway modern, not fully

Many firmware organizations are still in the middle of modernizing their practice: one source of truth, tighter environment governance, better automation, testing that actually covers reality, and systems that are updateable and observable over the full product lifecycle. AI shows up in the middle of that journey, not at the end. If the testing taxonomy is thin, the automation infrastructure is partly manual, and the logging from the field is still evolving, then a sudden increase in code churn is not neutral. It pushes more risk through a pipeline that was already working hard.

Three practices that help

The paradox is not unavoidable. AI can absolutely be a power tool for embedded work, but it has to sit inside practices that protect delivery stability and make it easier, not harder, to ship reliable firmware.

  • Keep changes small and explicit. Use AI to make it easier to craft tight, focused PRs, not to cram more behavior into each one. Small batch sizes make it possible to see what changed, review it properly, and roll it back cleanly when needed.
  • Upgrade tests and observability first, not last. Before leaning hard on AI for implementation, invest in tests that actually run, including hardware‑in‑the‑loop where it matters, and in logging and telemetry that say something useful about device behavior in the field. If feedback from real hardware is slow or fuzzy, speeding up code generation just moves risk around instead of reducing it.
  • Make ownership explicit. Whatever wrote the first draft, the engineer who opens the PR is responsible for every line. If they cannot explain how a chunk of code behaves on the device and how it could fail, it does not ship. AI tools are allowed to suggest; engineers are the ones who decide what goes into the product.

This keeps the SEO‑useful semantics (AI for embedded, PRs, small batch sizes, tests, observability, HIL, logging/telemetry, ownership) without repeatedly pointing back at your own assets.

In our forthcoming e-book, AI Power Tools for Embedded, the messy parts this post only sketches out get more attention: where the numbers actually look good, where they don’t, and what changed in teams that stopped getting burned by “AI makes us faster” stories. This post is an early look at that paradox and why firmware teams feel it so sharply.

Discover why Dojo Five EmbedOps is the embedded enterprise choice for build tool and test management.

Sign up to receive a free account to the EmbedOps platform and start building with confidence..

  • Connect a repo
  • Use Dev Containers with your Continuous Integration (CI) provider
  • Analyze memory usage
  • Integrate and visualize static analysis results
  • Perform Hardware-in-the-Loop (HIL) tests
  • Install the Command Line Interface for a developer-friendly experience

Subscribe to our Monthly Newsletter

Subscribe to our monthly newsletter for development insights delivered straight to your inbox.

Interested in learning more?

Best-in-class embedded firmware content, resources and best practices

A Guide to Assessing Security Risk in Embedded & IoT Devices

A Guide to Assessing Security Risk in Embedded & IoT Devices

In 2025, a stack-based buffer overflow vulnerability (CVE-2025-24132) was found in the Apple AirPlay SDK. For third-party smart speakers and receivers, this vulnerability allowed proof-of-concept zero-click remote code execution (RCE) that made it possible for attackers to overwrite memory and execute malicious code on many devices. An unpatched code injection vulnerability in AVTECH IP cameras (CVE‑2024‑7029) enabled a Mirai botnet variant in 2024.  In both cases, vulnerabilities gave attackers access to important security infrastructure. This illustrates the need for ongoing

Read More »
Using Artifactory for Efficient Artifact Storage

Using Artifactory for Efficient Artifact Storage

Introduction Managing software artifacts efficiently is a critical challenge for software development teams. Whether you are dealing with versioning issues, dependency management, or maintaining previous builds for rollback and debugging, an inefficient artifact storage solution can slow down development cycles and introduce errors. Below is a list of questions to consider artifact management in your CI/CD processes: Are the number of binaries for your projects growing and struggling with tracking and retrieving different versions of your software builds, making debugging

Read More »
Automated Firmware Builds

Setting Up Automated Firmware Builds

Why do you need automated firmware builds (sometimes called a Continuous Integration (CI) pipeline) for your embedded project? Oftentimes we have found  that customers do not trust their firmware release process because their firmware builds require some tribal knowledge. It can be a challenge to set up machines to produce consistent builds across an entire team, and may even require expensive dongles to get working. Occasionally there’s a build machine in the corner of the room which can help, but

Read More »