Go here to sign up for The Embedded Muse.
The Embedded Muse Logo The Embedded Muse
Issue Number 395, April 6, 2020
Copyright 2020 The Ganssle Group

Editor: Jack Ganssle, jack@ganssle.com

   Jack Ganssle, Editor of The Embedded Muse

You may redistribute this newsletter for non-commercial purposes. For commercial use contact jack@ganssle.com. To subscribe or unsubscribe go here or drop Jack an email.

Contents
Editor's Notes

Express Logic

It has been two years since my last salary survey. Follow this link to take the 2020 version (it's only a dozen questions), which also has a question probing your work in these coronavirus times. I'll publish the results in the next issue. Three copies of The Art of Designing Embedded Systems will be awarded to three randomly-selected participants.

CIS has created a non-profit initiative to help companies who are developing ventilators for the coronavirus crisis. It is for companies wishing to find engineering help and engineers wishing to provide their services free of charge. More info here.

Also in the Coronavirus vein, here's an article with suggestions about working from home.

I received a lot of replies to my thoughts last issue about the IEEE. With only a single exception all complained that the organization offers little for practicing engineers other than Spectrum. One interesting thought was that the standards are developed by committees of volunteers, yet the IEEE sells them for inflated prices. Many, though, feel the life insurance program is a good deal.

Jack's latest blog: Life in the Time of Coronavirus

Quotes and Thoughts

"The process broke down in many areas," says NASA's spaceflight chief Douglas Loverro. "We don't know how many software errors we have. We don't know if we have just two or we have many hundred." From Aviation Week and Space Technology, about Boeing's Starliner capsule meant to ferry astronauts.

The same article claims the system comprises about one million lines of code. Given that best-in-class companies ship code with about one error per thousand lines of code, it wouldn't surprise me if the Starliner has hundreds or thousands of latent bugs.

Tools and Tips

SEGGER SystemView analyzing embedded systems

Please submit clever ideas or thoughts about tools, techniques and resources you love or hate. Here are the tool reviews submitted in the past.

Freebies and Discounts

This month's giveaway is a BBC Micro:bit Go Bundle.

Enter via this link.

Response to the Joel Test

In response to last issue's article about Joel's rules for evaluating a software team Rob Aberg wrote:

Here are a few candidates for changes and additions to Joel's list, mostly updates for trends, plus a few practices for certification-bound or larger codebases:

1. (change) Do you use source control with automerge?
3. (change) Do you automate build and test using an automated CI system?  (e.g., Jenkins, Travis, CircleCI, et al, for regression, MC/DC coverage, static analysis, etc.) 
5. (change) Do you have written coding standards?  (refactor or bug fix / bug load before new features, test coverage, performance, etc.)
7. (change) Do you have a spec based on objective requirements?
[...]
13. Do you employ automated testing? (e.g., on CI servers, type examples: reqts-based regression tests, MC/DC coverage, static analysis, etc.)
14.. Do you employ systematic code reviews using a tool that archives results?  (e.g., Review Board)
15. (depends on new-3) Do you have an automated dashboard site for your build/test results that summarizes bug levels, coding standards, and milestones for planned work, updated automatically with output from your CI tool? (many options, usually customized)
16. Do you have architecture standards and an arch review forum/body? (e.g., component & interface policies)

Reuse

In Enabling Reuse-Based Software Development of Large-Scale Systems by Richard Selby the author looks at reuse in 25 systems comprising 2954 modules at NASA. Some interesting factoids pop out:

Unsurprisingly, error rates are somewhat inversely proportional to amount of reuse. "Slight revision" means under 25% modifications, "Major revision" is more than 25%. The curve would have been much more interesting if more divisions of reuse were sampled:

Bug rate versus reuse

In another study of the same modules by the same author (Empirically Analyzing Software Reuse in a Production Environment) the cost savings from reuse were analyzed:

Reuse time savings

This graph has long fascinated me as it blows away our usual thinking that there's an inversely-linear relationship between reuse and development cost. Instead, it seems that once one changes around 20% of the code the cost savings from reuse rapidly diminish.

An interesting additional tidbit from this code base: the median and mean of the number of comments per 100 source lines was virtually the same at 57. Other data I have for a study of comments at NSA found that their very best code averages 60 comments per 100 lines of code, and avionics code certified to the exacting DO-178 standard averages 70 comments per non-blank source line. (Comments can be either a line which is a comment, or a line of code that also contains a comment).

Temperature Anomalies

Though it's a few days past April Fool's Day, here are a few fun pictures from my collection of software errors resulting is absurd temperature displays:

The moral: well, it's the same I was taught 50 years ago: Check your goesints and goesoutas. Oh, and wash your hands!

This Week's Cool Product

Xilinix has come up with some pretty cool ways to package chips. Max Maxfield explains.

Note: This section is about something I personally find cool, interesting or important and want to pass along to readers. It is not influenced by vendors.

Jobs!

Let me know if you’re hiring embedded engineers. No recruiters please, and I reserve the right to edit ads to fit the format and intent of this newsletter. Please keep it to 100 words. There is no charge for a job ad.

Joke For The Week

These jokes are archived here.

From Dejan Durdenic:

Due to Coronavirus, all TCP applications are being converted to UDP to avoid handshake.

About The Embedded Muse

The Embedded Muse is Jack Ganssle's newsletter. Send complaints, comments, and contributions to me at jack@ganssle.com.

The Embedded Muse is supported by The Ganssle Group, whose mission is to help embedded folks get better products to market faster.