Tuesday, June 26, 2007 9:10 PM
codingsanity
Integrity and Reputation
I've been meaning to post on this topic for quite some time, and given the plagiarism debacle, I thought now might be ideal.
I've seen too many developers fall into the trap of making a stupid ethical mistake. There was the UNISA student trying to con developers on a forum to do his homework. A contractor I knew who billed huge amounts every month and then slipped crates of cool drinks in the boot of his car. In the latest case, an up and coming developer trying to get some extra prestige by claiming others work as his own.
The importance of a good reputation
Software development is a very interesting field, you live or die by your reputation, especially at the more senior levels, and given its high visibility when you're a "public" developer such as a blogger; reputation becomes even more critical. A good reputation, once lost, can almost never be regained. Its one thing to lose your reputation as a top developer, but to have it become known that you have low integrity is a kiss of death to a career. IT is an incestuous community in South Africa, and word gets around, fast.
Will the Johannesburg Stock Exchange hire someone they knew once tried to cheat his way into a degree? Unlikely. A position like that, dealing with hundreds of millions of rands worth of trade a day is not one given to someone of known poor character. A bank would similarly not hire a person who would steal stock from his employer. I have a friend who has worked at several banks, some overseas, and at the JSE in senior roles, and he is of unimpeachable integrity. So much so that if I was told he'd run off with a customer's cash, I'd be convinced that the person telling me the story was lying. Then I'd be upset because he hadn't cut me in on the action 
"Kenneth Chenault, chairman and CEO of American Express ... believes that":
if you are not clear on who you are, on what it is you stand for, and if you don't have strong values, you are going to run your career off a cliff.
"[He] sees six character traits as the foundation for becoming a skilled leader. The first attribute is integrity, and he believes it is this core principle upon which true leadership is built:"
Many people construe 'integrity' to mean being honest. That's a piece of it, but it's really about being consistent in words and actions. When you are trying to lead others, they look for consistency. I want people to have a will to win, but I want them to win with integrity.
Any attempt to cheat your way to a good reputation is almost certainly doomed to failure. For starters, the wonder of Google makes it trivial to track down original sources. Bluffing your way into a good job is also a short-lived thing, eventually you'll be expected to deliver. I've lost count of the number of supposed gurus that turned out to be stuffed shirts. One guy in particular had everything down pat; he'd have his next job getting lined up by the time it came close for him to deliver. He'd conned plenty of companies before ours, but got undone by simple continuous integration.
Why people cheat
Oh, the usual, money normally. In some cases, they crave admiration and feel that they cannot get it legitimately. They look at others and desire a short cut, not realising that the reason someone has respect is usually because they've done hard things. For a very long time, I wanted to be a blogger, seeing them as somehow above me, deserving of greater esteem. Little did I realise how untrue that was. Authors and bloggers and developers of very cool gadgets are pretty down to earth people. Some of them are very good developers, some not so much. Some are good communicators, some not. Some are stuffed full of their own self-importance and some (most) are very humble. In fact, the very best developers I know personally are not public people, but work their magic behind the scenes.
What I think I'm trying to get across is that trying for the respect of others is a bit of a mirage, you never really get to the pot of gold. In the final analysis the only question that truly matters is whether you still respect yourself.
Calling others on unethical behaviour
I believe that software developers should be held to a high ethical standard, and part of that is not accepting unethical behaviour when you see it occur. Please read the excellent article The Crooked Timber of Software Development by Hacknot, where he discusses why Software Development is an occupation, not a profession. A particularly cogent quote:
The strict ethical requirements of a medical practitioner aim to ensure that the patients needs are best served. In the absence of such requirements, a software developer is free to scheme, manipulate, lie and deceive as suits their purpose - consequently we see a great deal of exactly this type of behavior in the field.
Conclusion
Software developers are people in positions of great trust. To us are entrusted priceless data, critical business systems, huge financial impacts, and people's very lives. Sure, you may not be in such a situation right now, but it could easily happen. Ask yourself what kind of person you'd want on those kinds of systems. When you're contemplating something in an ethical gray area, picture yourself explaining it to a recruiter for a bank. If he kicks you out of his office, it's probably not a very good idea.
No matter what your boss says.
Filed under: Community, Ethics