The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

Well, I am AA (Architecture Astronaut)...

Well, I am AA (Architecture Astronaut)
I like, before write first line of code, to think about classes, it's proper names, methods...


My first education was mechanical engineer.
And I think, architecture it's not (and most not) a classes.
Before writing a program, programmer must think about some important key-features: algorithms, methods, classes...
Just like it did an engineer, when do a building or a ship.
When he chose a material for a building or proper engine for a ship.

I think it's very pity that modern programmers not think himself as an engineers.
Aku-Aku Send private email
Monday, July 23, 2007
>I think it's very pity that modern programmers not think
>himself as an engineers.

I'm not sure what gave you that idea. We very much DO consider ourselves to be engineers.
Monday, July 23, 2007
I think its because the "new school" are all into this Agile stuff, and think that coming up with classes beforehand is a waste of time and reduces the effectiveness of the code.
The Ruby Warlock
Monday, July 23, 2007
> I think its because the "new school" are all into this
> Agile stuff

If you think "agile" is code for "skip design and cut other corners", you haven't really explored it.
Monday, July 23, 2007
this troll has no comprehension of the subtleties of AA or agile -- just going on what the words sound like.
Monday, July 23, 2007
I tell it from my own experience

That may be so short and inapplicable

I see how it is in my place.
At the companes, that worked in outsourcing sphere
Aku-Aku Send private email
Monday, July 23, 2007
Aku Aku, no offense intended but I'm assuming based on your language skills that you really don't have much experience seeing how software engineering is conducted in many places.

For example, in the aviation industry, there's a commonly quoted joke that the planes are not allowed to fly until the paperwork weighs more than the plane. That paperwork includes extremely detailed descriptions of classes and methods. Every line of code comes with a paragraph describing what it does, why it does the thing it does, what are the allowed inputs, what are the expected outputs, and what are the error conditions. And before any of this can be used, it has to be reviewed and signed off on.

The jobs that tend to be outsourced are the jobs that don't require an engineering level of rigor. If I ask you to write a billing system, I don't care if I loose a few pennies each year due to your mistakes; fixing that bug would cost more than I'd gain. If I ask you to write flight control systems for an airplane, being off by a meter will cause the plane to crash and that's a mistake I can't afford so I would demand more effort from you.

Software is unusual because it is not an "all or nothing" endeavor, you're allowed to compromise depending on the risks involved. You can't compromise when you build a bridge however.
Monday, July 23, 2007
"I think it's very pity that modern programmers not think himself as an engineers."

They do, that's why we call it "Software Engineering."
Monday, July 23, 2007
"They do, that's why we call it "Software Engineering." "

With a (very) few exceptions, that phrase should be in the dictionary under oxymoron.
Monday, July 23, 2007
One could argue that one of the big problems with software engineering is that there were too many conventional engineers involved in its early stages.

Engineers building an airplane certainly do have a lot of incentive to think about everything up front. As TheDavid pointed out, the reasons for this might not apply to software.

In software we CAN get a trial version out quickly. We CAN adapt a design as we learn about the market. We CAN and MUST be able to change our products to adapt to new requirements, sometimes radically new requirements.

As for agile, if Japanese engineers can beat the pants off of American engineers by avoiding irreversible decisions for as long as is responsible, I fail to see why software developers shouldn't take notice of this and learn from it.
Tuesday, July 24, 2007

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz