Treating people like adults

James Marcus Bach recalls the following from his seventh grade orientation.

At one point the grumpy man said, “We consider you to be young adults now, and we expect you to behave as such.” … No one would say that unless the opposite was true. I had a terrible sinking feeling.

If someone told me that he considered me an adult, I’d be dumbfounded. Of course I’m an adult. Why tell me that? We only say such a thing to manipulate children. Most children, however, do not catch the irony as Bach did.

Engineering in the open

From Herbert Hoover, mining engineer and 31st President of the United States:

The great liability of the engineer compared to men of other professions is that his works are out in the open where all can see them. His acts, step by step, are in hard substance. He cannot bury his mistakes in the grave like the doctors. He cannot argue them into thin air or blame the judge like the lawyers. He cannot, like the architects, cover his failures with trees and vines. He cannot, like the politicians, screen his short-comings by blaming his opponents and hope the people will forget. The engineer simply cannot deny he did it. If his works do not work, he is damned.

Herbert Hoover photo

More engineering posts

Abstractions are never perfect

Better to have a simple system than a complex system with a simple abstraction on top.

Abstractions are never perfect. Every new layer creates failure points, interoperability hassles, and scalability problems. New tools can hide complexity, but they can’t justify it … The more complex the system, the more difficult it is to fix when something goes wrong.

From the preface to RESTful Web Services.

Related posts

Creativity and faith

From Eugene Peterson:

Creativity is difficult. When you are being creative, you’re living by faith. You don’t know what’s next because the created, by definition, is what’s never been before. So you’re living at the edge of something in which you’re not very confident. You might fail: in fact, you almost certainly will fail a good part of the time. All the creative persons I know throw away most of the stuff they do.

Related posts

Three quotes on software development

Here are three quotes on software development I ran across yesterday.

From Douglas Crockford, author of JavaScript, The Good Parts:

Just because something is a standard it doesn’t mean it’s the right choice for every application (e.g. XML).

From Yukihiro Matsumoto, creator of Ruby:

An open source project is like a shark. It must keep moving, or it will die.

From Roger Sessions, CTO of ObjectWatch:

A good IT architecture is made up largely of agreements to disagree. … Bad architectures and good both contain disagreements, but the bad architectures lack agreements on how to do so.

I once worked on a project that had a proprietary file format that became more sophisticated over time until it resembled a primitive relational database. After that I resolved to use standard technologies as much as possible. I think others have had the same experience and overreacted, using standard technologies even when they are overkill. Crockford’s comment is a reminder to moderate one’s zeal for standards. Moderation in all things.

I would add to Matsumoto’s comment that it’s not only open source projects that need to keep moving or die, though they may have an extra need for movement to maintain credibility. (Update: See this post on how  software, networks, and storage all have to keep moving to survive.)

The way I understand Sessions’ comment is that good architecture focuses on high level agreement rather than low-level conformity. “Let’s rewrite all our code in Java” is not a good software architecture. Or one that I hear more often “Let’s move everything to Oracle.” Such low-level standardization does not guarantee a coherently organized system. Whether subsystems use the same implementation technologies is not as important as whether there is a good strategy for making the pieces fit together.

Related posts