Would you let your mother use your software?

Oh and I am not trying to single anyone out in this photo btw
How about your father? daughter? son? sister? brother? wife? husband? fiancé? grandparent? cousin? neighbour?

And I can immediate hear some of you say:

But Alex … you would say …
… they would never *use* my software… they are not my *target audience*
Or… I would teach them how to use my software properly.
Or… I would never let them use it.

To you, my dear friend, I would ask that you play along with me in this exercise.

Suppose that the use of your software became mandatory. Suppose your friend or family member had no help or training from you. Suppose they were that user number #1110101 that you did not want to deal with. Take your pick.

Are we good? Are you following along?

If you are following, at what I am trying to say here, then I hope you can answer yes to my original question with some degree of confidence.

And no… you cannot use the typical engineering answer of “it depends”. Sorry, I want a binary response here: yes or no.

So, if your answer is a no then I hope that you might start thinking about these important issues. For example, you could start thinking about why are you leaning towards no? Perhaps, what can you do today to increase your level of confidence? Because you can.

Do you call yourself a scientist or an engineer? Do you have some variation of this title? Are you proud to call yourself that? Does it define who you are on a day-to-day basis? If so then you must think about ethics. It is your duty.

But maybe this belief is naive? Maybe this is not how it works in the real world? Maybe being associated with those things is not enough for such heavy consideration? Maybe we should leave ethics to someone else? We make software to solve some problem and that’s that.

Too often I see the answer that it is not applicable to me or my work. Too often I see ambivalence and lack of professional care. To me, this cannot be the winning formula moving forward.

If you’ve been following software development for the past few years, then you’ve noticed a certain trend by now. A trend of malpractice if you will. Followed by a trend of acceptance or standardization towards such malpractice. And if you dig a little deeper into these trends — they are often, but not always, connected to some lapse in ethics.

And if you’re of the mind that ethics and business [and software] cannot mix — I call for you to reconsider and have a conversation. I hope the pressure of shareholders and funding money does not blind your mission or your vision. Try to figure it out.

  • Just because you can do something, should you?
  • If you should, then how can you do so while being ethical?
  • If you cannot remain ethical, then the least you can do is own it. Don’t deny it. You are a professional, aren’t you?

Perhaps our approach to ethics needs a pivot?

  • Maybe ethics, as a field, is too broad of a topic? Too abstract and not applicable?
  • Maybe, it is time to reframe our delivery on ethics?
  • Time to step back and reduce the scope so that we can understand better?

So here is me — trying to do that for you. Next time you are working on software just give it a shot and ask yourself this relatable question:

would you let your _____ use your software?

I’ll let you fill in the blank. Don’t be lazy and do make it relatable.

Think about it because your answer should be yes with some level of confidence. It is 2018 and I am trying to take a gradual approach to this topic.

We are use a lot of software every single day.

And guess what?

It is only the beginning.

Just wait until the entire planet, and everyone on it, gets a reliable high speed connection. It is not if but when.

Thank you for reading.

Sincerely,

Alex

PS: I know that I am throwing generalities and I hope you can forgive me for the point that I am trying to illustrate.

PPS: Sorry for the clickbait title — but how else am I going to get you to read about software ethics? Not trying to single out mothers or family members or friends. I am trying to make a point that you should make your work relatable. Think about your end user. There is an actual person sitting on the other side of your code. And guess what? This person is trusting you and your code.