Oops! Did I Do That?

Jim Cassidy
Citizen Programmer
Published in
9 min readSep 9, 2018

My career has been an accident. I have to be honest about that. But, here I am, deep into my career, surveying the damage I have done. Ok, I actually have done very little damage, I have encouraged, promoted, and participated in damage. As a tech-evangelist and fanboy, I feel that I have been a very selfish man. For real!

I just wanted to code, and to promote the technology that has now become central to our lives. I saw mostly possibilities, but I never deeply considered the harm I helped cause by being so uncritical of the technology I was championing. I have been part of some successes, but fewer than I would have liked. Often, I just wanted to play and get paid.

Technology is good, and everything we are building is going to make the world better. I believed that. In the 1990s, I was the guy who convinced each of my employers to register a domain, to use databases, to use email, to build a website, to network their computers, and to trust their businesses to commercial software and custom applications.

Where is the hopeful, bright and shiny world I was trying to help create? As an early champion of technological innovation, I find myself asking: Did I fail to see the possible bad consequences of the work I did? Am I still failing to see them? When I see harm, damage and neglect, or when I consider criminals, con-men, online bullies and trolls, I ask myself, “What was the point?” When I think of the failed projects I have had a hand in, I am sometimes disillusioned.

Steve Urkel: Nerd Extraordinaire

When I stop to think about it, I feel like that character, Steve Urkle, from that 90s sitcom, Family Matters. Urkle was famous for his well-intentioned blunders which all ended with his asking, in a high pitched nerdy voice, “Did I do that?”

Urkle, the character, was just supposed to appear in one guest spot, but he ended up doing 215 episodes. That’s how it was with me: I wasn’t thinking about a career at first, but I wanted interesting work. So here I am, more than a couple of decades in, realising that a large part of my life has been defined by achieving questionable benefits.

Don’t get me wrong, I still love computers, and I love to code and to lead teams. I still have hope that technology can be used for good. But, I think that I, and other developers by extension, should be more thoughtful about the things we build and the services we provide.

Some readers must be thinking: duh? What did you think would happen, Jim? No technology lives up to the hype. Perhaps that’s true. I am certainly not the only person who is experiencing a degree of disillusionment about some aspect of their career in technology. See below, but finish this article first — that is one thing the Internet has encouraged: distracted reading.

I have wasted some, not all, of the best years of my life working for idiots, taking instruction from non-technical people who don’t know the first thing about what I do. But, I rolled my eyes, took the money, and presided over some disasters, failures and disappointments. I have helped greedy people during the dot-com boom. I have even participated in a project that, in retrospect, was designed to cover for a minor wrong-doing.

But, I can’t flatter myself — I was a minor player. Nobody hacked a system I build, and nobody used something that I built to harm other people. But, I was there. Bad things happened on my watch. I achieved mediocre results more times than I wanted. It weighs on me. But, let’s put me aside, and let’s look at the broad picture. I’ve had some wins, some loses, but neither have been consequential.

Years after I first started to recommend the use of computers, criminals are better able to steal credit card information than ever before. Did I put unsuspecting people in harm’s way? In the recent Equifax data breach, information about almost 150 million people was stolen in one go.

And, let’s look at social media. It has been used to interfere in elections, to invade privacy and to bully people. Some people have used it to broadcast their own suicides. A man in Cleveland even broadcast a murder. Others announced that they were planning to do terrible things, but we only found out after they had followed through on their plans.

It is a standard operating procedure to check out Facebook, Twitter, Instagram and other sites every time some nut-job shoots or stabs strangers, or blows somebody up. The Internet, which used to hold our hopes and dreams, has also become the repository of our darkest thoughts and feelings.

Twitter is a cesspool of fighting and abuse, with the president of the United States leading the charge. How could such a beautiful thing as the Internet turn into a troll-infested swamp of opinion, argument, intimidation and rage?

Again: duh!? People are people. I should have known.

And then there are some more passive, or unintended consequences. Our tools have taken possession of us. We check our email when we get up to go to the washroom in the middle of the night. We feel naked without our cell phones. We have forgotten how to meet people without a dating site.

And, teenagers are committing suicide because they have been embarrassed or blackmailed online, or because they based their self-image on what is said or done on social media.

I have friends who announce a few times a year that they are “taking a break” from Facebook, as if something about the experience is emotionally unpleasant or taxing. Social media is taxing. I spend more time bookmarking articles and sites than I do reading them — I used to be a voracious reader, but now I have become the crazed curator of hyperlinks and references.

And, what about failed projects? Who hasn’t been part of a failed project? Depending on what you read, and how you define failure, about 50% of IT projects fail. Some fail spectacularly. In Canada, when the Pheonix payment system was launched, tens of thousands of government employees were improperly paid, and it will cost almost half a billion dollars to fix the system.

Jeff Southerland’s Book on Scrum

In his book on Scrum, Jeff Sutherland rhapsodises about a new way to work and organise the effort of software teams, but he also bemoans failure. He even comments on the moral and social implications of failure, and the emotional and mental burden of being part of a project that goes south.

It is hard to measure harm and benefit, but, on a bad day, I sometimes fear that we are doing more harm than good. We are certainly achieving less good than we could have or meant to achieve. But, what’s the alternative?

It’s Not Late To Change

Instead of asking what our employers can do, or what Facebook, Google, Microsoft, and Amazon can do, should we, as technologists, be discussing and considering the ethical considerations of the work we do? Rather than pursuing our own advancement by developing individual skills, should we be thinking about how the practice of building software, websites and databases needs to change?

Our employers measure our competence in terms of skill and knowledge, but should we extend that definition to include several other competencies?

In the Spiderman comics, Peter Parker’s Uncle Ben taught him that that with great power comes great responsibility. Everything Peter Parker does as Spiderman is informed by that advice — it doesn’t even originate with Uncle Ben.

To be good citizens, citizen programmers, I think we all need to understand how to make ethical decisions. Citizenship confers rights and privileges, but these come with obligations and responsibilities. No programmer is an island. We benefit from being part of a community, and, like doctors, we should do no harm. In fact, we should produce the opposite.

We all need to understand how to be lifelong learners. How to communicate and collaborate better. How to take responsibility for the success of the projects we undertake instead of blaming failure on others.

We need to learn how to insist on our own expertise rather than blindly taking direction from self-interested non-technical people who are using our talents to achieve less than beneficial objectives. We need to try to be agents of change rather than mere instruments of somebody else’s ambition and greed.

It is common to believe that there is a shortage of technical workers, and that there is a huge demand for certain skills. I think that is a short-sighted way to think about things. Sure, we have to keep up with new frameworks, new programming languages, and new ways of building and delivering software. But, let’s face it, some of the people who have participated in the biggest software disasters of all time were highly skilled individuals. Mere skill is not enough.

It is possible to be technically skilled, but to be incompetent in other ways. Every programmer and her dog wants to learn about block-chain technology, machine learning, alternative databases, new web frameworks or data science, but show me the young person who is desperate to learn how to collaborate better.

Who wants to learn how to write better, or to write useful technical documentation? The people who can write do not always understand the technology, and the people who understand it don’t always seem to be able to write. I have read that writing is the developer’s unicorn skill: a developer who can write well is a rare beast, yet documentation is key to every project’s success.

I have known programmers who are unproductive because of the way they plan their work, but who possess all sorts of arcane knowledge about the tools they use. I have seen others become so immersed in the work that they forget what they were trying to achieve.

I have seen otherwise talented developers who cannot work in a team because they are arrogant, hostile and uncooperative — on paper, they seemed like good hires, but the hiring process was focused on finding people with the right skills. Skill is often defined as knowledge of and experience with certain tools, libraries, languages and frameworks.

I sometimes feel that I could moan and grumble for a long time, but who wants to be that guy? It is not too late for me. As I come into the home-stretch of my career, I want to be more Spiderman than Steve Urkle. I want to be a good citizen programmer, and I want to find the people who think the way that I do. I want to be mindful of Uncle Ben’s “great responsibility.”

I find myself wanting to give back. I find myself thinking about the advice I might offer my replacements, and the things I could do to help them surpass me, and my generation. There is no need to use big words, or to hide behind big ideas — I just want to be pragmatic.

In some ways, I sometimes feel old and jaded, but in others, I am more enthusiastic than ever. This time, it’s not just the code or the machines. This time, for me, it’s about the people.

My career, which may have started as an accident, could end in deliberation and purpose. I want it to.

I want to end by teaching, helping and shaping. I do not want to go out as a bitter and disappointed old programmer. I want to help people to devise roadmaps to success — not just personal success, but meaningful success that supports social change. I don’t feel that my interest has shrunk. It has broadened.

Let me end by sharing some of the things I have read that have helped inspire these thoughts, and have helped motivate me to start writing.

--

--

Jim Cassidy
Citizen Programmer

A deeply infected technophile who is thinking about the obligations and careers of programmers.