Coding for Human Behavior
January 14, 2007
Here’s something that has me thinking: the ACM code of ethics for software engineers.
I think the ACM has done a good job capturing the elements that define maturity and professional behavior in the software industry. It clearly spells out that getting the best results means interacting well with people who have different capabilities, interests, and goals than ourselves. This is a pretty fundamental principal which, unfortunately, isn’t taught in many schools, or demonstrated in high tech businesses.
The ACM code makes a lot of sense when you read it. It’s explicit about a lot of things we should consider implicit — and I guess that’s the point. If it were easy to “be a good person,” that’s all we’d have to write about it.
It’s difficult to behave 100% ethically in high pressure, unfamiliar, or otherwise challenging situations — but that doesn’t mean we shouldn’t strive for it. Becoming a better developer doesn’t just mean learning the latest design patterns and languages — it also means building healthy communication with the other people we intract with: clients, customers, sales people, managers, administrative assistants, executives, and everyone else we deal with on a professional basis. That doesn’t mean inviting them over for marathon Wii sessions on the weekend; it means devoting a few spare cycles to thinking about others, and doing our best to build something together — becoming a better person.
2006 was a heck of a year for me. Getting married, leaving a friend’s business, starting another business, hiring and firing, renovating the house, supporting my wife’s decision to become an independent consultant, and coordinating critical technical services for several startups — a lot of high pressure, unfamiliar, and otherwise challenging situations. These are the sorts of things that make a guy think hard about things like ethics and professionalism.
So, here’s to 2007: growing, learning, and becoming a better person.