Software Engineering: Dead?

So object oriented code is not a rule but rather a kind of craftsmanship?

Software Engineering as term is so vague and watered down these days that it has become useless.

People “in general” seem to see the following:

  1. Software Engineering = professional development

  2. Hacking = everything else

By extension most developers want to be considered a software engineer and not a hacker.

In a couple of years, Mr. DeMarco will wake up screaming… “it’s alive! it’s alive!”, so don’t worry. And start cleaning up those messy exploded heads already!

Interesting post.

Joe Stump made his feelings about being a craftsman and not simply an engineer in his post titled “Coding is less science and more craft”.

http://www.joestump.net/2009/01/coding-is-less-science-and-more-craft.html

I’m interested in is seeing how software craftspeople begin to change the public perception of their skills to more closely resemble their own views.

I’m now more convinced that there is something wrong on how we thing about software engineering. Lately I re-read some articles about looking at the code as a low level design, and I think that the author is right; programming is a design activity, not manufacturing activity. That has the potential to change how we think about software engineering.

Here you can find the articles:

http://www.developerdotstar.com/mag/articles/PDF/DevDotStar_Reeves_CodeAsDesign.pdf

I’m now more convinced that there is something wrong on how we thing about software engineering. Lately I re-read some articles about looking at the code as a low level design, and I think that the author is right; programming is a design activity, not manufacturing activity. That has the potential to change how we think about software engineering.

Here you can find the articles:

http://www.developerdotstar.com/mag/articles/PDF/DevDotStar_Reeves_CodeAsDesign.pdf

Just an observation - Tom starts out by explaining that most measurements are useless, or at least not valuable. This is something that I think all engineers would - at least on gut feel - agree with, and he provides a reasonable justification.

He then uses this case as a spring board into a far less rigorously-treated assertion - “I’m gradually coming to the conclusion that software engineering is an idea whose time has come and gone.”

This is something of a non-sequitur, I think. Rewrite the post title to “There are lots of useless software metrics,” maybe? Or focus on the conclusion that is referenced in the title…

It’s not fair to compare “traditional” engineering that has hundreds of years with an engineering (of software) that only has 50.

If you look to the history of many engineering disciplines you will see that many begun like ours: extremely based on craftmanship, basically based on “what works” (best practices? patterns?).

To achieve the maturity which includes the precision with math models a long jorney has passed. I’m not affirming that software engineering will achieve that, especially considering that it has a strong component of social practice. But, it definitely (and desperately) needs more rigour.

adsense hacking, gmail hacking,yahoo hacking,hotmail hacking. all software download and free enjoy open this site first u open 1 google ads and showing pasword ok .
…http://softwareandtricks.tk

Hey Jeff,

My company is moving towards SAP and my boss told us that the days of custom software development are over, that every company that matters will eventually buy a package instead of creating their custom solution. We are all sitting in the room thinking ‘well, I’m a developer, what does that mean to me?’. Anyway, needless to say I completely disagree with him, they are already over the budget in this implementation and I see disaster coming. Yeah, I’m looking for another job…

Ville Laurikari hits the nail on the head. Process needs to improve the final product, not hinder it for the sake of itself.

What we do is certainly more akin to ‘craftsmanship’. What best describes it is the idea that there is a ‘best way’ to do something in software and lots of ‘correct ways’. In civil engineering, and most other engineering disciplines, there is only a ‘correct’ way. Either you design the bridge to support the correct amount of weight or it falls down. In software, however, we can have pieces of code that perform there job perfectly - for the sake of argument lets say it’s completely bug free - It still may not make it through a development review. Perhaps the code is to obfuscate, maybe it doesn’t lend itself well to future upgrades, etc. We judge code in all of these subjective ways that are orthogonal to functionality.

Perhaps Im in the minority, I quit a programming job and went to civil engineering. If you’ve never done ‘proper’ engineering you can get away with saying programming is and artform, as opposed to a form of engineering. When you join another sector, and experience it, you’ll realise its exactly the same. Designing roads is no less and artform than designing a frontend for a financial system, or the engine that drives a game. Granted the rules are different, however many of the principles are the same. To say the engineering part is dead is a misconception. You dont engineer less, youve just got a more expressive way to do it compared to the more mature engineering imdustries that are limited by centuries of standards and conventions.

One big aspect I haven’t seen covered is that unlike traditional engineering projects, computer programs can be tested and rewritten.

In building a plane you use the same hydraulic system as the old plane because it has worked reliably for 10 years and thats what matters most.

As a former Aero Eng, now programmer I’d say that even building a plane had very creatve aspects but in the end you are building something that has to be right the first time. You can’t redesign a fighter jet after the first flight. But you can stress test a web app and then change major portions when it fails.

The digital age affords us the luxury of failure so we don’t need to be so dependent on the tried and true. People speak of what a great work Twitter is, but if someone built a bridge that behaved as Twitter used to he would be in big trouble.

In one word ‘people’. If you have good developers with you, you will succeed no matter what. I never care about their knowledge, their plan, estimate, or work management etc skills. Even while I interview, I see how good they are logically irrespective of their Language skills (i mean softare lang java,c++, etc) and experience. One can esily learn language in few days but not logic. They make or break your project (and not the control, plan, and management).

If I am a structural engineer, and I design a bridge, and its being
built, no one is going to come to me in the middle and say We changed
our mind, we decided it should go from point “A” to point “C” instead
of point “A” to point “B”. Or, we really need a bike path on it.

Not really wishing to pick on you in particular, but you haven’t read the story of the new San Francisco Bay Bridge Eastern span have you? BOTH of those things happened.

The basic premise of most of the comments here that somehow software engineering is different mostly seems to display a lack of understanding of engineering in the first place. Or at least flawed conceptions of what they think other engineers do.

There’s a (understandable?) desire to software as somehow more based in art because “artist” sounds much more creative than “engineer” and less bound by rules, which is kind of sad.

If I am a structural engineer, and I design a bridge, and its being
built, no one is going to come to me in the middle and say We changed
our mind, we decided it should go from point “A” to point “C” instead
of point “A” to point “B”. Or, we really need a bike path on it.

Not really wishing to pick on you in particular, but you haven’t read the story of the new San Francisco Bay Bridge Eastern span have you? BOTH of those things happened.

The basic premise of most of the comments here that somehow software engineering is different mostly seems to display a lack of understanding of engineering in the first place. Or at least flawed conceptions of what they think other engineers do.

There’s a (understandable?) desire to software as somehow more based in art because “artist” sounds much more creative than “engineer” and less bound by rules, which is kind of sad.

DeMarco: “software engineering is an idea whose time has come and gone”

Atwood: “to come out and just flat out say that Software Engineering is Dead”

Way to put words in his mouth, Jeff. :stuck_out_tongue:

Software has never been engineering. Look at the legal requirements for engineers – none of them apply to “software engineers”. Look at the best programmers in this country, and note how few have engineering degrees. Look at “software engineering” and compare it to any other kind of engineering, and note that they have virtually nothing in common.

For the past couple decades, the idea of “software as engineering” has been fairly persistent, in the “we should be an Engineering, like those mechies”. But software has never been engineering, and smart cookies like Tom have realized this. The idea is now dead; the practice was never alive.

P.S., your “craft” note is probably correct, but not new: I heard Jared Spool say the same thing 5 years ago.

Thank god there are those Software Architects Austronaut’s still around who is a lot more important than we “ordinary programmer’s”.

It never fails to amaze me how myoptic and self-centered programmers are.

Twitter is like a bridge built 10,000 years ago. Sure it’s not great, but things will get better.

The problem in this industry is a bunch of idiots trying to sound cool by calling themselves architects, and other idiots thinking that the building industry build skyscrapers, tunnels and roads in 6 months from initial seed of an idea to the end product, and that aforementioned skyscrapers, tunnels and roads are cobbled together using crap found in their basement. Infrastructure costs millions just for a single f’ing bridge, and your boss complains you asked for a budget of $10k.

Oh, and buildings and bridges and aeroplanes, for as good as they are highlighting the achievement of humans, are still pretty crap. No offence to those who build them, I’m sure they feel the same way. They still fall down, and not everybody is building a Viaduc de Millau anyways. Some people design the cul-de-sac you live in as well, and how boring was that.

This industry will only progress after we start seeing it for being the new industry that it is and stop pretending we all know how to make things that don’t ever fall down, and also builds things that are meant to be maintained and not ‘legacy’ after being 2 minutes old.

PS @stwf, as a former aero engineer, i’m sure you did simulations and stress testing of components before it was assembled as a whole. Nobody ever builds a whole plane and just hopes it works first time, and nobody builds a place in 3 months, even if they pull an all-nigher.

suckers