The Shadow Isn’t Real
It’s Just A Tool
“What’s JSBin.com?” my colleague asked me.
“It’s a website front end engineers use to quickly prototype code. There are a few websites like it.”
“And corporate IT blocked it?”
“I submitted a request to open access to the site but it was denied.”
“Why do you need it?”
“It’s kind of standard process to have tools like this.”
“Can you use something else instead?”
Did I need it?
Could I use something else? I thought about these questions for a while. The problem was that it wasn’t just JS Bin. JS Bin was just the example. It was the same story for a lot of tools I used to do my job.
Fish Out Of Water
I recently took a job with a large retail bank.
Wait, wait! Don’t go!
Having spent years working at tiny and matured start-ups, there are some validating and insightful learnings gained from seeing how an enterprise makes things.
I’m creating a software engineering office with a goal of changing the way the bank (savings and checking accounts) creates customer-facing products. We’re trying to change the retail bank from the inside out. The crucial word in the previous sentence is inside.
We are not creating a start-up from scratch in a far away land. We have to start with the systems and processes that are currently in place. And as I’ve learned, some of those systems and processes are not good.
Before I go any further, I should explain what a front end engineer is because I’ve learned it’s important not assume you know. Like many of us in technology, I must empathize more with the idea you might not spend all of your hours working on the internet. You might not know the difference between a front end, back end, or quality engineer other than the unfortunate, funny naming.
A front end engineer makes sure the website you’re browsing right now looks and behaves as you might expect it to look and behave.
The page should have the correct information, layout, and design. It should respond to clicks, taps, and scrolls. It should be quick to load and easy to navigate on any device you use. A front-end engineer accomplishes this by writing code that can be rendered on internet browsers like this one.
JS Bin is a tool the front end engineer can use to develop websites. There are many like it. It allows the user to quickly debug or test ideas. And, it does so in an environment we call a sandbox, a testing environment that allows an engineer to safely test code without impacting users.
Long ago, someone in a far off land, somewhere had decided this site was dangerous and I should not be allowed to use it.
Does Plato Care?
In Plato’s Allegory of the Cave, the Greek philosopher described a situation in which a group of human beings living in an underground cave have no awareness or access to the outside world.
Chained by their legs and heads, they stare at a wall without the ability to see anything else but shadows cast upon it. These shadows were created by people carrying statues and animal figures as they walk in the space between the prisoners and a distant fire.
Plato’s character Socrates asked Glaucon questions about the prisoners’ reaction to this situation. Glaucon is a bit of a yes-man.
[Socrates] And if they were able to converse with one another, would they not suppose that they were naming what was actually before them?
[Glaucon] Very true.
Socrates is saying that the only awareness the prisoner has is of the shadow, nothing else. But what if there was a noise and it looked like two shadows were interacting with one another? Surely then, the prisoners would realize it was not a shadow that made such a noise.
[Socrates] And suppose further that the prison had an echo which came from the other side, would they not be sure to fancy when one of the passers-by spoke that the voice which they heard came from the passing shadow?
[Glaucon] No question, he replied.
So, the peoples’ scope of knowledge was limited to what they saw. There was no possibility of identifying something that may have created the shadows. The truest thing these people knew were the shadows.
But, what happens if the prisoners become unchained? What happens if they see what we see? What does it mean for the people to see the objects that are causing the shadows?
[Socrates] … just as the eye was unable to turn from darkness to light without the whole body, so too the instrument of knowledge can only by the movement of the whole soul be turned from the world of becoming into that of being, and learn by degrees to endure the sight of being, and of the brightest and best of being, or in other words, of the good.
It’s easy for us to know that the shadows are caused by objects because we have access to the complete environment. The prisoners don’t have the same perspective. We can see the people, the statues, and the fire in relationship to each other.
Is it hard to imagine ourselves in this situation? How many times have we made decisions only to have been proven wrong at a later moment of revelation? How many times have we thought the shadows were the only real players in the scene?
Breaking Corporate Chains
Thankfully, our modern HR department has banned chaining prisoners.
Despite the lack of metal restraints, we can sometimes still be imprisoned. We are chained by the processes and systems and beliefs and understandings we have accepted to be as solely true as the shadows on the wall.
Naturally, this begs the question: if we think we might be looking at shadows, how do we remove our restraints so we can see truer knowledge? How do we free ourselves? How do we help free others?
The JS Bin shadow inspired fear, danger, and risk. It made people uneasy and they wanted nothing of it. It needed to be banned. Why? It was classified as a file sharing website.
File sharing websites are banned because the company doesn’t want its employees sharing confidential information, either intentionally or unintentionally. This is a valiant reason. We want nothing more than to protect our customers.
But, JS Bin isn’t a file sharing website. It’s a tool for prototyping code.
This was the moment when I had my learning: I was not doing a good enough job educating people about what software engineers do. If a non-technologist didn’t know what I did, he would put processes and systems in place that would conflict with what I needed.
There was a misunderstanding and confusion around technology and shadows.
The Pace Of Technology Is Leaving Non-Technologists Behind
GitHub hosts 25 million projects today.
Medium had over 1,000 posts a day in 2014. Hacker News had over 600 links with over 100 points in 2013. And if you ask someone randomly what either of those three sites are, what do you imagine they’d say?
In a tech environment, most people know them without question. But outside this bubble, it’s less frequent.
Today, software engineering is a critical part of many industries that did not rely upon it in the past. Technologists work side by side with non-technologists. And as I’ve learned, non-technologists sometimes make decisions based on the shadows they see.
But how could someone make such a decision? How do non-technologists make sure they are not preventing engineers from using tools to do their jobs?
This is where we, as technologists, come in.
We, the people who can see all of the cave, can’t complain. We can’t yell. We can’t be upset.
We have to teach people.
We must explain what we do. We must share what tools we use. We must show people how we make things. We must bridge the gap between the technologist and the non-technologist, the observer and the prisoner.
If we share, there will be an easier conversation around opening up the big corporate firewall.
If we don’t, we’ll all be staring at shadows.