An Architect's Morality

May 20th 2010

There was an interesting article in Nature, arguing that our moral intuitions are formed as much by rational deliberation as by our experiences (despite the latter being more en vogue in academic circles - who knew!).

It got me thinking about how in any field (whether it be software development or biology, finance, etc.) people have very finely developed intuitions about what is "right" or "wrong" - something that seems akin to moral judgement. This happens in software development without a doubt - people who have been in the field for a while can have very powerful, immediate, gut reactions to problems - they just know that a certain path is "right" or "wrong".

The question I'm kicking around is, in software development, how are our "moral" intuitions best formed - by rational deliberation (e.g. reading, observing, studying, listening) or personal experience (playing many roles, living in the trenches)? In other words, which route would lead to greater "moral wisdom" - more study or more lived experiences?

(This question is a lot like the kerfuffle about Justice Sotomayor's "wise latina" comments months back - is she more "wise", coming from a rough neighborhood in the Bronx, than someone who came from the upper-middle class 'burbs?)

My sense is that no amount of study or observation can make up for living in the trenches and feeling the pain of bad decisions (your own and others'!). I can read all day about why unit testing is great, but it doesn't sink in to the level of "moral intuition" until I live through an experience where there's a million lines of code, no unit tests, and so no clue as to whether your change broke something else or not.

Anyway, just a thought...

I'm an "old" programmer who has been blogging for almost 20 years now. In 2017, I started Highline Solutions, a consulting company that helps with software architecture and full-stack development. I have two degrees from Carnegie Mellon University, one practical (Information and Decision Systems) and one not so much (Philosophy - thesis here). Pittsburgh, PA is my home where I live with my wife and 3 energetic boys.
I recently released a web app called TechRez, a "better resume for tech". The idea is that instead of sending out the same-old static PDF resume that's jam packed with buzz words and spans multiple pages, you can create a TechRez, which is modern, visual, and interactive. Try it out for free!
Got a Comment?
Comments (1)
October 17, 2016
Interesting thought! I'd say almost invariably the moral intuition part of it comes from personal experience. A good example for me is in studying vs. finding design patterns.

There are some patterns I stumble upon by finding them organically in the code I was working with, and then realizing only a long while later that there is some abstracted derivative to it that has a name. More often than not, I end up discovering this with anti-patterns even more so (The "anemic domain model" comes to mind).

The ones that I actually studied first, in their textbook form, are all great academic fodder. But, I honestly cannot think of a single time where I took an approach based off of something I only read or heard about. I always find myself making educated decisions off of my previous experience with something similar, and then (hopefully) adding some new knowledge to my experience catalog after finding some shortcoming to the decision I made.