Defining Problems

Defining problems is a key and often overlooked step in software development.  Everyone like to solve problems – but determining what the problem is first can save time and ensure the solution is something extraordinary.

Excerpt from Chapter 2 of The Storyteller: A Zombie Software Story:

Max nearly choked on his bagel. After scalding his mouth on the coffee in an attempt to get the rest of the bagel down, he sputtered “One MONTH? To integrate two completely different code bases with a hardware interface? And that doesn’t even begin to touch on the workflow integration for a system that has to be field ready for God-only-knows what user base?  Are you INSANE?”

The lead developer barked a laugh which turned into a cough as Ben elbowed his ribs. Manisha nodded her head sympathetically. “I know it’s a lot to take in, but I’m confident that if we follow our story process, we’ll be able to come up with POC that will not only satisfy the government requirements, but that will give us the blue print we  need to make a really great product.”

Max just stared at her open-mouthed.  She didn’t seem like a crazy person, but what she just said was, without a doubt, crazy.

Angie snickered “Close your mouth, Max, before you start catching flies!”

Manisha smiled, nodding to the white board wall behind him. “Let me explain.”

She walked up to the wall, snagging a marker on her way past the table. She started to draw as she talked.

“Since humans first started to communicate, they have done so in stories. “

She drew two stick figures facing each other.

“Stories give us, not just the facts, but how the person telling the story sees those facts.  They give us context” She drew a blob between the people and gave each person  a thought bubble – one had a circle in it, the other a square. Then the person with the circle started talking and had a speech bubble with the blob = circle.

“By telling each other stories, we are able to see things from other people’s perspectives and help other people see our perspective.”

She added a circle to the thought bubble with a square and put an equals with a question mark over it.

“This lets us come to a common understanding a move forward”

She erased the blob and made a square with rounded corners, replacing the contents of the thought bubbles with the same shape.

“Stories also help us understand patterns”

Now she drew two new stick figures. One had a speech bubble with three stars, one circle and three more stars.  The other had a thought bubble with three stars, one circle, three stars, one circle and then three dots.

“…even if we can’t see the patterns ourselves.”

Max nodded his head reluctantly. “OK, that’s all nice but how is that going to make this insanity you guys have cooked up doable?”

Manisha erased her drawings and wrote ‘Problem’ as high as she could reach. It was not very high. Then she turned to Max “To tell a story, first you need to know the problem that the characters are trying to solve.  So, let’s talk about what our problem is.”

Max leaned back, thinking. This was a lot like some of the design sprints they had run at the game studio he’d worked at prior to Where’s The Zombie.  You had to define the problem before you could get on with the solution.

“OK – talk me through the problem.”

Manisha took a moment to take a drink from her thermos before continuing. The elaborate scrollwork on the metal seemed a stark and artful contrast to the somewhat sterile conference table, and Max wondered what she was drinking. Tea? If he had to bet, he would bet it was tea.

“We have several problems, “ Manisha said, returning to the white board. “Let’s start with how we’re defining problems.

For our purpose, a problem is a situation or event that we want to change to achieve a different result.  The problem definition should include both the problem statement – that is what the situation or event is – as well as the desired result. The important thing is to avoid trying to solve the problem in the problem definition.”

Max nodded vigorously, glancing sidelong at Angie.  She was studying her shoes, deliberately not looking up. This was an old argument they’d had many times – she had a tendency to want to jump straight into problem solving mode and had a hard time understanding why that was an issue.

“Exactly” Max said, “It’s like asking someone to build you a car instead of asking them to build you a way to transport individuals and their belongings from one point to another.”

Manisha smiled again “Precisely. By defining the problem, you determine all of the requirements. In your example, you would need to define how many individuals would need to be transported at one time, under what circumstances, how frequently, and so on.”

“But,” Angie interjected looking a bit miffed “Then you might design a bicycle or a scooter or something!  And I wanted a car!”

“Do you?” Manisha asked, unperturbed by the interruption.”By defining your requirements well without suggesting a solution, you might end up getting a teleportation device or something equally amazing. There are a number of excellent examples of how well-defined problems lead to superior solutions from the oil industry to medical research[1]. Defining a problem well is both difficult and rewarding.  It can lead to true innovation or could identify new directions. It ensures that you are creating a solution that has no problem.

At Virtual Zombie, we’ve discovered that creating stories helps us better define problems.  Let me show you what I mean.”

On the board, she drew three large squares, like a cartoon series. In the first, she drew a stick figure with it’s hands in the air and a thought bubble that said “oh no! Zombies” with another angry looking stick figure reaching for it.  In the second square, she drew the same two figures, with a third pointing a gun with the label “new” at the zombie saying “I’ll save you”. The third box had the zombie sticking it’s tongue out at the figure with the gun saying “Missed me sucker!”

Max snorted. “So our problem is that zombies are sassy?”

Manisha laughed “If only!  Our problem is that we need to protect people from zombies. We want to use the governments invention, but the new weapon does not do a good job of targeting. It’s not very mobile or easy to use, like a rifle or a handgun.”

Intrigued, Max asked “What are the specifications?”

“Good question!” Jolene slid a stack of papers over to him.  Justin scooted a chair over to take a look. Max started reading through the papers. The weapon was unwieldy and heavy – it had to be mounted on something that could move it around.  Accuracy was important for disruption of the zombie but shooting innocent civilians wouldn’t be an issue as the pulse was not harmful to regular humans.

Justin looked up “So, why don’t they just widen the beam? It says here that tests on humans showed no reaction – why not just make it like a big area effect?”

Jolene nodded at the papers “Keep reading.”

Max had already reached the answer “Look here “he pointed to a diagram” It’s effectiveness becomes diluted as the beam becomes larger. Larger than a basketball and it becomes useless. It’s got to be…let’s see… 2 inches in diameter for optimal effect.” He looked up at Manisha and Jolene in surprise. “That’s tight! How accurate can you be with the VZ software?”

The lead developer, a young man with long dark hair spoke up – Max tried to remember his name…Winston? Wesley? William? Definition a W-something…

“Accuracy won’t be the issue in a single case – it’s scaling it to large groups that require retargeting that hits our limit. We can model singular zombie movements to within tolerance.”

Manisha moved back to the board and under Problem she wrote ‘protect humans from zombies’. Under that she started a bulleted list titled Requirements ‘use government weapon’ ‘retargeting’ ‘accuracy to 2 inches’.

[1] https://hbr.org/2012/09/the-power-of-defining-the-prob