Engineering, Craft or What?

Patrick Logan writes about the debate regarding whether software development is a craft or engineering. He has an interesting spin in that what makes software seem "craft-like" is the informalities.

I think the "informality" of software makes it feel craft-like. If only we had more formalisms. Could be, but we'll always have "informalities". Every engineering effort, and every creative effort in general, involves many informal conversations.

The difference is perhaps software depends more on informal conversations than do many of the traditional engineering disciplines. The requirements in those disciplines are more formal. Most of software development is really requirements development. The interpretation of formal requirements is most easily expressed in software as tests and code that (correctly one hopes) runs those tests.

Ultimately Patrick says that communications is the key and that failed is a result of failed communication not lack of formalism.

Which still begs the question for me - what is it that we, the software development discipline, are envious of from the "other" engineering disciplines?

Published Tuesday, February 22, 2005 12:45 PM by iclemartin
Filed under:

Comments

# re: Engineering, Craft or What?

I think there is an "Art and Craft" aspect to software and IMHO thats part of the attraction to it....

sure if we were just punching out standard bits you can get fairly cut-and-dry with that.

but when you need to build a system for real people to use you *HAVE TO* be able to step into the realm of Art and Craft and things like use of Color, screen layout and a number of other things that are hard to give sharp definitions for.... you can have general rules and guides but at some point you have to focus on who the user is and what will work best for that user / group / environment.

Tuesday, February 22, 2005 4:04 PM by denny

# re: Engineering, Craft or What?

True, that the craftiness appeals to many developers.

But what is an example of cut and dry standard bits?

Developing TV's? Cars? There is a craftiness to each of these. But less so. And that is where the communication comes into play with the many more informalities. And it is not just color or layout... it's also "What does a user want to do with this purchase order?" There are formal things to do with it, but also informal.

I think software is informal all the way down to the bits on the wire. Only then does it become informal. TV's and cars stay pretty much the same with inflection points here and there (e.g. Tivo, HDTV's, hybrid cars).

Tuesday, February 22, 2005 4:44 PM by Patrick Logan

# re: Engineering, Craft or What?

Not sure I agree with your comparison. How is developing a TV different than developing software? They are both soft skills that require domain knowledge and user/customer input. Both have constraints of costs, infrastructure, market demands, etc. You can choose to be as formal or informal as you want for either product.

Tuesday, February 22, 2005 5:03 PM by Wayne Allen

# re: Engineering, Craft or What?

> what is it that we, the software development discipline, are envious of from the "other" engineering disciplines?

The fact that other engineering disciplines are based on physics instead of "a bunch of stuff some random guy decided was a good idea"?

God didn't create x86.

Wednesday, February 23, 2005 3:32 PM by Jeff Atwood

# re: Engineering, Craft or What?

>The fact that other engineering disciplines are based on physics...

Physics is no more than thinking of a good idea and then doing experiments to see if you are wrong. How is that different than software?

Wednesday, February 23, 2005 3:45 PM by Wayne Allen

# re: Engineering, Craft or What?

Physics hasn't changed in the last bajillion years. How would building architects react if gravity changed every ten years? Or the fundamental properties of building materials were radically redesigned every five years?

And yet that's exactly what happens in software. I suppose it's the price of playing God in those little Universe Boxes on our desks.

Sunday, February 27, 2005 9:15 PM by Jeff Atwood

# re: Engineering, Craft or What?

>And yet that's exactly what happens in software.

Still I have to disagree. The fundamentals of the Turing Machine haven't changed since 1937. If you mean things like language syntax, frameworks and the like - then sure things have changed. But have you looked at the amount of new products comming out of materials science? Even "basic" things like framing materials are undergoing constant change.

Monday, February 28, 2005 11:49 AM by Wayne Allen

Leave a Comment

(required) 
(required) 
(optional)
(required)