Boston Linux & Unix (BLU) Home | Calendar | Mail Lists | List Archives | Desktop SIG | Hardware Hacking SIG
Wiki | Flickr | PicasaWeb | Video | Maps & Directions | Installfests | Keysignings
Linux Cafe | Meeting Notes | Linux Links | Bling | About BLU

BLU Discuss list archive


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss] Software Engineering redux



Daniel C. wrote:
> What I am curious about is what a standard in software engineering
> would look like... 
> 
> On a more general level, what would the goals of such a standard be?
> 
> Obviously "writing programs that don't kill people" is one of them,
> but what else?

Actually, it wouldn't, but more on that below.


markw at mohawksoft.com wrote:
> Then there is a lack of consensus about what such a certification would
> look like. Would it be based on Unix, Windows? C,C++, Java, Perl, Python?
> Would it be very abstract, favoring no existing technology?

Yes, abstract in the sense of going up a layer from the language.
Concentrating on design, architecture, and good "coding hygiene."

One could envision a "fundamentals of software engineering"
certification that covered general concepts such as code reuse,
readability, - heck, even something as basic as avoiding convoluted
logic would be a good baseline.

That's not to say this wouldn't still be controversial and take decades
to reach an industry consensus. Do you include design patterns? Which
ones? Test Driven Development? Agile practices? And then there will be a
ton of areas where some fundamentals are either impossible to implement
or in conflict with (the philosophy) of some languages. (For example,
there are lots of design patterns that become irrelevant once you move
from lower-layer languages like C++ and Java to higher order languages
like Perl.)


> If it were too abstract, how could it be anything but valueless?

Think how much easier our lives would be if every time we ran across
some piece of legacy code, the developer had *at least* the above
fundamentals.

There would still be plenty of room for someone with a Professional
Software Engineer (PSE) cert to write back code.


Daniel C. wrote:
> ...avionics systems in aircraft...
> We might eventually want to take a look at the process used to develop
> these systems and think about whether those practices could be
> generalized to other areas of software development.

I'm just regurgitating an argument I've ran across several times, and
agree with, which is that the vast majority of software doesn't need
this rigor, and applying it will impose unnecessary costs with little
benefit. The Agile principles of implementing only what provides value
to the customer is effective and efficient. It does not, however,
provide an excuse for not using a good architecture.

That's not to say there wouldn't be value to a separate certification
for "life-critical software engineering" for those working in fields
where that is applicable.

 -Tom

-- 
Tom Metro
Venture Logic, Newton, MA, USA
"Enterprise solutions through open source."
Professional Profile: http://tmetro.venturelogic.com/



BLU is a member of BostonUserGroups
BLU is a member of BostonUserGroups
We also thank MIT for the use of their facilities.

Valid HTML 4.01! Valid CSS!



Boston Linux & Unix / webmaster@blu.org