A lot of really important work was done at SEL and they kept meticulous records on how they did the work and what worked for them.
The old-school, pre-Agile Manifesto stuff isn't a perfect match for how most teams like to work today, but it's still full of wisdom and deep knowledge. A lot of it grew out of aerospace and defence projects, which is why there is such a heavy emphasis on planning and control to cope with complexity. These days the SEI is probably the home of that strand of software engineering thought.
This is good stuff. I was wondering, does any one know about similar standards for system design and implementation?
I would be interested in seeing MIL standards or NASA best practices related to infrastructure (telecom, data, etc) design and implementation management.
The problem with most template sets is that they make the user still do a ton of work. Not just understanding the details of their own project, but a ton of writing work. And, to be honest, a lot of tech people don't like to write or always write well. Also, some templates just replace one big blank page with lots of smaller blanks, which can still stump you when it comes time to write.
A few years ago I attempted to solve the problem by creating ReadySET Pro. It's a different kind of template set that is faster/more agile to use. People who have used it say that it is like taking a multiple-choice test instead of an essay exam, so no stumpers. That's because I spent a year writing high-quality project document text that you can reuse and tweak to fit your project. It's almost feels like cheating. You can get four free templates at readysetpro.com.
They are a bit heavy handed on "thou shalt not" - but if you use them as guide - and really think if breaking a rule is worth it in a specific case - they are good conservative practice.
Conservative can also mean use #define, macros and casts rather than those new fangled templates ;-)
IIRC the guidelines are a reasonable compromise between recommending new 'safe' but relatively unfamiliar and tricky constructs - and sensible advice to avoid #define and macros.
There are often other constraints in real time and safety critical systems - like avoiding allocations and exceptions. But these docs aren't specific avionics rules, there is an awful lot of code in a project like this that never gets onboard the airframe.
Manager's Handbook for Software Development: http://homepages.inf.ed.ac.uk/dts/pm/Papers/nasa-manage.pdf
Recommended Approach for Software Development: http://homepages.inf.ed.ac.uk/dts/pm/Papers/nasa-approach.pd...
A lot of really important work was done at SEL and they kept meticulous records on how they did the work and what worked for them.
The old-school, pre-Agile Manifesto stuff isn't a perfect match for how most teams like to work today, but it's still full of wisdom and deep knowledge. A lot of it grew out of aerospace and defence projects, which is why there is such a heavy emphasis on planning and control to cope with complexity. These days the SEI is probably the home of that strand of software engineering thought.