Break Points

97 Things Every Programmer Should Know

Jack Ganssle

9/7/2009 3:24 PM EDT

In an attempt to codify a knowledge base for developers, long ago the IEEE created the SWEBOK - the Software Engineering Body of Knowledge - which is being revised for 2010. There's a lot to like about their efforts to bring so much information in to a single package, but SWEBOK strikes me as more of a review document than an encyclopedia.

Now the folks at O'Reilly are soliciting contributions for their own version of a fundamental body of knowledge for software folks, titled "97 Things Every Programmer Should Know" (click here to read the Introduction and here for their List of 97 Things).

As I write this, 88 of the eventual 97 have been edited and posted. O'Reilly's rules are far less organized and considerably more ad hoc than the SWEBOK, but quite a bit more fun.

Some of the rules are, to embedded people at least, truly trite. For instance, one submissions encourages programmer to "consider the hardware." In the bloatware world of PCs this is indeed good advice, but to those of us cramming five pounds of specs into 1K of flash, this is like saying "turn on the computer before firing up the IDE." (In fairness, the posting concludes with a tip o' the hat to embedded people.)

Some are interestingly philosophical, and equally appealing. "Do lots of deliberate practice" advises actively stretching ones bounds, all of the time.

Others are frustrating short on details. "Improved testability leads to better design" is a great idea! But the suggestions lack depth. "Hard work does not pay off" makes a great point, but how does one sell the idea to panicked management whose heads are ready to explode since the project is already six months late?

But there are a lot of great aphorisms. "The boy scout rule" suggests always leaving the code cleaner than when you started working on it. "The professional programmer" advocates acting as true professionals that take responsibility for their work.

The list is interesting, infuriating, thoughtful, incomplete, full of spurious thoughts but fun. It's worth a gander.

(Editor's Note:. Jack's Embedded Poll Question this week: Is a single body of software know-how needed? To participate go to the Embedded.com Home Page.)

Jack G. Ganssle is a lecturer and consultant on embedded development issues. He conducts seminars on embedded systems and helps companies with their embedded challenges. Contact him at jack@ganssle.com. His website is www.ganssle.com.





robert.berger

9/8/2009 2:44 AM EDT

Hi,

There are many software developers, but if you look at the job market you can see that only a small fraction is doing embedded work. Our skills need to be somewhat different from the "regular" software engineer and there's just as few of us. So I seriously doubt that a generic software body of knowledge will come even close to our needs. We need to write our own "EMBEDDED software body of knowledge" since no one knows our needs better! (and this will contain also some hardware and system aspects I guess)

Regards,

Robert

--
Robert Berger
Embedded Software Specialist

Reliable Embedded Systems
Consulting Training Engineering
Tel.: (+30) 697 593 3428
Fax.:(+30) 210 684 7881
URL: http://www.reliableembeddedsystems.com

Sign in to Reply



Lundin

9/8/2009 2:59 AM EDT

MISRA C / MISRA C++ is a good start. In my opinion every embedded program should implement those rules, as their main concern is writing bug-free, portable code.

Sign in to Reply




milamber

9/9/2009 6:29 PM EDT

michaelsmith0004 hyperlink is spam

michaelsmith0004 and link deleted by.: ESD editorial staff: SRambo on Oct 15, 2009 2:13 PM

Sign in to Reply



David_Giles

9/10/2009 7:07 AM EDT

Embedded firmware quaility is significantly more important than PC based software quaility as its used in a lot of real world applications such as actuators for aircraft and airbags for cars etc. Software that misbehaves in these applications can result is death or serious injury. You can however take practicle steps to achieving zero defects, by using due process and adopting standards and proceedures. Two seminars on this very topic are being run by Hitex next month, one in Coventry and one in Gravesend. More details on the topic are on the link.
www.hitex.co.uk/seminar

Sign in to Reply



dong123

10/7/2009 11:37 PM EDT

This article is very helpful for me.
I am a newbie software engineer and I want to be professional in this area.

Jitkasem.
Software engineer.
Email : admin@embedsoftdev.com
Website : http://embedsoftdev.com

Sign in to Reply



Please sign in to post comment

Navigate to related information

Datasheets.com Parts Search

185 million searchable parts
(please enter a part number or hit search to begin)
Jobs sponsored by

Feedback Form