"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.”
- Paul Lutus, Confessions of a Long-Distance Sailor
This was written more than twenty years ago, and it’s funny that the term “ship it” was as connotative and full of meaning back then 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 that software engineering has always had a bad reputation when it comes to quality and reliability.
It seems like not a week goes by without millions of emails and accounts being hacked or a software bug halting a stock exchange or delaying an 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 it’s no panacea. Instead some argue that the deeper solution is in the languages and idioms we use that make writing code safer. Yet this too can never protect us if the person who writes the code doesn’t see the potential for harm in their work and second, does not feel the moral responsibility of saying no to “ship it.”
In an industrial society, the makers of things are usually far removed from the end usage and impact of their product. Developers are no different, and that’s why when I joined pMD, I was so surprised by the heavy exposure of the developers with the customers. We routinely visit customers on site and build first-name relationships with them. I remember the first time I sat down with the billers in a practice in Colorado and discussed their workflow, their pain points, and generally how overworked they were. When I returned back to the office, I felt a renewed sense of empathy and purpose to how a seemingly small feature I would write could impact someone’s daily job across the country. This impact could go well beyond the ROI of our software, and affect someone’s happiness and sense of effectiveness in their profession.
Even though developers sometimes love to put on their headphones and crank out some piece of software wizardry, it’s important to occasionally step out of the office and engage with your customers. Regularly seeing the daily work-life of your users first-hand helps establish that sense of responsibility to the end-user, and it makes the software better for it.
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.”
Source Fine Woodworking.