BioWare & Anthem: A Cautionary Tale

I love playing video games. My favourite game series is called Mass Effectmade by a game studio called BioWare.

I am a huge fan of BioWare’s games and I was looking forward to trying out their new game Anthem.

Anthem came out in early 2019 to universally poor reviews. The game was half finished, had poor gameplay and did not respect the player’s time. I ended up giving it a miss.

This week, Kotaku’s Jason Schreir has an excellent article about what went wrong with Anthem. It turns out Anthem’s development was troubled, and the development team faced the same sort of problems (some self-inflicted) that I have seen a few times in my career. I suggest you take some time to read the excellent article linked above. It is a wonderfully researched and well-written piece.


So what went wrong? Schreir’s article talks about game studio politics, financial pressures and many other contributed factors. I want to focus on what went wrong with Anthem as a software project. Here are some of my thoughts on this cautionary tale that I think may apply to many software development teams.


Building a product for a market you don’t understand

BioWare is famous for making role-playing games (also know as RPGs). The core team for Anthem had made well-loved games such as Mass Effect — single player, immersive, story-driven experiences. They were asked, by their owner EA, to build a multi-player, online, loot-driven shooter such as Destiny.

These games made money through micro-transactions; charging players small amounts of money to buy in-game items. The Anthem team did not understand the fundamentals of the product they were being asked to create. Basic mechanisms such as loot drops (where players get rare items for completing missions) did not work well. YouTube is full of players ranting about Anthem’s lack of loot.


Not being clear about the scope of the product

The Anthem lead team were slow in making decisions about critical features. Flying: a fundamental gameplay feature was added and removed multiple times. The team was only aware that flying was in scope following a demo to an EA executive who decreed that the game must allow it. This is like building a desktop app and not being sure whether mouse input should be enabled. It makes things difficult for the design and development teams.


Being forced to use a technology stack by decree

Most modern games are built using game engines such as Unity or Unreal Engine. EA mandated that all its games, including Anthem, must be built using the in-house Frostbite engine. They wanted to cut costs and re-use resources by not having to pay a licensing fee. Apparently, the Frostbite engine, while used successfully in games like the Battlefield series, was poorly documented and not suited to a game like Anthem. The development team struggled to make it work, and productivity suffered.

The same team that had made the Mass Effect series using the Unreal engine.


Shipping before being ready

A YouTube reviewer I follow mentioned that the game played as if the developers hadn’t even bothered playtesting their own game. The article talks about unstable builds and unavailable test environments. There was no time left for a thorough quality assurance process. When the game did come out, players complained about interminable load times and repetitive missions. There were also hard crashes and un-usable inventory systems: a big problem for a looter shooter.


In conclusion..

Anthem is a failure and has resulted in Bioware losing credibility as a game studio. I think it failed because it was a poorly managed software project. It was a poorly thought out product released in a broken state by a confused and stressed development team. This pattern is not unique just to the video game industry. I am sure software engineers of a certain vintage have seen this play out in a variety of industries.

4 Waves of AI – And why they matter

I can’t open a newspaper or visit my friendly local bookstore without coming across a think piece about why AI is a *BIG DEAL* and how it changes everything. The tone of most of the material that I have come across is aptly summed up in this classic xkcd panel.


Classic xkcd panel on AI

In January 2019, I read Kai-Fu Lee’s fantastic book “AI Super-Powers: China, Silicon Valley, and The New World Order.” Mr. Lee is a thoughtful, even-handed guide to what is going on in the field of Artificial Intelligence (specifically Machine Learning) and how it may impact our future. The book is also an eye-opening account of the Chinese startup eco-system — but perhaps more on that another day.

Early in the book, Mr. Lee talks about how the spread of AI is happening in four waves. These waves are:

  1. Internet AI
  2. Business AI
  3. Perception AI
  4. Autonomous AI

Let’s take quick a look at each of these waves.


Internet AI

We deal with Internet AI every time we shop online, scroll through our social media feeds or Google something. From AI Superpowers:

Internet AI is mainly about using AI algorithms as recommendation engines: systems that learn our personal preferences and then serve up content hand-picked for us.

Examples of Internet AI include online advertising optimization, personalized news feeds, and algorithmic content recommendation.


Business AI

Advances in machine learning have allowed businesses to take advantage of labeled, structured data that resides in data repositories and train algorithms to outperform humans on clearly defined optimization tasks. Some examples here include automated credit scoring, fraud detection, algorithmic trading, and supply chain optimization. While not the most exciting topic, in the short term, Business AI has the potential to have a significant impact in the way we work and more potently, what *types of work* make sense to automate.

Business AI is about optimising and generating value from structured data.

Business AI has the potential to make what were once stable professions like accountancy, insurance, and medicine obsolete in their current form. It also has the potential to generate vast and lucrative new opportunities. More on this later.


Perception AI

Perception AI is about the “Digitisation of the physical world.” It is about using real-world data captured from IoT devices, cameras, smartphones, and other devices to blur the lines between the online and offline worlds. We already see applications of facial recognition and machine translation technology enhance offline experiences such as shopping and travel as well as enrich experiences such as education.

Perception AI is about blurring the lines between the online and offline world

Augmented reality (AR) devices and applications increase merging of the offline and online world. Perception AI also has worrying implications around surveillance, privacy and data protection.


Autonomous AI

Autonomous AI represents the culmination of the three preceding waves of AI. What was once science fiction is slowly becoming mundane. Autonomous AI is about fusing the ability to optimize from extremely complex datasets and integrate them with powerful sensory abilities resulting in machines that can understand and shape the world around them.

Autonomous AI results in machines that can understand and shape the world around them.

We already see some limited applications of Autonomous AI in the fields of self-driving cars, automated factories and pollinators.


What does it all mean?

Ben Evans, a partner at the storied VC firm Andreessen Horowitz, talks a little about the implications of advances in AI in the November 2018 presentation “The End of the Beginning”. He says:

“Tech is building different kinds of businesses, and so will take different shares of that opportunity, but more importantly change what those industries look like.“

He says further that a combination of high internet penetration, changing consumer expectations and a general “unbundling” of supply chains are creating business models that in turn are enabled and accelerated by AI. The breaking apart of tightly coupled logistics supply chains is just one example of this phenomenon.

At my work with Jeavio’s portfolio companies, I can already see this in action. We support entrepreneurs who are working in diverse fields such as customer experience analytics, construction and high tech agriculture. In each of these various fields, we see applications of Business AI that have the potential to disrupt existing models and generate tremendous value.

In my previous career working in high-frequency algorithmic trading, I have seen technology disrupt financial markets. Advances in AI are now doing the same in a wide variety of fields.

While AI cannot by itself generate new business models, it is already a potent force multiplier, which when deployed effectively, can increase efficiency and help businesses capture more value. We may not worry about our Robot Overlords just yet; we should keep an eye on the disruption and opportunities presented by the four waves of AI.

Do you know your dependencies?

A contributor on GitHub finds an abandoned, but popular JS library and commits code that targets a Bitcoin wallet made by a particular company. Hundreds of other libraries use this library making this vulnerability affect thousands of applications since it is a transitive dependency.


Photo by Bryson Hammer on Unsplash

NPM (and npmjs.com) provide a valuable service in hosting JavaScript dependencies. By blindly upgrading to latest version of libraries, developers can open themselves to malicious attacks similar to those described below.

I would recommend developers understand how npm’s package lock mechanism works. This will ensure that your dependencies are reproducible and force the use of known and trusted modules instead of downloading the latest version.

This is not a problem just with the JavaScript eco-system. Python (via pip or conda) and Java (via maven & gradle) have similar issues. However my, totally subjective and un-scientific, observation is that JavaScript libraries tend to have way more dependencies (see the “left-pad” debacle for example)..

Ars Technica has a good write up about this particular issue: https://arstechnica.com/information-technology/2018/11/hacker-backdoors-widely-used-open-source-software-to-steal-bitcoin/

Computer Says No

Photo by Andre Hunter on Unsplash

Everyone has dealt with a “Computer Says No” situation. You call up a customer services agent hoping for a quick resolution to a perfectly reasonable query. But “computer says no”. You go through a convoluted questionnaire, answer the questions as best you can, but “computer says no”. The customer service agent shrugs saying that they can’t do anything because the system won’t let them.

It is tempting to call the customer service agent a jobsworth, or someone who doesn’t care about their job. To hang up in frustration and curse the status of the customer service industry.

So why is modern customer service so bad? Why do we dread calling up a help line or deal with an online customer support agent (who may or may not be a bot)?

Atul Gawande’s recent New Yorker article on why medical professionals hate their computers may have an answer. Dr. Gawande is a surgeon. In the article, he talks about how the medical informations systems used in his hospital make it difficult to really look after his patients.

Hospital systems in the US (much like the NHS in the UK) have spent billions of dollars to make medical care more efficient. But when we go visit our local general practitioner, we find them struggling with their PC more than talking to us. Instead of empathy, we get distracted clicks and frowns while the doctor tries to figure out how to massage the conversation into a bunch of drop downs and radio buttons. It is a terrible experience for everyone involved.

I am an engineer, I like efficiency. I like measuring the performance of the code I write and love reading articles about how to optimise software. In this pursuit of perfection, I fear that we have optimised ourself into a corner. Our systems are optimised, everything is measured — except the misery that they inflict on those who actually have to use the system every day. Human conversations and problems cannot be modelled so easily into a workflow. Improved throughput and the need to be more efficient drive design decisions more than the need to solve a problem. So we end up systems that their users hate. These systems and workflows lead to dis-engaged employees and ultimately to terrible customer service.

The next time that someone talks about having poor customer service, don’t blame the agent. Blame the analyst who designed the convoluted workflow in the software they use and the engineer who implemented it.

On Mental Models

A poorly illustrated guide to mental models

I had come across the term “mental model” before, but I could never really articulate or understand clearly what that term met. Today, while listening to an excellent podcast on Farnam Street with Venkatesh Rao (RibbonFarmBreaking Smart), I came across this passage which made a lot of sense:

I don’t think, really, mental models are so much about how the world works as much as they’re about internal consistency. Think of the world, the universe we live in as an extraordinarily confusing place that’s throwing huge amounts of information at you in an extremely high bandwidth way.

The Knowledge Project – Venkatesh Rao

So far so good — we all are familiar with information overload. But it’s not just the information in a particularly dense book or a John Oliver segment on chicken farming, even the very act of perceiving the world involves dealing with a huge amount of sensory input. Anyway, back to Venkatesh..

There isn’t enough processing power in the brain to handle that input raw. Our brain is basically layers and layers of processing that throw out most of it and map it to a sort of toy universe inside our head. It’s this toy universe that we actually play with. The only thing we ask of this toy universe inside our head is that it be much, much simpler than the world itself, and that it be internally consistent.

The Knowledge Project – Venkatesh Rao

So this “toy universe” is the mental model of the world. And the consistency of that mental model is what keeps us sane. When faced with external stimuli that don’t make sense or that does not map to the internal mental model, weird things happen. When faced with rapid societal change, some people turn to religion to try and make sense of the perceived chaos, or perhaps to make things simpler. Some choose nostalgia and the comforts of a simpler time and we end up with religious extremism and nativist politics.

What I took away from the podcast was the importance of tending to your mental model of the world. To let enough stimuli in to refine the mapping form the external to the internal and to be confident in getting rid of models that no longer map well to the external world. Easier said than done!MOSTLY HARMLESS

13 years of mistakes and what I learnt from them..

In 2004, I graduated from University with a degree in Computer Science and a graduate job at a large investment bank. In the years since, I have worked as a technologist in some of the world’s biggest banks and as of 2017, at a startup in London.

I have had many titles: business analyst, project manager, team lead; but I have always written code.

Earlier this week, I came across this thread on Hacker News. It is an “Ask HN” thread: “What habits make a programmer great?”. Go ahead and read it, it has some great advice.

It got me thinking about what I could add to that discussion. I am not a great programmer, but I get things done and I have had many years of mistakes to learn from.

So here are my 2p..


You will get frustrated, and it’s OK

Our field worships productivity. We hear about amazing applications built over a weekend. There is always someone who gets things done faster.

The truth is that programming is hard, sometimes lonely and often frustrating. Some of us work long hours, face challenging deadlines and difficult clients. Getting stuff done can be a long and arduous grind.

Getting angry and frustrated is perfectly normal. However, if not managed properly, it will lead to burnout and disillusionment.

Find out what coping strategies works best for you. When I feel like things are getting a bit too much for me, I go for a walk. Others grab a coffee and vent to a friend, some even talk to rubber ducks..

Be kind to yourself. Programming is mentally taxing, and your effectiveness depends on a number of factors that may be outside your control. Some days will suck, and you will feel like you got nothing done. It’s OK.


Know and love your tools

Our field moves fast, and every day there is a new tool, package manager or framework that will solve all your problems and make you a 10X programmer. This is a trap.

Take IDEs for example. I use IntellIJ IDEA for Java, Python, and JavaScript development. It is probably the most complicated application on my computer. It has taken me years to just get to the point where I can navigate the interface, understand the capabilities and am productive using the IDE. If I switched to something else, my productivity would plummet immediately.

You have already sunk hours into learning the tools you are using currently. Think of the return on investment (ROI) for all the time you have spent before moving on. Learn and love the tools that you use, and strive for max ROI.

Tools and frameworks come and go, but time moves only in one direction.


Don’t dive right in

Go on, fire up that IDE, you know you want to..

I am biased towards action. Given a choice between just getting started on doing something (anything..) or spending a few minutes thinking and planning, I tend to choose action over contemplation. I see this same tendency in many other programmers.

Diving right in feels good, feels productive, however I have learnt that this is merely an illusion. This approach has let me to dead ends, wasted time and frustration.

When faced with a feature to build or a problem to solve, I ask myself these questions:

  • What is the goal?
  • Will doing this move things (the product, project or company) forward?
  • How does this problem relate to what I know already? Do I know enough?

Once I have processed the problem, I work on outlining a solution. This can be a doodle, a user story or sometimes just a bunch of comments in an IDE. This exercise makes writing code the easy part of the whole process.

“Start projects by measuring the current state of the world. This goes against our engineering instincts to start fixing things. But when you measure the baseline, you will actually know whether you are fixing things.”

Kent Beck

Refactor vs rewrite is a false dilemma

We should rewrite everything in Elixir!

Everyone comes across a codebase that is so convoluted, so messy, so gnarly that the first instinct is to just want to bin it and start all over again. In some cases, this may be the right thing to do, for example if your client is willing to pay for a feature that would not be possible to implement given the current codebase.

However, in most cases looking at ways to clean up the legacy codebase by refactoring it is the more productive approach. Modern IDEs and code coverage tools make it easy to refactor a large codebase. This combined with a pragmatic approach to unit testing will take you a long way towards quickly and safely delivering value.

Refactor vs. rewrite is not a binary choice. It is a continuum that is heavily biased towards refactoring.

I have and have been a team member of numerous projects that were ground up rewrites. Most were abject failures. We spent weeks (sometime months) delivering functionality that already existed. By the time we got to adding value, the projects was behind schedule and over budget.


Don’t ignore the context

Then there was the grim reaper of Git, and then there was the koda of Kotlin, and then we decided to write everything in Haskell..

Nobody wants to write terrible code. The messy codebase you inherited is the result of battles wons and lessons learnt. It may give you a headache, but there is always something to learn.

It is worth spending some time to understand what problems the codebase is trying to solve and why it ended up the way it did. In most cases, it is the legacy codebase that is being actively used by your customers and paying your salary.

By ignoring the “why” and focusing on “how”, we are doomed to repeat the mistakes of the past. If the codebase is messy and broken, try to understand what caused that situation and try not to repeat the same mistakes or adopt the same patterns.


In conclusion

I have been part of more projects that have been qualified successes and unqualified disasters than those that have been unqualified successes. I am a mediocre programmer, but I keep striving to learn from my mistakes and make small improvements everyday.

What have you learnt from your mistakes?

Books of 2016

I had a target of reading 50 books in 2016. I didn’t quite manage to make it. I managed to only read 24. A dismal performance indeed. I read a couple of wonderful books and discovered some great new writers. I also managed to break out (well a little bit) from the cozy comforts of science fiction.

Perhaps I will make 50 in 2017!

BEST BOOK READ IN 2016

Paul Kalanithi’s memoir “When Breath Becomes Air” is lyrical, inspiring and heart breaking. Without a doubt the best book I read last year.

FICTION

I loved “Death’s End“, the epic, satisfying conclusion to the “Three Body Problem” trilogy by Cixin Liu.

Kenneth Liu’s short story collection “The Paper Menagerie” is excellent. You can read the titular story here.

NON-FICTION

Katherine Boo’s “Behind the Beautiful Forevers: Life, Death, and Hope in a Mumbai Undercity” is an unflinching, honest account of a year spent in a Mumbai slum.

Jacky Vance’s “Hillbilly Elegy: A Memoir of a Family and Culture in Crisis” is a memoir of growing up poor and white in the midwest. It made me think again about the assumptions I made about American politics.

DISAPPOINTMENTS

I disliked the much hyped “Chaos Monkeys: Obscene Fortune and Random Failure in Silicon Valley” by Antonio Garcia Martinez. The author’s overblown, sarcastic style really put me off an otherwise fascinating topic (for me).

HONORABLE MENTIONS

I enjoyed Neil Stephenson’s “Seveneves” and Alistair Reynolds’ “Revenger“. Both excellent science fiction books.

 

Review: Death’s End by Cixin Liu

Death's End (Remembrance of Earth’s Past, #3)Death’s End by Liu Cixin
My rating: 5 of 5 stars

Death’s End is the final instalment in Cixin Liu’s “Three Body Problem” series. I read a lot of science fiction and I am not exaggerating when I say that this series is amongst the best I have read.

The scope, scale and ambition of Mr. Liu’s work is such that even writing a review for his books feels like a daunting task. So I am not going to bother, and am just happy to be a giddy fan boy.

The Three Body Problem series deals with the Fermi Paradox; more broadly, it is a meditation on what it means to be human and our place in a huge and uncaring universe. The books take us from revolutionary China to the far, far future. Mr. Liu (and his translators) blend Chinese culture and truly mind bending science to create an intoxicating world that I have enjoyed being immersed in and thinking about.

Death’s End stands alone as a great book and it is a brilliant conclusion to the Three Body problem series. Cixin Liu has sold millions of books in China and his reputation as a science fiction superstar is justified. Ken Liu (The Three Body Problem and Death’s End) and Joel Martinson (The Dark Forest) have done sterling work translating his books for a wider audience. Don’t wait, pick up The Three Body problem and be prepared to be blown away.

** The trilogy is called “Remembrance of Earth’s Past”. Apparently in China the series is better knows as the Three Body Problem series, and I think that makes more sense to me. So I refer to it as Three Body Problem..

View all my reviews

Fiction: The Facility

First there was darkness and silence. Then the world turned a dim pink, and Kamal heard his heart beat, fast and irregular. The brightness grew until he opened his eyes to find a cluster of bright white lights shining down on him. He was lying on his back, and appeared to be alone in a room with whitewashed walls shrouded in gloom. He lay there on blinking at the bright lights, feeling like he had fallen off the top of a tall mountain and had landed having broken all the bones in his body.

He felt pins and needles all over his body. He tried to flex his fingers and twiddle his toes but nothing seemed to happen. He was alone and the room was quiet. He could hear a low hum in the background, but it was hardly noticeable above his labored breath. He could not recall how long he had been in that room. He had been drifting in and out of sleep.

Kamal dreamt of being the centre of attention in a large party. People congratulating him, shaking his hands and some hugging him. But it all felt very vague, as if something that had happened far enough to someone he barely knew. He felt some movement in the room, a slight shift in the air. He opened his eyes, and saw a shape, about the size of a man, standing in the gloom outside the cone of light from the lamp overhead.

He tried to speak, to call out to the shape, but he couldn’t. His throat felt raw, his lips dry and stuck together. He tried waving his arms, but the wave didn’t progress much more than a twitch of his fingers. More movement, and then his bed began to tilt up. It creaked slowly, raising Kamal to a sitting position.

The figure in the gloom moved forward. Kamal heard the familiar whine of electrical motors and the click of mechanical limbs. A bipedal drone strode into view and stopped a meter away from Kamal’s bed. The drone looked similar in design to the delivery drones that he had seen come and go from his father’s store back in London.

The drone held a brown box and a tray with a tumbler filled with water. It moved forward, and left the items on a table next to Kamal’s bed before disappearing back in the gloom. When he saw the water, he realised just how thirsty he was. It took him a few minutes to figure out how his limbs worked, but he managed to reach over and get himself a drink.

He had a look at the box the drone had left. There was a note attached to it, it was printed:

“You have just finished a long journey. Take some time to rest and recuperate. Keep hydrated. You will hear from us soon.”

Kamal opened the box and saw what looked like granola bars. He managed to eat one before falling back asleep.

This cycle continued a while. The drone would show up with water and food; always granola bars, sometimes apples and oranges.  Kamal’s time was spent eating, drinking and sleeping. He could barely remember his name.

After about 24 hours of waking up, the Kamal felt well enough to leave the bed and to explore his room. It was about five meters long and four across. There was a door leading to an empty corridor, and another door leading to a bathroom. The corridor was dark. The only light coming from the lamp above Kamal’s bed and from the small lamp in the bathroom.

Kamal saw himself in the mirror. He looked washed out, shrunken, awful. There were needle marks on his arms and his body simply refused to cooperate in doing the most simple tasks. Walking around, using toilet, all of it was an ordeal. Even worse was the confusion. He knew his name was Kamal, he came from London, his father owned a store, and lived with his brother in London. But he couldn’t tie his memories to his current situation.

The drone was his only companion, but like most drones, it was not particularly companionable. Kamal tried to talk to it, ask it where he was, what was going on, and got nothing. He tried blocking it from leaving, but it would just stand mute and still until Kamal got out of its way.

Kamal decided to follow the drone out of the door and into the corridor. The drone led him through the gloom to a circular security door. Kamal had seen doors similar to these in the entrances to his office block in Uxbridge. The drone walked through, but the door would not let Kamal through. He stood there a little while, tried knocking on the door, even tried shouting to see if there was someone around. But there was nothing but silence.

The next time the drone showed up, it was carrying something that looked like an ancient tablet. It left it on the bedside table along with Kamal’s food and was gone, motors whining and the ambulatory mechanism clicking down the corridor. Kamal picked up the tablet.  The glass screen was dark. There was a single button mounted on the bezel. When he pressed button, the tablet came to life:

Hello. This is a non-interactive device. This device will sound an alarm in 8 hours. Please rest until then. Follow all subsequent instructions.”

Kamal tried prodding the button again, he tried swiping up and down, right and left and nothing happened. The tablet displayed the same text, and a timer counting down the eight hours. There wasn’t anything else to do but wait.

The tablet started buzzing at the appointed time. Kamal was ready. He had been spent the last hour sitting on the bed watching the clock on the face of the table count down to zero. At the appointed time, the tablet lit up:

“Please walk down the corridor and through the security door. Please follow the next corridor to the end. The door at the end will be unlocked. Please enter the room and await further instructions.”

Kamal had been in the room for around 48 hours. He could just about walk, and he felt his mind clearing. The confusion receded a little. It had been replaced by agitation. This place was wrong, Kamal wasn’t supposed to be here. He was, however, glad to be given a chance to leave.

He walked out into the dark corridor and felt his way to the security door. It let him through and Kamal found himself in a well lit room. The room was dominated by a large screen set on the wall on one end. It was showing some text:

“Hello. This is an interactive screen and responds to voice commands.”

“Who are you? Why am I here? Where am I?”

“I am an interactive screen and respond to voice commands. I am programmed with a limited number of responses to your questions. Please speak slowly and clearly.”

Kamal had dealt with customer service bots before. The key was to be clear and unambiguous. “Where am I?”

“You are in a medical facility.”

“Why am I here?”

“You are recuperating from a medical procedure.”

What medical procedure?”

You were in stasis. You have been revived.”

Kamal’s confusion returned. Stasis? That was the procedure they had used for the terminally ill. Kamal felt almost a physical jolt as some of his memories came tumbling back. The party, the journey – the upload lottery had come through. He had heard that the transition could be difficult. The laws didn’t allow for two way communication between the Uploaded and the rest. Perhaps this was normal?

“The upload procedure… did it work? Where am I?”

“I am unable to answer that question. You are in a medical facility.”

Kamal felt a sense of dread rising. He had signed up for the procedure as soon as the lottery had come through. Perhaps he was dreaming.

“What do I do next?” Kamal asked.

“You are free to leave. Please keep the tablet with you at all time. Await further instructions.”

Leave what?”

“This facility.”

Kamal knew that the conversation wasn’t going to go anywhere.

“Where do I go?”

“Please leave this through the door on your right. The exit to the facility is via an escalator at the end of the next corridor.”

Is there someone I can talk to here?”

“I am programmed with a limited number of responses to your questions. Please speak slowly and clearly.”

Kamal knew he had to leave the facility if there was any hope to getting answers. He looked around the room and saw the shelves lining the walls were stacked with equipment. He saw boxes of the granola bars, some clothes and a sturdy pair of boots that just about fit him. He was still in a hospital gown. He would need to change and gather some supplies before leaving.

After about thirty minutes, Kamal took the elevator. He had found a small pack that he had loaded with granola bars and apples. The elevator creaked upwards before stopping at the only floor marked on the dashboard. Kamal left and walked out into bright sunlight.

The elevator had taken him up to an atrium. Or more accurately, what might have been an atrium. The doors opened on to a wide hall that had been taken over by vines. The sunlight was streaming down through the ruins of a skylight in the ceiling of the atrium. The doors, once made of glass and steel, were shattered and flung open on to a meadow. The atrium looked abandoned and it was quiet.

Kamal checked the tablet to see if something had changed. It remained dark. Kamal walked towards the doors, picking his way through the plants and shrubs that had colonised the concrete of the atrium floor. The sunlight felt good after the hours spent underground.

Kamal made his way out towards the meadow when he saw the girl. She looked like a teenager, perhaps fifteen or sixteen. She had dark brown skin and curly hair cropped close. She wore a loose shirt, a pair of denim trousers and sturdy boots. She stood facing him, mouth open in surprise. Clearly she hadn’t been expecting to see Kamal walk out of that ruined atrium.

“Hello. My name is Kamal. What is your name?”

The girl seemed to gather her thoughts. She took a step backwards but kept her eyes on Kamal.

“Do you speak English?”, it was a ridiculous question and Kamal knew it. But he couldn’t think of anything else to say.

“Yes”, she replied. “My name is Lily.”

 

Fiction: The Spirit and the Voice

Lily had always been different. The Spirit had never taken her even now, as a young woman, she wondered about what that meant. She had often seen the Spirit take father and mother, both writhing in ecstasy on the floor, arms and legs splayed, eyes closed. Sometimes the Spirit would be so forceful that father would lose his water. Yet he seemed so calm, almost ecstatic, after an intense communion.

The Spirit showed herself to her sister Daisy in a different way. They might be playing outside, running around near the reservoir, when Daisy would go quiet. Her eyes, normally bright, would go dull. She wouldn’t respond to questions, or react when Lily punched her on the arm. She would just stand there for a while before coming back, after the Spirit released her. Lily asked her how it felt, and Daisy always said that it was like nothing in this world. She said it was an absence, a feeling of losing touch with the world and of floating alone, but surrounded by the Spirit.

The Spirit communed with people in different ways. Some would fall, their legs collapsing beneath them, to lie motionless. Some could jump and twitch, wave their hands, as if they were at the mid-summer dance.

Lily could only watch, and listen and experience the Spirit through her friends and her family. When she was a child, she would pray to the Spirit, ask it to visit so she could be calm like Daisy or ecstatic like father. She would get upset and ask mother why it wouldn’t come, and how it wasn’t fair. Mother would hold her close, and whisper, “Don’t worry my love, nobody knows how the Spirit works. We are all blessed in different ways”.

When Lily got older, she accepted that perhaps the Spirit would never come. She took it upon herself to collect the stories of the Spirit, to catalog other people’s experience on her visits. For her, the Spirit was a mystery, something to study and to contemplate.

Lily had grown up in the shadow of the station. Watching the tall silent chimneys blow out white steam up into the sky was one of her earliest memories. Her mother tended to the apple trees in the orchard just outside the village and her father, a priest, tended to the men who worked in the station.

Every twelve hours, the sirens would call out from the station, signaling the start of a new shift. Men and women would stream out and head back to the village to their homes and their families. A new batch of people would take their place and do the work assigned to them. Some kept the gardens around the station, others looked at the glowing screens inside the station, while others worked in the myriad buildings and structures around the station.

Father, due to his affinity with the Spirit, couldn’t work in the station. He told Lily that the Voice had chosen him to look after the people doing the important work at the station. He held mass at the end of each shift. Preaching to the exhausted men and women, thanking them for their work in keeping the station in such fine order, and for doing performing their duty to the Voice.

The Voice and the Spirit were the two guiding forces of Lily’s world. The Voice commanded, and the Spirit visited. The Voice was inside everyone. The Voice spoke only when necessary. It was always direct and clear. It told the workers at the station what to do, from which switches to press to which chimneys to clean. Each villager had a role to play in keeping the station working and the Voice was the conductor. It helped Father with his sermons, it helped mother with tending to the trees in the orchards and it helped Lily heal the people  in the village.

The Voice was absent until the thirteenth year of a persons life. Lily remembered being shocked when the Voice first spoke to her. The Voice was clear, and calm and direct. She felt it in her very core. The Voice told her that she would be a healer and she would help the people of the village. The Voice had been with her ever since, teaching her how to soothe burns, how to stitch cuts, and how to help those that had a particularly intense communion.

Lily enjoyed working for the Voice. She liked its calm, even timbre and the certainty of its presence inside her.  It was imperative that a person listen to and obey the Voice. The consequences of disobedience were swift and could be final. Father told her the story of the man who refused to head into the station to put out a fire in the cooling tower. The man was scared and betrayed the village and the station by being a coward. The Voice banished him. He was ordered out of the village and to the mines. When he tried to sneak back into the village, the Voice commanded him to climb the station chimney and jump off, right as the night shift ended. Father still remembered the man’s screams and pleas for mercy as he climbed the chimney.

Lily had always been curious. She asked mother about the Spirit and the Voice, and where they came from. Mother said they had always been there in the village, as long as she or anybody she knew could remember. Lily would often ask the Voice questions. If the question was about her work, the Voice would answer. Otherwise it remained silent.

The village had few visitors. The only people Lily would see were the miners bringing in coal for the station. They would appear on the sixth day of every week. The miners were a quiet lot. They kept to themselves and seldom spoke to the villagers. It was clear though, that they too were guided by the Voice and visited by the Spirit. Lily had once helped a miner who had hit his head when communing with the Spirit. He heard him talking to the Voice about the schedule of their next delivery.

Sometimes people from other villages or stations would come visit a while or move to the village. Sometime the Voice would ask them to move from one village to another. It might be because the villager had particular skills needed by the station of the village, or it might be for no clear reason at all. As father often told Lily “One never questions the decisions of the Voice”.

Life in the village was predictable. Lily would spend the morning checking in on the workers from the night shift, cook dinner for the family, and spend the evening checking in on the workers from the morning shift. Most of her visits were routine, enlivened sometimes by a particularly gruesome injury or an intense communion with the Spirit.

On quiet days Lily would walk amongst the apple trees and try to imagine the world outside the village. If she wandered too far, the Voice would ask her to return. Usually this came in the form of a request to check in on someone not doing well back in the village. As she went from being a teenager to a young woman, Lily’s yearning for exploring the world beyond the village grew.  She kept asking the Voice about the world outside, and where the Voice came from.

The Voice had always been silent until one drizzly spring day when it finally answered.

“You are here because you have a role to play”

Lily, shocked, stood still wondering if she had just hallucinated. “Why speak now? Why remain silent all these years?” she asked after recovering her bearings.

“We ask because we need your help,” the Voice answered. “One day soon, your wish will come true and we will ask you to travel far away from the village. Until that day, you will obey us and do your duty.”

Lily asked many more questions to the Voice. She asked it where she would go, what she would do, but the Voice remained silent. After a while, Lily was overcome with elation. She had never had communion with the Spirit, but now she had spoken with the Voice. The mystery at the center of her existence had deepened, yet she had found new meaning. She made her way back to the village in time for the end of the morning shift.