Click here to go to the on-line version
| ||||
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 | ||||
Tip for sending me email: My email filters are super aggressive and I no longer look at the spam mailbox. If you include the phrase "embedded" in the subject line your email will wend its weighty way to me. |
||||
Quotes and Thoughts | ||||
"Time pressure is probably the foremost reason behind the emergence of bulky software. The time pressure that designers endure discourages careful planning. It also discourages improving acceptable solutions; instead, it encourages quickly conceived software additions and corrections. Time pressure gradually corrupts an engineer’s standard of quality and perfection. It has a detrimental effect on people as well as products." Niklaus Wirth |
||||
Tools and Tips | ||||
Please submit clever ideas or thoughts about tools, techniques and resources you love or hate. Here are the tool reviews submitted in the past. I'll be speaking at the upcoming Embedded Online Conference. Muse readers can use promo code GANSSLE24 to get a $200 discount if used by February 15, and a $100 discount if used after Feb. 15 and before March 31st. Phil Koopman has an interesting article about the problems with test as a way to insure correctness. Recommended. Filip Kubicz wrote:
Several people wrote with the sad news that Niklaus Wirth has died. Chuck Chester sent this - apparently he was an embedded guy as well as a CS pioneer. One of his creations was ALGOL, which infuriated a lot of people, but it was the first structured language I used, and I found it more satisfying than the FORTRAN we were required to use at the University of Maryland. Engald's GCHQ has released some never-seen-before pictures of the Colossus, a WWII code-breaking machine that is thought to be the first real electronic digital computer. There's even a fragment of the schematic. You won't find a single transistor in this baby, as those were still several years in the future when it was designed. |
||||
Dysfunctional Teams | ||||
A reader who wishes to be anonymous poses an interesting question:
Any advice? |
||||
More on Branchless Programming | ||||
Some comments on branchless programming garnered more dialog. Charles Manning wrote:
Jonathan Harston commented:
|
||||
Metrics | ||||
I'm amazed at how few teams do any measurements, suggesting few have any idea if they are improving or getting worse. Or if their efforts are world class, or constitute professional malpractice. Two of the easiest and most important metrics are defect potential and defect removal efficiency. Capers Jones, one of the more prolific, and certainly one of the most important, researchers in software engineering pioneered these measurements. Defect potential is the total number of bugs found during development (tracked after the compiler gives a clean compile; ignore the syntax errors it finds) and for the first 90 days after shipping. Every bug reported, every mistake corrected in the code, counts. Sum this even for those that Joe fixes while he is buried in the IDE doing unit tests. No names need be tracked; this is all about the code, not the personalities. Defect removal efficiency is simply the percentage of those removed prior to shipping. One would hope for 100% but few achieve that. These two metrics are then used to do root cause analysis: why did a bug get shipped? What process can we change so it doesn't happen again? How can we tune the bug filters to be more effective? Doing this well typically leads to a 10x reduction in shipped bugs over time. Here's some data from a client I worked with:
Over the course of seven quarters they reduced the number of shipped bugs by better than an order of magnitude by doing this root cause analysis. What are common defect potentials? They are all over the map. Malpractice is when we ship 50 bugs/1000 lines of code (KLOC). 1/KLOC is routinely achieved by disciplined teams, and 0.1/KLOC by world-class outfits. According to data Capers Jones shared with me, software in general has a defect removal efficiency of 87%. Firmware scores a hugely better 94%. We embedded people do an amazingly good job. But given that defect injection rates run 5-10%, at a million LOC 94% means we're shipping with over 3000 bugs. What are your numbers? Do you track this, or anything? |
||||
Failure of the Week | ||||
Max Proskauer sent this:
And this is from Brett Garberman:
Have you submitted a Failure of the Week? I'm getting a ton of these and yours was added to the queue. |
||||
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 Charlie Moher: How was copper wire invented ? Two Scotsman fighting over a penny. |
||||
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. |
Click here to unsubscribe from the Embedded Muse, or drop Jack an email.