Moderation in All Things…

… even moderation.

One of the hardest lessons I ever had to learn in my life – one I still struggle with daily, is that of realizing that usually, “Good enough” is just that. Good Enough.

The problem of course lies in part that – at least in simple programs and math problems – there is no fuzzy “it works.” Things are either correct, or not. As a child playing with the family printer, sending the correct sequence of bytes to a dot-matrix printer resulted in a pretty graphic. Sending another sequence resulted in a jumbled mess. It’s really easy for an incipient geek or computer programmer to fall for the illusion that everything is that black and white, or that at least in the realms of programming or engineering, everything should be perfect.

Of course, it cannot be. For one, people and natural systems are chaotic. Secondly, even engineering is not that straightforward. I learned this lesson the hard way in the Navy, and the teacher was ironically what would appear to be the most unforgiving tutor: maintenance on power plant and propulsion systems aboard a nuclear submarine.

At first glance, that seems ludicrous. The loss of the Thresher almost single-handedly kicked off the birth of rigorous Quality Assurance paperwork and documentation for every critical safety system on submarines. Later, the Iwo Jima had a steam plant leak that killed ten people due to the use of the wrong bolts in reassembling a high pressure steam valve, which subsequently failed. This resulted in a similar program being instituted for surface ships. Obviously there are times where a lack of attention to detail, doing things a little less “perfect” can have deadly results.

The thing is, “perfect” here depends on the standard you wish to achieve. A NASCAR stock racer will blow the doors off a minivan or Humvee, but would fare poorly on anything but the smoothest pavement, and both would be hopelessly mired in conditions that a Humvee would blow through with ease.

Even when you have a primary purpose, there are conflicting standards. On a minivan, the desire for cargo space and the ability to haul said cargo directly conflicts with a desire for fuel efficiency and handling.

The art of engineering, and it is an art, is an art of putting together design choices such that, when all is said and done, the strengths reinforce each other, as many weaknesses as possible cancel out, and the final result is “good enough” at all of its respective jobs.

You have to get used to it.

With submarine maintenance we lived in two worlds. On the one hand, we thoroughly documented the proper installation of the proper material and size O-ring or gasket, with the proper torque applied to the bolts for seawater and steam valves. We obsessively checked off verifying the status of ballast tank valves before a dive. Mistakes got people killed. We spent hours practicing startup and shutdown procedures, done by the book. We drilled over and over again on casualty procedures to hone our response to any problem… and this is where the break with “perfection” began.

There is an “ideal” way to shut down any piece of equipment on a submarine that is listed in the technical reference. There is also a standard startup and shutdown procedure employed as part of the overall ships procedures. In many cases there are even alternate “emergency” procedures, and these are all found in volumes of engineering manuals and procedural guides. Yet there are often discrepancies between what the maintenance and technical reference state for starting up or shutting down a system, and the ships procedures. These differences exist because a motor, a diesel engine, an oil pump, a condenser does not exist in isolation, but as part of an integrated and interconnected whole.

These “standard” procedures are often modified. Revisions are supplied by the Navy as a whole based on maintenance and other accumulated data. The engineer and CO have wide latitude to promulgate changes (“Standing Orders”) as long as said changes don’t break things. They even have latitude to break things and order people into situations that will kill them in order to get the job done.

Lastly, casualty training has a brainstorming component where many what-if’s are asked, because it’s widely understood that when things fail, they’re not likely to fail strictly in isolation (unless it’s relatively minor), but in ways not strictly covered by the manuals.

In short, when things actually break, we don’t throw out the manual, but instead use it to – hopefully – make wise choices in what we’re actually going to do. And often enough we ended up improvising repairs to keep things running when the “proper” parts and tools were unavailable. Maintenance procedures would be pieced together as needed from multiple references, choosing the appropriate steps and discarding those that did not apply.

What I learned, in short, was that instead of striving to meet an arbitrary, unchanging standard of perfect, I should strive to meet the requirements of my priorities, because the real world keeps changing the “specification” you have to meet. Push comes to shove, accomplishing the mission, followed by keeping the ship running and keeping the crew alive trumped nearly every other procedure written down.

And since you didn’t have the time or resources to do everything as perfectly as possible all the time, you had to choose which things must be done “right” – accomplished no matter what – which things should be done well (“good enough”), and which things not to bother doing in the time available, and to be happy with the result of your decisions.

Of course, it never hurts to strive to be a little bit better at whatever it is that you happen to be doing, each time you do it – that is the path to mastery.

One More Thing – Scroll Bars, Scrolling, and Lion

The single most annoying thing about the new defaults in OSX 10.7, aka “Lion” is one I nearly forgot because I almost immediately changed the default: The scroll bars are hidden by default.

Why is this important?

Because the scroll bars give you, with very little wasted space, two very, very critical pieces of information.

Their presence tells you that there is more to be seen, and the “footprint” of the scroll tab combines with it’s position within the window tells you both how much of the total page you are seeing, and what your position is relative to the whole document/web page/whatever.

In the default mode, you may never realize that there is more to be seen.

In my opinion, this is the single most egregious mistake they made. Fortunately, it’s also easily fixable. Go to your system preferences, and under the general preferences, select the option “Always” under “Show Scroll Bars.” You won’t lose much space on the screen, but you’ll immediately know if there’s more to see in any open window.

Insofar as the scrolling directions being changed – I actually like it now that I’ve grown used to it. Almost all of my computer work is on a laptop, with a trackpad front and center, and I spend little time on a mouse. 

Time Spent With Lion

Things I like

  • Auto-popup of authentication sheets at public wifi hotspots like Starbucks works great.
  • Love the new spelling correction hints that let you see what it wants to do before autocorrecting it – giving you a chance to say no.
  • Love the fact that you can now hold down a key to get the tilde/umlaut/whatever accent marks.
  • Mission Control allows me to find windows that are open a little faster due to grouping by App than expose
  • I love that Safari auto-restores, and Pages, and Textedit, and…
  • Fast launches
  • Versions of previous pages
  • Apps conforming to the new document standard don’t force me to save before dragging into Mail App, etc.
  • For the same apps, not having to worry about saving the stuff I’m working on when I close the program. It gets saved as I’m working on it too. 
  • Call me nuts but I actually like the new three-column layout in Mail.
  • You can search by multiple terms within Mail, etc.
  • Seeing battery status, etc. on the login screen.
  • PDF annotation. Not just “signature” graphics, but actual text entry, etc. even on PDF’s that are not pre-configured as forms (for an example of the latter, download your typical IRS tax form as PDF).

Things I dislike

  • Effectively borked the minimize-to-app in Mission Control
  • Using “Duplicate” instead of “Save as” can be a bit unexpected at first.
  • The “hold key” behavior does mess up people who like repeat keys enabled.
  • Why did you cripple digital color meter?
  • The “real life” look of the address book and iCal is a bit much, but I can deal with it.