|Jack Ganssle's Blog
This is Jack's outlet for thoughts about designing and programming embedded systems. It's a complement to my bi-weekly newsletter The Embedded Muse. Contact me at email@example.com. I'm an old-timer engineer who still finds the field endlessly fascinating (bio).
For novel ideas about building embedded systems (both hardware and firmware), join the 30,000+ engineers who subscribe to The Embedded Muse, a free biweekly newsletter. The Muse has no hype and no vendor PR. Click here to subscribe.
The Cost of Firmware - A Scary Story!
October 31, 2018
Today is Halloween. Perhaps it's appropriate, then, to comment on the horrifying and scary cost of firmware.
I've been collecting this data for some years, and my numbers peg the cost of firmware at $20 to $40 per line of code (LOC). That's not coding; this includes the entire life-cycle, from requirements elicitation to final delivery.
It's pretty astonishing to interview developers and hear about their code production rates. Typically they tell me they can crank 100 to 300 LOC/day. That may be true in the pure coding phase, but is simply not relevant. The real question is: what does it cost to build a product? That includes requirements, design, coding, debug, test, integration, documentation, and release. These are all real costs that must be accounted for. And that's what my $20-$40 numbers cover.
In a 1996 paper by Thomas Drake (Measuring Software Quality: A Case Study, IEEE Computer Nov, 1996) NSA (you know, those folks who are listening to you at this very minute) figures they pay $70/LOC.
VDC's 2017 Embedded Engineer Survey Results, once you boil down all of their data, suggests the number is about $43/LOC.
Toyota has the coveted "most expensive code every written" award. Their engine control code caused the Feds to hit them with a $1.2 billion fine, which works out to over $1200/LOC, even before one includes the actual engineering.
Rockwell Collins, in a 2009 report ( Certification Cost Estimates for Future Communication Radio Platforms) figures for low-assurance levels (Design Assurance Level D), an experienced engineer produces 65 LOC/day.
Now, that's just for documentation, production and validation - these figures do not include the other aspects of building a product. Still, it's instructive to play with the numbers. An experienced developer in the USA will cost around $200,000/year (including overhead). At 65 LOC/day that's $12/LOC, or probably twice that once all of the engineering activities are included.
At 12 LOC/day for great code, figure on five times the price.
Inexperienced developers are maybe 25% cheaper than old salts, but are only a bit more than a third as productive.
Now, their numbers assume one is working 40 hours per week on the code. An article in the May/June 2014 issue of Crosstalk claims the average developer is 50% utilized on the project at hand; other sources cite 55%. So the real costs are twice what they've cited.
Feel free to email me with comments.
Back to Jack's blog index page.
If you'd like to post a comment without logging in, click in the "Name" box under "Or sign up with Disqus" and click on "I'd rather post as a guest."
Recent blog postings:
- Customer non-Support - How to tick off your customers in one easy lesson.
- Learn to Code in 3 Weeks! - Firmware is not simply about coding.
- We Shoot For The Moon - a new and interesting book about the Apollo moon program.
- On Expert Witness Work - Expert work is fascinating but can be quite the hassle.
- Married To The Team - Working in a team is a lot like marriage.
- Will We Ever Get Quantum Computers - Despite the hype, some feel quantum computing may never be practical.
- Apollo 11, The Movie - A review of a great new movie.
- Goto Considered Necessary - Edsger Dijkstra recants on his seminal paper
- GPS Will Fail - In April GPS will have its own Y2K problem. Unbelievable.
- LIDAR in Cars - Really? - Maybe there are better ideas.
- Why Did You Become an Engineer? - This is the best career ever.
- Software Process Improvement for Firmware - What goes on in an SPI audit?
- 50 Years of Ham Radio - 2019 marks 50 years of ham radio for me.
- Medical Device Lawsuits - They're on the rise, and firmware is part of the problem.
- A retrospective on 2018 - My marketing data for 2018, including web traffic and TEM information.
- Remembering Circuit Theory - Electronics is fun, and reviewing a textbook is pretty interesting.
- R vs D - Too many of us conflate research and development
- Engineer or Scientist? - Which are you? John Q. Public has a hard time telling the difference.
- A New, Low-Tech, Use for Computers - I never would have imagined this use for computers.
- NASA's Lost Software Engineering Lessons - Lessons learned, lessons lost.
- The Cost of Firmware - A Scary Story! - A hallowean story to terrify.
- A Review of First Man, the Movie - The book was great. The movie? Nope.
- A Review of The Overstory - One of the most remarkable novels I've read in a long time.
- What I Learned About Successful Consulting - Lessons learned about successful consulting.
- Low Power Mischief - Ultra-low power systems are trickier to design than most realize.
- Thoughts on Firmware Seminars - Better Firmware Faster resonates with a lot of people.
- On Evil - The Internet has brought the worst out in many.
- My Toothbrush has Modes - What! A lousy toothbrush has a UI?
- Review of SUNBURST and LUMINARY: An Apollo Memoir - A good book about the LM's code.
- Fun With Transmission Lines - Generating a step with no electronics.
- On N-Version Programming - Can we improve reliability through redundancy? Maybe not.
- On USB v. Bench Scopes - USB scopes are nice, but I'll stick with bench models.