From Paul Lutus, Confessions of a Long-Distance Sailor
"After I was overruled, I wrote a letter of resignation. In my letter I explained the risks and said I would rather resign than allow dangerous hardware onto the Shuttle. And I pressed my letter into more hands than absolutely necessary. The embarrassment level got pretty high and the managers backed down — I was allowed to make the necessary changes.
Does this make me a hotshot, a moral person? Not really. I wasn’t married, no children to support, I could afford to lose my job for a principle. Besides, I was able to imagine what would happen to me if I caused a Shuttle failure — kids on the street saying ‘There’s the guy who killed all those astronauts and the schoolteacher.’
I didn’t become an engineer just to design things. I wanted to design them right. I was a bit too idealistic for engineering profession, who’s motto is “Ship it.” So I changed careers — I got into computer science.”
This was written more than twenty years ago, and it’s funny that the term “ship it” was as connotative and full of meaning as it is today in the midst of the lean startup movement. When I read this in Paul Lutus’ very engaging sailing travelogue, it made me think about the responsibilities of engineers and programmers to the people who depend on their software. I think this is on the mind of a lot of software developers.
It doesn’t feel like a week goes by without millions of emails and accounts being hacked or a software bug causing massive downtime in a stock exchange or airline. Software’s increasing potential for good is only matched by its equal potential for harm. Testing methodologies and its culture have advanced a great deal in the last decade, but most would agree that its no panacea. Instead some argue the deeper solution is in the languages and idioms we use that make writing code safer (my favorite being Rich Hickey’s philosophies). Yet this too can never protect us if the person who writes the code doesn’t (1) see the potential for harm in their work and (2) does not feel the moral responsibility of saying no to “ship it.” It obviously can get quite messy when livelihoods and politics are at stake, and I doubt we will not all struggle with it in our careers.
I’ll leave with an excerpt of an interview with a famed Japanese woodworker, Toshio Odate:
"Toshio added something very important: there is something else that is not always being grasped by many woodworkers in the craft: the social responsibility of the craftsperson, be they woodworkers, musicians, photographers, doctors, or writers. Each of these persons practices a craft and in that craft they are expected to produce a result that carries with it a social responsibility. And that responsibility is where the person’s skill and even artistry must be used to serve others. For example, if a joint is used to show off a person’s ability to create a showy piece, but fails when it comes to joining two pieces of wood securely and efficiently, that person has failed at their responsibility to society—even if the joint “looks beautiful.” But the craftsperson who makes a solid joint, that looks “good enough,” does its job and holds for decades or centuries to come—that person has fulfilled the responsibility society asks of them. Even if that joint is hidden, it has the spirit of being a good joint…
…once you commit to making a piece for a client, or a family member, that responsibility is there, to those people. It’s your job to make sure your design and your workmanship serve the needs and desires of your clients, and that the techniques and materials you use serve those ends. Anything else is superfluous, and runs the risk of being dangerous, or at best, ugly.”
From Fine Woodworking.