How to make difficult problems easier to solve with systems thinking

How to make difficult problems easier to solve with systems thinking

Welcome to the latest in a series of blog posts that aim to make the case for applying systems thinking to project management. The intention is to start a discussion with the broader APM community to share examples of where systems thinking has made a real difference to their projects and use this in turn to raise awareness of the main benefits and potential cost savings that a systems thinking-based approach can bring.

The previous post gave an overview of the application of systems thinking to project management . This post considers how systems thinking can help identify the right problem; where a ‘problem’ is a situation needing improvement or an opportunity to be addressed by a new product or service. Identifying the right problem, its scope, impacts and why it is a problem is the first step in meeting the project success factors described in the APM publication Conditions For Project Success .

Problem causes and scope

Applying systems thinking to define a problem uses the steps below and is shown in the diagram, with iteration as necessary. Systems thinking makes significant use of diagramming tools to both drive the analysis and document the results so that these can be communicated to stakeholders. A broader description of systems thinking, its application to project management, and descriptions of the diagrams can be found in this Systems Thinking SIG paper .

  • Understand what is happening: identify and describe trends and patterns as the inputs, outputs and environment Analyse these to frame the problem as patterns of behaviour to see the bigger picture. Considering different perspectives improves understanding.
  • Identify what and who is involved: identify actors (internal and external) and policy environment(s) responsible for Do not assume all behaviour is driven externally.
  • Identify and understand causal relationships: identify connections and cause/ effect relationships between the trends, actors and policies and whether causes magnify or diminish
  • Develop conceptual models to describe how trends and behaviours are View causes as uncertain and on-going (with feedback influencing causes and causes driving each other). Change perspective to identify broader causes and relationships. Actor maps may suggest different perspectives.
  • Develop hypotheses for problem causes to describe how trends and behaviours are generated. Changing perspective increases understanding.
  • Test hypotheses with quantified evidence. Note hypotheses can be shown to align with situations, but cannot be fully proved; only disproved.

How to make difficult problems easier to solve with systems thinking

Application of systems thinking to identify and understand the right problem

As indicated in the diagram, the scope of the problem, its causes and impacts should be documented as the analysis proceeds to form the basis for later business case development, define initial solution requirements and to start change control.

Main benefits

The main benefits of applying systems thinking to problem identification are:

  • Improved business case accuracy:
    • Provides the starting point for defining the right
    • Is necessary for an accurate business case for the project established to address the
    • Reduces potential reputational damage from addressing the wrong or incomplete
  • Improved risk identification:
    • Risks identified ‘at-source’ during analysis are better described and quantified than if defined through a later event (e.g. risk workshop).
    • More assumptions are articulated and better tested during analysis than if considered
  • Improved stakeholder buy-in and commitment to success:
    • Using the diagrams engages users, operators and senior management in their development. This helps gain their buy-in and commitment to
      • Users and operators because they participated in problem definition and understand their role(s) in the bigger
      • Senior management/ sponsors because they participated in problem definition, have a clearer problem/ impact description and a better basis to make

How to help make application of systems thinking successful in problem identification:

  • Use a suitable consultant to provide a working knowledge of systems thinking and facilitate initial analysis. While systems thinking expertise is not widespread, a working knowledge can be taught relatively
  • Keep senior management updated on problem analysis progress by using the systems thinking diagrams (e.g. context diagrams to explain current understanding of problem scope). This ensures sufficient analysis is completed before work on the solution definition starts.
  • Use gate reviews to assess whether sufficient understanding of the problem has been gained for solution definition to start. While a principle is to resist jumping to quick conclusions, problem analysis should be concluded as soon as possible. Information on gate reviews can be found in this published paper .

Conclusion

Applying systems thinking helps identify the right problem, its full scope and why it is a problem. It is the first step in meeting the APM project success factors. Systems thinking enables:

  • Capable and active project sponsors from a clear description of the problem, its causes and impacts using the diagrams, with these developed with the actors directly
  • Engaged end users and operators from their participation during problem
  • Commitment to success from fully understanding the
  • Clearly identified goals and objectives from a common understanding of the

Share your thoughts

Please share your thoughts and experiences by joining the discussion using the comments section below, joining the APM Systems Thinking SIG community or via the contact section on the APM SIG website .

Read other blogs in this series:

Image: Artur Szczybylo/Shutterstock.com

How to make difficult problems easier to solve with systems thinking

David Cole has 30 years experience of managing projects, programmes and portfolios to deliver products, services and business change in private and public sector organisations. As a management consultant he also advised these organisations on the management of their programmes and portfolios. He is a Chartered Engineer, a PRINCE2 Practitioner and a founder member of the APM Systems Thinking SIG.

He currently serves as the APM co-chair of the Systems Thinking SIG.

Can thinking like a computer help us solve our most difficult problems? You might wonder ‘what is the point of computational thinking?’ After all, we invented computers to help solve our most difficult problems. Why would we now want to think like them?

Well, there are a few reasons. The first reason is practical. It is not realistic to expect computers to solve every problem. After all, they don’t take into account human emotions or local knowledge.

The second reason is a moral one. Perhaps we shouldn’t rely on computers to solve everyday problems. I mean, who hasn’t see sci-fi films like Terminator or the Matrix? We can’t allow them to have too much power over us.

But this is not the point of my article. My point is how to use computational thinking to help with everyday problems.

What exactly is computational thinking?

You might think that computational thinking is a very longwinded way of solving problems, but actually we do it every day. Just think about it.

Computational thinking

Computational thinking is exactly what you imagine it to be. It is a way of thinking like a computer. In fact, we already use it in our everyday lives. When we cook a meal or get ready for work. When we budget for the weekly shop or plan a trip to the coast.

Computational thinking just means using a set process in which to break down a complex problem. By using this set process, you follow the set technique and find a solution.

For example, if you were to cook a meal, you wouldn’t just blindly throw lots of ingredients into a pan and hope for the best. You would consult a recipe book, go out and buy the correct ingredients, weigh them and then, following the instructions – cook them in the correct order.

Or say you were planning a holiday abroad. You would research suitable resorts and hotels. If you have children, you may look at child-friendly locations. You will look at the cost of flights and the times of departure and arrival. You’ll budget your expenditure and arrange for pickups to and from the airport. After carrying out all of the above, you’ll make a decision and book your holiday.

These are both examples of computational thinking. There are four steps in computational thinking:

Four steps in computational thinking

Decomposition

Taking the problem and breaking it down into smaller components.

Pattern recognition

Looking for patterns within these smaller components.

Abstraction

Focusing on the important details and leaving out irrelevant distractions.

Algorithms

Finding steps to solve the smaller problems which will then lead to a solution for the main problem.

You can use computational thinking in many aspects of your life. However, it is particularly helpful when it comes to solving everyday problems. That’s because it breaks down a complex problem into manageable parts.

For example:

You get in your car one morning and the engine doesn’t start. Obviously, you don’t give up, instead, you try and sort out the problem. So where do you start?

Decomposition

By breaking down the components.

Is it cold outside? Do you need to give the engine some gas? Did you remember to put in anti-freeze? Is the car in gear? If so put the gear in neutral and try again. Have you run out of petrol? Does the car have oil and water?

Pattern recognition

Now you can see that beforehand we had one main problem – the broken-down car. Now, we are dividing the car into different sections which are easily managed.

We can examine each section without getting overwhelmed at the scale of the problem. By doing this, we can also look for patterns in each section. Have we experienced this before? For instance, did our car fail to start on a previous occasion because we had left it in gear?

Abstraction

When you have one main problem, it is easy to get distracted with all the tiny little irrelevant details. By breaking it down into bitesize manageable portions, you can keep what is important in mind and discard what is not.

So with our car break-down, we won’t be concerned with things like the condition of the tyres or whether the windscreen wash is topped up. We are solely focused on what is causing the car not to work.

Algorithms

Now that we have broken our major problem into more manageable ones, it has become easier to identify what is wrong. We can now address the problem and find a solution.

So with our broken down car, once we have identified what is wrong we can fix the problem.

Why is computational thinking important?

Being able to think in this way is important for a variety of reasons.

We retain control

First of all, solving problems in a logical and measured way allows a person to remain in control of a situation. When we can analyse and predict what is going to happen, we are likely to learn from our experiences.

We become confident

By solving problems we become confident and learn to challenge ourselves. We acquire skills that boost our self-esteem. Every stage of computational thinking is an opportunity for learning, and, as a result, self-improvement.

We are not overwhelmed

By breaking down a complex problem we learn not to be overwhelmed by a seemingly insurmountable task. Then we start to recognise patterns once we have broken the task down. This comes with experience. Experience also teaches us what to discard and what is important in solving this problem.

All of these steps are vital life-lessons that are useful in our everyday lives.

Final thoughts

Computational thinking isn’t really about programming people to think like a computer. It is about teaching people the four fundamental steps to solve our everyday problems. Why not try it next time you are faced with a complex problem and let me know how you get on?

It can be easy to get bogged down in developing features when we get into user experience design. It’s not that features aren’t important but that they are often secondary to the reason a customer or user buys our product. That reason is simple; the user buys the product to solve a real world problem for themselves.

In practice that means we have to see the product first. A feature may (or may not) be a useful part of a product but without the product the feature is a waste of space. A smartphone may be able to run apps for example but the primary use of a phone is communication. Apps may enhance the communication experience but without the ability to make calls, send texts, etc. apps would be of little value by themselves.

Therefore, designers should think in products first and features second.

Nikkel Blasse, the product and interaction designer at Xing, calls this product thinking.

What’s the Problem?

The first step of product thinking is to determine the problem that your users are looking to solve. That’s the reason that they will buy your product (as long as it actually solves the problem in a meaningful and valuable way).

If the problem you choose doesn’t actually exist or the solution you propose doesn’t actually solve the problem – your products are going to be worthless to users. Products without users end up at the scrap heap (often with the jobs of the people who created them).

Sure, there’s the possibility that if you get the solution wrong – you can fix it but if you solve a problem that doesn’t exist; there’s little you can do about that in the post-launch analysis.

Finding real problems is difficult sometimes. Even when you do a bunch of research – it’s possible that you will identify a problem that doesn’t exist. However, the right place to start is always by talking to would-be users.

Don’t forget that users may not be able to articulate their problems very well (it’s not their job as Steve Jobs would have said) so you may need to dig deep and do some real life observations as well as just talking to your users.

The Structure of Product Thinking

How to make difficult problems easier to solve with systems thinking

You begin with the user and determine:

  • What the problem is that you need to solve
  • The audience that you’re going to solve the problem for

Then you look at the job to be done:

  • Why are you doing this (what’s the vision behind it)?
  • Strategy – the how will we do this?

Finally you reach your outputs:

  • What goals are we setting? What exactly will we achieve?
  • What features will this manifest as? What will we do to reach our goals?

Solve the Problem First

It’s vital that your process delivers a solution that solves the problem. Features that enhance this solution are welcome but if you don’t solve the problem – the whole product is fluff nothing more. It’s important to remember that while Interaction Design and Visual Design can build something beautiful – it’s wasted without the product being useful.

Don’t Forget to Define the Product from a UX Perspective

This product is for: (Your Audience)

It will help them solve this problem: (The Problem)

We will do this by: (The Strategy)

We expect a working product to: (The Objective)

Once you’ve done this definition – you can move on to deciding on the features.

What Does Product Thinking Do for the Design Process?

How to make difficult problems easier to solve with systems thinking
Author/Copyright holder: Jordanhill School D&T Dept. Copyright terms and licence: CC BY 2.0

It allows you to create features that matter for the users of your products. It lets you see the product in context and not as a combination of features and design efforts. It makes sure that you’re tackling meaningful problems. It reduces the risks of creating product failures (though nothing can eliminate these risks entirely).

It should also help shape the questions that a designer asks to develop products. It should give designers the confidence to say “no” when asked to introduce a feature that doesn’t support the solution. It should lead to leaner more effective products.

The Take Away

Product thinking enables designers to build better products. It’s a way of examining every design decision in context with the problem the user wants to solve. It should also extend the relationship between UX and product management.

However, for some product thinking is just a new buzzword that does not necessarily bring anything new compared, for example, to design thinking. Whether it is a new approach or not, you can use the concept product thinking as an advocacy tool. Maybe this term is easier to grasp for your manager, client, team, etc. So, analyse your internal audience and see what word makes more sense to accomplish your aims and convey your ideas!

Resources

Find out why Nikkel Blasse is convinced that Product Thinking is the next big thing in UX design here: https://medium.com/@jaf_designer/why-product-thinking-is-the-next-big-thing-in-ux-design-ee7de959f3fe

Reference:

What Is the Meaning of Production System?

Systems thinking is a big-picture approach to tackling workplace problems. Rather than focusing on individual parts of your company, it tries to study the workplace as a whole. The benefit of systems thinking is that you can see problems caused by how the parts of your business fit together. The downside is that systems thinking isn’t easy, particularly in large companies.

How Systems Thinking Works

The key principle of systems thinking is that everything is connected. When trying to make your company more efficient, it’s simple to focus on individual employees or different departments. However, your organization is more than the sum of its departments. Combined together, they interact in new and complex ways.

A car makes a good metaphor for how this works. It has hundreds of components, including the axles, the steering wheel and the transmission, but all of them have to work together to make a functional car. If every component is in perfect condition, but they don’t interact properly, the car is not going to work.

The Benefits of Systems Thinking

The best way to explain the contribution of systems thinking to efficient administrative performance is with examples. Suppose you’ve adopted an aggressive marketing policy for your company, successfully expanding your client base. Part of the policy is a promise of quick, quality customer service, but clients say you’re not delivering.

A details-oriented approach might assume customer service is obviously the problem and try to figure out what they’re doing wrong. If you use systems thinking, you look at the big picture and realize the problem arises from customer service and marketing combined. The marketing department is promising more than customer service can deliver, and customer service isn’t finding ways to improve things.

If, say, you’re debating whether to let employees telecommute, systems thinking considers the many different impacts this will have on your company:

  • Improved employee morale, which can increase loyalty.

Increased productivity due to saving commuting time.

Cost savings if you don’t need office space for every employee.

In the event of a terrorist attack, having a widely dispersed workforce can reduce the disruptions.

Less oversight of your employees.

  • Potential for security lapses.
  • Feedback and Patterns

    Another of the benefits of systems thinking is that it can make it easier to spot patterns and feedback loops in the way employees, project teams or departments interact. A feedback loop takes place when different parts of your company reinforce each other’s behavior for better or worse.

    For example, suppose a project manager demands more time from one of his team members, which interferes with his regular work. The team member’s regular supervisor counters by demanding more work in return, which reduces the team’s effectiveness. The conflict escalates from there.

    The problem isn’t with the supervisor or the project manager alone but rather in how they’re interacting. Systems thinking can show you the big picture, which is the first step to fixing it.

    The Systems Thinking Challenge

    Like most management ideas, systems thinking isn’t a miracle cure for corporate problems. Before embracing it, you need to keep in mind both the strengths and weaknesses of systems thinking. The big strength is its effectiveness at finding problems. The big weakness is that it’s difficult to do successfully.

    In a small startup, it may be easy to get a systems overview of the problem because everyone is on one small team. As the company grows, things become much more complex, making it hard to get a systems overview that takes in everything. Departments, branches and projects start to silo, which makes gathering all the information difficult.

    Another weakness is that systems thinking isn’t a good tool for tackling a crisis. If, say, a person suffers a heart attack, systems thinking about lifestyle, diet and medication changes is important but only after the crisis passes. Likewise, systems thinking isn’t the best tool when your business is in emergency mode.

    How can I navigate the grocery store quickly? Why doesn’t anyone like my Facebook status? How can I alphabetize my bookshelves in a hurry? Apple data visualizer and MIT System Design and Management graduate Ali Almossawi solves these common dilemmas and more in his new book, “Bad Choices: How Algorithms Can Help You Think Smarter and Live Happier,” a quirky, illustrated guide to algorithmic thinking.

    For the uninitiated: What is an algorithm? And how can algorithms help us to think smarter?

    An algorithm is a process with unambiguous steps that has a beginning and an end, and does something useful.

    Algorithmic thinking is taking a step back and asking, “If it’s the case that algorithms are so useful in computing to achieve predictability, might they also be useful in everyday life, when it comes to, say, deciding between alternative ways of solving a problem or completing a task?” In all cases, we optimize for efficiency: We care about time or space.

    Note the mention of “deciding between.” Computer scientists do that all the time, and I was convinced that the tools they use to evaluate competing algorithms would be of interest to a broad audience.

    Why did you write this book, and who can benefit from it?

    All the books I came across that tried to introduce computer science involved coding. My approach to making algorithms compelling was focusing on comparisons. I take algorithms and put them in a scene from everyday life, such as matching socks from a pile, putting books on a shelf, remembering things, driving from one point to another, or cutting an onion. These activities can be mapped to one or more fundamental algorithms, which form the basis for the field of computing and have far-reaching applications and uses.

    I wrote the book with two audiences in mind. One, anyone, be it a learner or an educator, who is interested in computer science and wants an engaging and lighthearted, but not a dumbed-down, introduction to the field. Two, anyone who is already familiar with the field and wants to experience a way of explaining some of the fundamental concepts in computer science differently than how they’re taught.

    I’m going to the grocery store and only have 15 minutes. What do I do?

    Do you know what the grocery store looks like ahead of time? If you know what it looks like, it determines your list. How do you prioritize things on your list? Order the items in a way that allows you to avoid walking down the same aisles twice.

    For me, the intriguing thing is that the grocery store is a scene from everyday life that I can use as a launch pad to talk about various related topics, like priority queues and graphs and hashing. For instance, what is the most efficient way for a machine to store a prioritized list, and what happens when the equivalent of you scratching an item from a list happens in the machine’s list? How is a store analogous to a graph (an abstraction in computer science and mathematics that defines how things are connected), and how is navigating the aisles in a store analogous to traversing a graph?

    Nobody follows me on Instagram. How do I get more followers?

    The concept of links and networks, which I cover in Chapter 6, is relevant here. It’s much easier to get to people whom you might be interested in and who might be interested in you if you can start within the ball of links that connects those people, rather than starting at a random spot.

    You mention Instagram: There, the hashtag is one way to enter that ball of links. Tag your photos, engage with users who tag their photos with the same hashtags, and you should be on your way to stardom.

    What are the secret ingredients of a successful Facebook post?

    I’ve posted things on social media that have died a sad death and then posted the same thing at a later date that somehow did great. Again, if we think of it in terms that are relevant to algorithms, we’d say that the challenge with making something go viral is really getting that first spark. And to get that first spark, a person who is connected to the largest number of people who are likely to engage with that post, needs to share it.

    With [my first book], “Bad Arguments,” I spent a month pouring close to $5,000 into advertising for that project with moderate results. And then one science journalist with a large audience wrote about it, and the project took off and hasn’t stopped since.

    What problems do you wish you could solve via algorithm but can’t?

    When we care about efficiency, thinking in terms of algorithms is useful. There are cases when that’s not the quality we want to optimize for — for instance, learning or love. I walk for several miles every day, all throughout the city, as I find it relaxing. I’ve never asked myself, “What’s the most efficient way I can traverse the streets of San Francisco?” It’s not relevant to my objective.

    Algorithms are a great way of thinking about efficiency, but the question has to be, “What approach can you optimize for that objective?” That’s what worries me about self-help: Books give you a silver bullet for doing everything “right” but leave out all the nuances that make us different. What works for you might not work for me.

    Which companies use algorithms well?

    When you read that the overwhelming majority of the shows that users of, say, Netflix, watch are due to Netflix’s recommendation engine, you know they’re doing something right.

    It can be easy to get bogged down in developing features when we get into user experience design. It’s not that features aren’t important but that they are often secondary to the reason a customer or user buys our product. That reason is simple; the user buys the product to solve a real world problem for themselves.

    In practice that means we have to see the product first. A feature may (or may not) be a useful part of a product but without the product the feature is a waste of space. A smartphone may be able to run apps for example but the primary use of a phone is communication. Apps may enhance the communication experience but without the ability to make calls, send texts, etc. apps would be of little value by themselves.

    Therefore, designers should think in products first and features second.

    Nikkel Blasse, the product and interaction designer at Xing, calls this product thinking.

    What’s the Problem?

    The first step of product thinking is to determine the problem that your users are looking to solve. That’s the reason that they will buy your product (as long as it actually solves the problem in a meaningful and valuable way).

    If the problem you choose doesn’t actually exist or the solution you propose doesn’t actually solve the problem – your products are going to be worthless to users. Products without users end up at the scrap heap (often with the jobs of the people who created them).

    Sure, there’s the possibility that if you get the solution wrong – you can fix it but if you solve a problem that doesn’t exist; there’s little you can do about that in the post-launch analysis.

    Finding real problems is difficult sometimes. Even when you do a bunch of research – it’s possible that you will identify a problem that doesn’t exist. However, the right place to start is always by talking to would-be users.

    Don’t forget that users may not be able to articulate their problems very well (it’s not their job as Steve Jobs would have said) so you may need to dig deep and do some real life observations as well as just talking to your users.

    The Structure of Product Thinking

    How to make difficult problems easier to solve with systems thinking

    You begin with the user and determine:

    • What the problem is that you need to solve
    • The audience that you’re going to solve the problem for

    Then you look at the job to be done:

    • Why are you doing this (what’s the vision behind it)?
    • Strategy – the how will we do this?

    Finally you reach your outputs:

    • What goals are we setting? What exactly will we achieve?
    • What features will this manifest as? What will we do to reach our goals?

    Solve the Problem First

    It’s vital that your process delivers a solution that solves the problem. Features that enhance this solution are welcome but if you don’t solve the problem – the whole product is fluff nothing more. It’s important to remember that while Interaction Design and Visual Design can build something beautiful – it’s wasted without the product being useful.

    Don’t Forget to Define the Product from a UX Perspective

    This product is for: (Your Audience)

    It will help them solve this problem: (The Problem)

    We will do this by: (The Strategy)

    We expect a working product to: (The Objective)

    Once you’ve done this definition – you can move on to deciding on the features.

    What Does Product Thinking Do for the Design Process?

    How to make difficult problems easier to solve with systems thinking
    Author/Copyright holder: Jordanhill School D&T Dept. Copyright terms and licence: CC BY 2.0

    It allows you to create features that matter for the users of your products. It lets you see the product in context and not as a combination of features and design efforts. It makes sure that you’re tackling meaningful problems. It reduces the risks of creating product failures (though nothing can eliminate these risks entirely).

    It should also help shape the questions that a designer asks to develop products. It should give designers the confidence to say “no” when asked to introduce a feature that doesn’t support the solution. It should lead to leaner more effective products.

    The Take Away

    Product thinking enables designers to build better products. It’s a way of examining every design decision in context with the problem the user wants to solve. It should also extend the relationship between UX and product management.

    However, for some product thinking is just a new buzzword that does not necessarily bring anything new compared, for example, to design thinking. Whether it is a new approach or not, you can use the concept product thinking as an advocacy tool. Maybe this term is easier to grasp for your manager, client, team, etc. So, analyse your internal audience and see what word makes more sense to accomplish your aims and convey your ideas!

    Resources

    Find out why Nikkel Blasse is convinced that Product Thinking is the next big thing in UX design here: https://medium.com/@jaf_designer/why-product-thinking-is-the-next-big-thing-in-ux-design-ee7de959f3fe

    Reference:

    How can I navigate the grocery store quickly? Why doesn’t anyone like my Facebook status? How can I alphabetize my bookshelves in a hurry? Apple data visualizer and MIT System Design and Management graduate Ali Almossawi solves these common dilemmas and more in his new book, “Bad Choices: How Algorithms Can Help You Think Smarter and Live Happier,” a quirky, illustrated guide to algorithmic thinking.

    For the uninitiated: What is an algorithm? And how can algorithms help us to think smarter?

    An algorithm is a process with unambiguous steps that has a beginning and an end, and does something useful.

    Algorithmic thinking is taking a step back and asking, “If it’s the case that algorithms are so useful in computing to achieve predictability, might they also be useful in everyday life, when it comes to, say, deciding between alternative ways of solving a problem or completing a task?” In all cases, we optimize for efficiency: We care about time or space.

    Note the mention of “deciding between.” Computer scientists do that all the time, and I was convinced that the tools they use to evaluate competing algorithms would be of interest to a broad audience.

    Why did you write this book, and who can benefit from it?

    All the books I came across that tried to introduce computer science involved coding. My approach to making algorithms compelling was focusing on comparisons. I take algorithms and put them in a scene from everyday life, such as matching socks from a pile, putting books on a shelf, remembering things, driving from one point to another, or cutting an onion. These activities can be mapped to one or more fundamental algorithms, which form the basis for the field of computing and have far-reaching applications and uses.

    I wrote the book with two audiences in mind. One, anyone, be it a learner or an educator, who is interested in computer science and wants an engaging and lighthearted, but not a dumbed-down, introduction to the field. Two, anyone who is already familiar with the field and wants to experience a way of explaining some of the fundamental concepts in computer science differently than how they’re taught.

    I’m going to the grocery store and only have 15 minutes. What do I do?

    Do you know what the grocery store looks like ahead of time? If you know what it looks like, it determines your list. How do you prioritize things on your list? Order the items in a way that allows you to avoid walking down the same aisles twice.

    For me, the intriguing thing is that the grocery store is a scene from everyday life that I can use as a launch pad to talk about various related topics, like priority queues and graphs and hashing. For instance, what is the most efficient way for a machine to store a prioritized list, and what happens when the equivalent of you scratching an item from a list happens in the machine’s list? How is a store analogous to a graph (an abstraction in computer science and mathematics that defines how things are connected), and how is navigating the aisles in a store analogous to traversing a graph?

    Nobody follows me on Instagram. How do I get more followers?

    The concept of links and networks, which I cover in Chapter 6, is relevant here. It’s much easier to get to people whom you might be interested in and who might be interested in you if you can start within the ball of links that connects those people, rather than starting at a random spot.

    You mention Instagram: There, the hashtag is one way to enter that ball of links. Tag your photos, engage with users who tag their photos with the same hashtags, and you should be on your way to stardom.

    What are the secret ingredients of a successful Facebook post?

    I’ve posted things on social media that have died a sad death and then posted the same thing at a later date that somehow did great. Again, if we think of it in terms that are relevant to algorithms, we’d say that the challenge with making something go viral is really getting that first spark. And to get that first spark, a person who is connected to the largest number of people who are likely to engage with that post, needs to share it.

    With [my first book], “Bad Arguments,” I spent a month pouring close to $5,000 into advertising for that project with moderate results. And then one science journalist with a large audience wrote about it, and the project took off and hasn’t stopped since.

    What problems do you wish you could solve via algorithm but can’t?

    When we care about efficiency, thinking in terms of algorithms is useful. There are cases when that’s not the quality we want to optimize for — for instance, learning or love. I walk for several miles every day, all throughout the city, as I find it relaxing. I’ve never asked myself, “What’s the most efficient way I can traverse the streets of San Francisco?” It’s not relevant to my objective.

    Algorithms are a great way of thinking about efficiency, but the question has to be, “What approach can you optimize for that objective?” That’s what worries me about self-help: Books give you a silver bullet for doing everything “right” but leave out all the nuances that make us different. What works for you might not work for me.

    Which companies use algorithms well?

    When you read that the overwhelming majority of the shows that users of, say, Netflix, watch are due to Netflix’s recommendation engine, you know they’re doing something right.

    Solving problems can be more fun than frustrating.

    How to make difficult problems easier to solve with systems thinking

    How to make difficult problems easier to solve with systems thinking

    Problems are an integral part of everyday life. So is problem-solving.

    But where people differ is in their ability to solve problems.

    Problem-solving has a synonym today, especially in the corporate world — fire fighting. Up to 70% of employees’ time is spent ‘fire fighting’. They spend more than six hours a day grappling with problems which should not exist.

    Some problems should be solved.
    Some problems should be left alone.
    Some problems should not exist at all.

    Trouble is, we spend most of our time creating and solving problems of the 3rd type in the quest for being busy.

    What a waste of time and productivity! Imagine what organizations can achieve if hundreds (or thousands) of employees get these 6 hours daily (or 30 hours weekly) to work on something constructive!

    The biggest reason for never-ending problems is our ‘fireman’ approach. While firefighters were our childhood heroes (they still are), there‘s a glaring difference between firemen and us.

    While solving problems, firemen set up breakpoints and let some fires burn. Using good judgment, they focus on the real problem and come up with permanent solutions.

    We, on the other hand…

    Fire fighting is not exclusive to the corporate world. The corporate is, after all, made up of people and their habits. In reality, our firefighting skills — or problem-solving skills — are flawed, though we hate to admit it.

    The Flawed Approach to Problem-Solving

    How to make difficult problems easier to solve with systems thinking

    Our mantra to solve problems is, “ if it isn’t urgent, worry about it later.” We procrastinate until it’s too late. Eventually, the ignored problem becomes so massive that it calls for — you guessed it — fire fighting.

    “ Every problem you neglect on Monday morning will arise and bite you in the back on Friday afternoon,” says Yuval Danieli, director of customer services at Morphisec.

    Then there’s the solution-centric approach. When we face a problem, we jump headlong into finding the solution without much thought and apply the first idea that comes to mind. This behavior is more fashionable than owning the latest iPhone. Thinking twice… that’s farfetched.

    Here’s the thing.

    The problem is not the problems (no pun intended). It’s our ability to solve problems.

    Enter Albert Einstein

    Contrary to the popular myth, Einstein was remarkably intelligent right since childhood. He built powerful mental models to attack and solve his problems — at work and in personal life.

    Einstein’s principles prove useful to solve problems better. Here are 3 of them:

    #1. “It’s not that I’m so smart, it’s just that I stay with problems longer.”

    We try to get rid of a problem as soon as possible. Hence, we jump into the water without testing its depth.

    How to make difficult problems easier to solve with systems thinking

    The result is that we repeat mistakes of the past and then put out self-berating social media status updates about how we suck because we never learn.

    Astute problems solvers, on the other hand, stay with a problem, come up with various possible outcomes, and examine each of them at length. The more they struggle with a problem, the more resilient they become and the better they get at solving problems.

    #1. “If I had an hour to solve a problem, I’d spend 55 minutes thinking about the problem and 5 minutes thinking about solutions.”

    The more time we spend understanding a problem, the more effective the resolution. Intelligent people don’t jump into solution mode quickly. Instead, they ask themselves, “which other factors are at play here?” and dig deeper.

    Techniques like 5 Whys and Fishbone allow us to get to the root cause of a problem and prevent it from occurring again. But these techniques also help us eliminate challenges we didn’t foresee or address.

    Ask Paul O’Neill, who turned an ailing Alcoa into one of corporate America’s heavyweights by addressing just one problem — worker safety.

    Examine what’s in front of you. But also uncover latent factors that contribute to the problem. Don’t look for solutions immediately; keep redefining the problem until you arrive at the root cause.

    #3. “We cannot solve our problems with the same thinking
    we used when we created them.”

    In his bestselling book Lateral Thinking, Edward de Bono points out that we spend a lot of time measuring how right or wrong a solution is. But you cannot dig a hole at a different location by digging the same one deeper.

    How to make difficult problems easier to solve with systems thinking

    In other words, you cannot approach a solution with a mindset that created the problem in the first place. Because if the only tool you have is a hammer, you tend to see every problem as a nail.

    Step away from the problem, encourage a pair of eyes that are distant from the situation to examine it, reach out to people who’ve already done what you’re trying to do — do anything, but break away from the cycle you currently follow.

    Persistence, focus, and imagination are the key to solve problems better.

    Most problems don’t come from bad people or sources. Rather, they stem from our loathing for uncertainty. Hard thinking and critical analysis don’t offer instant gratification and hence make us uncomfortable. That’s why we quickly dismiss the advice mentioned above.

    Problems are inevitable. The unpleasant feelings which accompany them… they’re not. Consider all options, regardless of how irrelevant they currently appear. Keep an open mind. Seek comfort in the uncomfortable.

    It’s only a matter of time before you begin to punch above your weight. Now wouldn’t that be something!

    Janelle Cox

    • October 16, 2019
    • Teaching Strategies

    How to make difficult problems easier to solve with systems thinking

    One of the main 21st century components that teachers want their students to use is higher-order thinking. This is when students use complex ways to think about what they are learning.

    Higher-order thinking takes thinking to a whole new level. Students using it are understanding higher levels rather than just memorizing facts. They would have to understand the facts, infer them, and connect them to other concepts.

    Here are 10 teaching strategies to enhance higher-order thinking skills in your students.

    1. Help Determine What Higher-Order Thinking Is

    Help students understand what higher-order thinking is. Explain to them what it is and why they need it. Help them understand their own strengths and challenges. You can do this by showing them how they can ask themselves good questions. That leads us to the next strategy.

    2. Connect Concepts

    Lead students through the process of how to connect one concept to another. By doing this you are teaching them to connect what they already know with what they are learning. This level of thinking will help students learn to make connections whenever it is possible, which will help them gain even more understanding. For example, let’s say that the concept they are learning is “Chinese New Year.” An even broader concept would be “Holidays.”

    3. Teach Students to Infer

    Teach students to make inferences by giving them “real-world” examples. You can start by giving students a picture of a people standing in line at a soup kitchen. Ask them to look at the picture and focus on the details. Then, ask them to make inferences based on what they see in the picture. Another way to teach young students about how to infer is to teach an easy concept like weather. Ask students to put on their raincoat and boots, then ask them to infer what they think the weather looks like outside.

    4. Encourage Questioning

    A classroom where students feel free to ask questions without any negative reactions from their peers or their teachers is a classroom where students feel free to be creative. Encourage students to ask questions, and if for some reason you can’t get to their question during class time, show them how they can answer it themselves or have them save the question until the following day.

    5. Use Graphic Organizers

    Graphic organizers provide students with a nice way to frame their thoughts in an organized manner. By drawing diagrams or mind maps, students are able to better connect concepts and see their relationships. This will help students develop a habit of connecting concepts.

    6. Teach Problem-Solving Strategies

    Teach students to use a step-by-step method for solving problems. This way of higher-order thinking will help them solve problems faster and more easily. Encourage students to use alternative methods to solve problems as well as offer them different problem-solving methods.

    7. Encourage Creative Thinking

    Creative thinking is when students invent, imagine, and design what they are thinking. Using creative senses helps students process and understand information better. Research shows that when students utilize creative higher-order thinking skills, it indeed increases their understanding. Encourage students to think “outside of the box.”

    8. Use Mind Movies

    When concepts that are being learned are difficult, encourage students to create a movie in their mind. Teach them to close their eyes and picture it like a movie playing. This way of higher-order thinking will truly help them understand in a powerful, unique way.

    9. Teach Students to Elaborate Their Answers

    Higher-order thinking requires students to really understand a concept, not repeat it or memorize it. Encourage students to elaborate their answers by asking the right questions that make students explain their thoughts in more detail.

    10. Teach QARs

    Question-Answer-Relationships, or QARs, teach students to label the type of question that is being asked and then use that information to help them formulate an answer. Students must decipher if the answer can be found in a text or online or if they must rely on their own prior knowledge to answer it. This strategy has been found to be effective for higher-order thinking because students become more aware of the relationship between the information in a text and their prior knowledge, which helps them decipher which strategy to use when they need to seek an answer.