Sometimes things appear to be inside out. Frances Buontempo considers when a shift of perspective can make things seem better.
Cutting to the chase, I haven’t written an editorial and I suspect I have run out of excuses now. I have been distracted by reading Jerusalem by Alan Moore [ Moore16 ]. This book pulls together a variety of characters, including gods and daemons, and explores ideas related to extra dimensions, directly referencing Flatland [ Abbott84 ], which some readers may be familiar with. It tries to imagine what life in higher dimensions would be like, starting with the perspective of two-dimensional beings. Such beings, living on the equivalent of a piece of paper, have a limited view of their surroundings. A three-dimensional being would have a very different view, being able to see inside rooms from above. The flatlanders would have no concept of above. By shifting perspective, the world looks very different.
Alan Moore also wrote the comic Watchmen [ Moore ], which was made into a film and has recently been serialized for the television. From memory, the comic has a long discussion near the beginning of super-hero outfits. Cloaks are called out as a no-no. They are a health and safety nightmare, both being a trip hazard and potentially getting stuck in fire-escapes or other fixtures and fitting as the hero attempts to duck and dive after whoever they pursue, or perhaps run from. I personally have never understood why so many super-heroes wear their underpants on the outside of their trousers. Inside-out, with no possible advantage, to my mind. Finding a suitable outfit is often a headache for anyone. I am sure many readers will join me in bemoaning a lack of pockets, having put valuable possessions in a handbag. Some things are much safer in an inside pocket.
There are many conventions on placement, particularly of clothing, though not limited to attire. Should you tuck your shirt in? Should a scarf go over a coat or inside? What about code documentation? Should this be inside the code as comments or along-side the code in document form? Where do diagrams go? How do you explain your code in diagram form? For physical objects, trying to represent three dimensions on a two-dimensional surface throws up many challenges. At some scales, a plan and elevation will provide enough information to indicate what goes where. However, flat-pack furniture is often shown as so-called ‘exploded diagrams’, attempting to show how the parts fit together, showing which fixings go where inside. Sometimes a few words along with the diagram help. So much for furniture. How many dimensions does a code-base have? Can you really represent it on a flat surface? Various projections of the earth onto maps exist. Each will distort the landmass in some way. The Mercator projection gives the impression Greenland and Africa are the same area. Getting the areas right can make all the shapes wrong. What does a UML diagram do to your code base? Does code have a surface area? Who knows? I don’t.
Maps are often use to plan journeys. Trying to represent a landscape, road network or pathways is a challenge. Unknown areas may just be marked ‘Here be dragons’. The same stands for codebases. When planning a walk, it is useful to know just how steep the paths are. Many popular maps on smart phones don’t show this. Other types of maps might. The Ordnance Survey used to use physical marks to map out the height above sea-level [ OS-1 ], and does show contour lines joining points of equal height, and therefore indicating the steepness of a path. Some of the markers have subsided somewhat, meaning the data is no longer accurate. They now use GPS and similar to get accurate measurements. If a marker stone is on top of a hill, and a coal-mine underneath collapses, the marker might just end up inside the hill, rather than on top. Edges and boundaries move over time. Furthermore, tides rise and fall all the time, so averages are taken. You should also clarify which sea-level. Newlyn in Cornwall, it turns out [ OS-2 ], has a stone pier sited on granite, so is probably more stable than some other points around the UK. Finding the length of the coastline round a country is difficult too. The result depends on the accuracy with which you measure the edges, ignoring parts that may fall into the sea from time to time. Any distance is always an approximation at a given scale. Tides and edges are not the only things to move over time. Documentation can become out of date or architecture diagrams go stale. Tests might start to fail.
Given we cannot find one best way to provide accurate distances, diagrams, or pathways for many things, what are the options for finding our way round a code base? Start somewhere in the middle, with a break point in a function and see what hits it? Add some logging? Start at
, or another boundary, and follow a path through? Draw a new diagram? Attempt to understand existing diagrams? There are many options. There’s no one best way. Learning to navigate code bases, geography, meetings or indeed any situation is an important skill.
How do you navigate your way through a multi-track conference or options for studying a course? Do the session titles indicate what’s really involved? There may be an abstract somewhere, but without reading through these properly in advance, you might just pick according to titles or speakers. Perhaps that doesn’t matter for an hour’s talk as much as for a long course. The ‘blurb’ presented to the outside world may or may not be an accurate representation of what’s going on inside. So many companies have a mission statement, taglines or slogans which might be somewhere between meaningless or misinformation. The real thing? Because you’re worth it. Just do it. I shouldn’t mock; hours of thought have gone into these and the companies concerned are almost certainly making money. ACCU adopted ‘Professionalism in programming’ a while ago, and that has stuck. Though this means different things to different people, it’s a good place to start. How do you describe ACCU when you talk to people about us?
I often surprised by non-technical peoples’ mental models of how things work. Someone once claimed their smart speaker only started listening in on them after they said its name. I was going to ask how it heard its name if it wasn’t listening, but suspected I wouldn’t get far with that line of enquiry. Mind you, tech people often talk about a fabled hamster not pedalling hard enough if machines slow down, or gremlins larking around, or just say ‘Magic’ when asked how something works. On one level, we do ourselves no favours, and on another it is very difficult to explain something clearly and precisely to others who have no background knowledge at all. Sometimes we use analogies, but they always fall down in the end. They can be a good starting point for a discussion though.
Do your friends or family know what you do for a living, if you are in tech? Many presume you can fix their home internet connection problems or similar, though not all. If people don’t know what a program or an app is, even when they use such things, how do you explain that you create these? Even talking to other tech people working in different domains can be hard. A GUI programmer will use different language to a backend developer. When we say ‘agile’, what do we mean? When we say ‘test’, what do we mean? If you claim to do TDD, do you write the tests first? Perhaps this is about the ambiguity of language in addition to disparate experience. Sometimes the best way to understand each other is to do something together, rather than talk about it. If someone wants to know what a website is, build one with them. If someone wants to know what an algorithm is, work through one together on paper with a pencil. If someone wants to know what stochastic calculus is, well, there are ways to give an overview, but it takes a lot of thought to make complicated things simple to ‘outsiders’.
Throughout history, there have been many experts who have tried to explain details of their specialist knowledge to the general public. Einstein wrote many academic papers, but also wrote for a wider audience, including his book Relativity: The Special and General Theory [ Einstein16 ]. He claimed:
The present book is intended, as far as possible, to give an exact insight into the theory of Relativity to those readers who, from a general scientific and philosophical point of view, are interested in the theory, but who are not conversant with the mathematical apparatus of theoretical physics.
Feynman also tried to popularize physics with books and talks [ Wikipedia-1 ]. Brian Cox is on a similar trajectory, with articles talking of the Brian Cox effect [ Manchester ]. By explaining complicated things with enthusiasm, he has inspired others to study physics. Some have claimed relatively recently that people are sick of experts [ Gove16 ], but I don’t think that is true. I think most people like to have an idea of how things work or new ways of looking at life, the universe and everything. They may need an Einstein, Feynman or Cox to explain it. Or even Alan Moore to put ideas into story or comic form, at least providing analogies and parables to get the brain ticking.
Some experts are insiders who share secrets. Though this can be a bad thing, for example stealing a company’s intellectual property, others are whistleblowers. The UK government website [ GOV.UK ] describes it like this:
You’re a whistleblower if you’re a worker and you report certain types of wrongdoing. This will usually be something you’ve seen at work – though not always.
The wrongdoing you disclose must be in the public interest. This means it must affect others, for example the general public.
I’m not sure how precise this definition is, but the idea is to protect workers who call out bad behaviour or practice. Wikipedia has a list of whistleblowers [ Wikipedia-2 ]. The earliest entries concern the military and war crimes. Over time, the frequency of entries increases, and the domains expand into spying, the pharmaceutical industry, banking and then IT. Of course, the list is not definitive. Volkswagen isn’t on the list [ Reuters16 ]. Other computer systems have had problems too, and though whistleblowing may not be involved, experts may have something to say on the matter. The grounding of the Boeing 737 MAX planes was called for by experts [ Wikipedia-3 ]. Thank goodness for experts.
Some companies willingly share their source code. Free and open source software, FOSS, is a term many of us are familiar with. As AI becomes all the rage, I increasingly see open source code and online platforms offering tools to help people develop solutions quickly. You can pick up a model and tweak the parameters to see if you can improve its performance, even if you don’t have a clue what a GAN or CNN is, or what reinforcement learning is. Who needs experts when you can twiddle knobs, change numbers and generally hit things with a hammer until they appear to work? To be fair, some initiatives started as a way of making sure proprietary AI setups don’t inadvertently invent some SciFi nightmare like The Terminator’s Skynet. For example, OpenAI [ OpenAI ] has a charter, which starts:
OpenAI’s mission is to ensure that artificial general intelligence (AGI)—by which we mean highly autonomous systems that outperform humans at most economically valuable work—benefits all of humanity.
Other organisations are also looking out for us. The Future of Humanity institute [ FHI ] claims to ‘bring the tools of mathematics, philosophy and social sciences to bear on big-picture questions about humanity and its prospects’. They include a governance of AI section, keeping an eye on where the tech is going, including governments and industry leaders. Since we don’t know what AI is really capable of, predicting what might happen is hard, but bringing together experts to discuss matters seems like a good idea. Experts from different areas will have different perspectives on what is happening and what might come to pass.
Despite my lack of editorial, I hope looking in a different direction, getting a new perspective, or listening to experts might help me, or a reader or two. If you happen to be an expert in something, or even just get the hang of it, do write it up for someone else to read. This might fire you with new ideas, better ways of explaining yourself and new things to discover. Happy thinking.
[FHI] Future of Humanity Institute: https://www.fhi.ox.ac.uk/
[Gove16] Michael Gove in an interview with Faisal Islam, Sky News, 3 June 2016: https://en.wikiquote.org/wiki/Michael_Gove
[Manchester] ‘The Brian Cox effect’ rejuvenates physics in Britain: https://www.physics.manchester.ac.uk/research/impact/the-brian-cox-effect/
[OpenAI] OpenAI Charter: https://openai.com/charter/
[Reuters16] ‘Fired employee says Volkswagen deleted documents about emissions tests’, published in The Guardian : https://www.theguardian.com/business/2016/mar/14/volkwagen-whistleblower-deleted-documents-emissions-tests
[Wikipedia-1] Richard Feynman: https://en.wikipedia.org/wiki/Richard_Feynman
[Wikipedia-2] List of whistleblowers: https://en.wikipedia.org/wiki/List_of_whistleblowers
[Wikipedia-3] Boeing 737 groundings: https://en.wikipedia.org/wiki/Boeing_737_MAX_groundings#Experts
has a BA in Maths + Philosophy, an MSc in Pure Maths and a PhD technically in Chemical Engineering, but mainly programming and learning about AI and data mining. She has been a programmer since the 90s, and learnt to program by reading the manual for her Dad’s BBC model B machine.