Physical Design Versus Software Design

So, I accidentally insulted worthy people with my comment yesterday about software engineers not actually being engineers in my opinion. First, I apologize. I wasn’t trying to say one profession was better than another but that’s obviously how it came across; I have a long-standing belief that I should only insult people who I think should be made to feel worse about themselves, which was not the case here. I’m sorry.

I do believe there’s an important distinction to be made between traditional engineering design (in chronological order of development of the modern disciplines: civil, structural, mechanical, electrical, and chemical engineering before 1900, with nuclear and other branches following later) and software design. Yesterday, I described engineering (in my second try) as manipulation of the non-biological physical world. The magic word in this discussion is “design”, which despite being at the core of several professions – engineering being the one I’m discussing – is not well understood.

To use my work as an example, I had to design an addition to a rowhouse today. As is usually true, there were a number of possible solutions to the problems that the architectural design (!) posed for me. Some of those solutions don’t meet code and are therefore not allowed even if I believe them to be safe in this case, some are much more expensive than others, some are literally unbuildable. I winnow down the list until I have a few possible solutions left (since I’ve done this kind of project several hundred times, that process takes about ten minutes) and then I look at the numbers. How big will the beams be if I use possible solution A? Solution B?

There is no question that personal biases – what in architectural design might be called a personal style – play a role in how I decide which solution I will use. However (HERE COMES THE  REAL ARGUMENT) the difference between a successful solution and an unsuccessful one is determined in large part by nature, by aspects of reality outside of my control. Gravity’s acceleration, the density of concrete, the weight of snow on a roof, the elastic modulus of steel, and so on ad infinitum, are things that no one can control and that figure very large in the analysis portion of my design. Any of the engineering disciplines I mentioned above has its own set of natural constraints that play such a large role in design that they could be said to drive it.

This is where I may accidentally insult software designers again: I don’t see that constraint in software design. When I said that there were only economic consequences to failure in software, I didn’t mean in operation. Software controls a lot of machinery that can kill a lot of people if it’s wrong, as was pointed out by several patient commenters. But those consequences are in the physical world, not in the software. A badly-written piece of software (say, Windows Me) will crash and cost someone their work since last saving, but the crash is not due to real-world constraints. The crash was caused by internal inconsistencies.

Failure of a structure is caused by insufficient strength to withstand an external force. I can, and do, make the argument that a given building that cannot be analyzed (say, because its structure is hidden by finishes that cannot be removed) is safe because I have a load history and a record of performance of that structure. In other words, I have empirical evidence of how it responds to real-world input. Unless I really am missing the point, software cannot be analyzed in this manner because it’s not part of the physical world: because the performance of software is determined by its internal workings and not by its interaction with the outside world, how it performed yesterday does not predict how it will perform tomorrow. Hence my belief that software design is not engineering: I’ve defined engineering as dealing with the physical world. Software is no less important to our lives today, but it’s a different thing. I think.

ON EDIT: Maybe an example would help. The software that connects the controls of a real flight simulator to the hydraulics that move it is nearly identical to the software that connects the controls of the same model plane to its control surfaces. The physical-world stuff is quite different, but since the software does not directly deal withe the physical world, it doesn’t matter.

Digithead Women

Engineers live up to some of the stereotypes about us. Sometimes they seem to revel in it. I’ve worked with engineers who were racist, sexist, xenophobic, and incapable of n0n-linear thought…and damned proud of all of it.*

Sexism is arguably the most pernicious of the engineer stereotypes. A lot of engineers are willing to say amazingly stupid things about the role of women in their profession and in society. This discussion has barely advanced from “girls’ hair would get caught in machinery if we let them in”. When I was an undergrad at an old and storied engineering school, women were roughly 20% of my class. 25 years later, it’s about 24%.

If I start from the basis that intelligence and a willingness to work hard are gender-neutral traits – an assumption based on a great deal of empirical evidence and a great deal of scientific research – then I quickly reach the conclusion that there’s no reason to make gender-based assumptions about engineers. If I do something much easier and look at the various people I’ve worked with for the past 25 years, I come to the conclusion that women are over-represented among the better engineers. There may well be social reasons for this: it is possible that engineering as a career is a step up for a lot of women, while it is seen as a low-class trade by a lot of men.**

We’re hiring right now, looking for a young engineer with up to four or so years of experience. I’ve read about sixty resumes, most of which were depressing: people not qualified for the position or with more experience than me. Of the four that we have set aside as possible interviews, three are women and three are non-white. Maybe our small company isn’t appealing to white male engineers. Maybe a medium-status, medium-wage, high-pressure profession isn’t appealing to white males. Or if I wanted to use the logic of the bigots, I could argue that the resumes are proof that white males are less qualified, but somehow I don’t think argument would fly.

*I am excluding “software engineers” – who usually have degrees in computer science – from this discussion because (1) I don’t know any personally, (2) I don’t consider them to be engineers because there is usually no non-economic cost to a failure of one of their designs, (3) given the actions of their lunatic fringe on various internet forums I have frequented, they are beyond parody.

**This is a US phenomenon. Engineers seem to get somewhat more respect elsewhere.

Why Not?

When The Levee Breaks:

And, at 9:29AM, we’re in the eye and the sun is shining.

Update, 9:48AM: Con Ed power outage map for the city.

Update 11:17AM: No rain, but the wind has really picked up. To repeat something I said in the comments, areas with hard-rock streams north and west of the city are getting real flooding from the rain. B^4 emailed me some pictures that don’t look fun.

Update 11:49AM: It’s windy but actually quite clear below the low clouds:

And, from a friend in England: “Startling insight from the BBC’s on-the-spot Laura Trevelyan: ‘You can see why the mayor made the New York subway system shut down, because the subway system is right below the ground level in New York.’  Guess that’s the kind of dead-eye analytical shrewdness that made the beeb what it is today.”

Update 1:50PM: Still windy, still cloudy, no rain. I’m listening to Mayor Mike’s latest press conference, and it occurs to me that he believes in, and is making the argument for, comprehensive government services. The various city agencies involved, the Office of Emergency Management, and state agencies (like the MTA) have planned for problems, were expected to be present and act professionally, and did their jobs. Evacuation was largely handled by public transit to publicly-provided shelters.

Fuck the invisible hand and privatization.

Nothing Much

As of 5:07AM, the wind and rain have not been particularly bad in NYC. High tide is in three hours, so we’ll see if the storm surge causes any real flooding. So far, 1.93″ of rain and wind speeds in the 20 to 30MPH range. There are apparently 20,000 people without power in the city and another 80,000 in the nearby burbs, but we get that from ordinary storms, such as the 12/26/10 blizzard.

Update 7:59AM: White out from rain, 69F, 2.35″ of rain, wind supposedly gusting to 40 MPH, but between is much lower. Tornado watch has been canceled for the city.

Update 8:48AM: White out:

Update 9:08AM: The eye has been reported coming ashore (at tropical storm strength) at Coney Island, heading NNE at 20 MPH. That means the eye wall, if it still exists as such, should get here in less than 20 minutes.

Update 9:25AM: The eye’s here. The sky has brightened up and the wind’s down.

Stew’s Gone

Rain, and a picture of nothing:

Update 9:07PM: 74F, wind at 18 MPH.

Update 9:54PM: 73F, 20 MPH. My god this is boring. Where’s the hurricalypse?

Update 10:03PM: First lightning of the night. Given that I’m in a  500-foot PENIS building with nothing remotely as tall nearby, I expect we’ll get hit tonight.

Update 10:52PM: Live video of rain.

Update 11:04PM: For comparison, 0.87″ of rain in the last 24 hours. We get ordinary storms that drop 1 to 1-1/2 inches. Obviously the next 24 hours will be worse, but so far, nothing to talk about.