|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 40,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.
Why Does Software Cost So Much?
May 20, 2020
Why does software cost so much? This is a plaintive cry heard from managers the world over. In my travels I'm often asked that question, especially from companies that have been around for generations. Many of these build products that few people think about, yet that are essential to the complex infrastructure that underlies the world. Some of these outfits built electromechanical devices for decades but found that incorporating a little intelligence gave them a competitive advantage. Time goes by and that part-time engineer who designed a simple board with a few K of firmware is now a 20-person department. Products are late, bugs leak into the field, and each "little software change" takes weeks or months.
So the boss, perhaps an experienced mechanical engineer with decades under his belt at the company, asks me "why does software cost so much?"
I can only give the answer Tom DeMarco framed: "Compared to what?"
Software IS expensive. Hideously so. But compared to what?
In 1969 I was 16 and managed to get a job as an electronics technician working on, among other things, Apollo ground support equipment. We built a device that made decisions about what to do with incoming telemetry streams. The thing comprised about 8 cubic feet of maybe 500 small circuit boards, each with a half-dozen or so ICs plus discrete components. These were RTL (resistor-transistor logic) devices. I have no idea what we charged Goddard Space Flight Center for it but am sure it was big bucks.
Today we could replace that with an Arduino, a bit of steering logic, and some code. Maybe a hundred bucks in hardware and probably not much more than a few KB of firmware.
When people stress over the cost of code I commiserate, as it is expensive. But consider this: what would it cost to build something like Microsoft Excel out of gears and levers? It couldn't be done for all of the money in the world.
Or, build an Excel contraption from any kind of analog circuitry you'd like. What would that cost?
Make it easier: you're allowed to use the most sophisticated digital components available, as long as there's no computer involved. (No cheating: you can't implement program counters and the like!). I suspect an Excel simulacrum would be the size of a city. Maybe a small country. The cost would be inconceivable.
Why does software cost so much? Well, we're implementing functionality that was once inconceivable.
In my teenaged years I made money repairing TVs. These typically had 17 vacuum tubes and could receive a handful of channels. Old-timers remember messing with rabbit ears trying to get a signal that wasn't too noisy and fiddling with the UHF tuner to bring in a signal. You would twist the horizontal sweep control to tame the rolling display. In today's dollars these beasts cost thousands. Today you can get a big-screen unit with wifi and more features than a 60s-era person could dream about for a few hundred dollars. The electronics is so much better (with billions of transistors instead of 17 tubes) and is all mediated by software.
Remember old land-line phones? That bulky Ma Bell Bakelite beast with a mechanical ringer and rotary dial. It didn't do much other than make an annoying noise when the hundred-volt alert signal came down the wire and transmit weak electrical signals through an Edison-era carbon mike. What did they cost? No one knows; it was illegal to own a phone in the USA. Ma Bell leased them to us. Maybe $50? But today's $600 smart phone would have been $70 in 1965 dollars, and the latter product's feature set is infinitely richer than the dumb phone of yore. All because software makes those goodies possible… for a reasonable price.
Software is expensive. But think of what a poorer world we'd have without it.
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:
- A 72123 beats per minute heart rate - Is it possible?
- Networking Did Not Start With The IoT! - Despite what the marketing folks claim
- In-Circuit Emulators - Does anyone remember ICEs?
- My GP-8E Computer - About my first (working!) computer
- Humility - On The Death of Expertise and what this means for engineering
- On Checklists - Relying on memory is a fool's errand. Effective people use checklists.
- Why Does Software Cost So Much? - An exploration of this nagging question.
- Is the Future All Linux and Raspberry Pi? - Will we stop slinging bits and diddling registers?
- Will Coronavirus Spell the End of Open Offices - How can we continue to work in these sorts of conditions?
- Problems in Ramping Up Ventilator Production - It's not as easy as some think.
- Lessons from a Failure - what we can learn when a car wash goes wrong.
- Life in the Time of Coronavirus - how are you faring?
- Superintelligence - A review of Nick Bostrom's book on AI.
- A Lack of Forethought - Y2K redux
- How Projects Get Out of Control - Think requirements churn is only for software?
- 2019's Most Important Lesson. The 737 Max disasters should teach us one lesson.
- On Retiring - It's not quite that time, but slowing down makes sense. For me.
- On Discipline - The one thing I think many teams need...
- Data Seems to Have No Value - At least, that's the way people treat it.
- Apollo 11 and Navigation - In 1969 the astronauts used a sextant. Some of us still do.
- Definitions Part 2 - More fun definitions of embedded systems terms.
- Definitions - A list of (funny) definitions of embedded systems terms.
- On Meta-Politics - Where has thoughtful discourse gone?
- Millennials and Tools - It seems that many millennials are unable to fix anything.
- Crappy Tech Journalism - The trade press is suffering from so much cost-cutting that it does a poor job of educating engineers.
- Tech and Us - I worry that our technology is more than our human nature can manage.
- On Cataracts - Cataract surgery isn't as awful as it sounds.
- Can AI Replace Firmware - A thought: instead of writing code, is the future training AIs?
- 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.