Order, Chaos Interrupts Order, and Response

Get Results: expand comfort zone through discomfort
Get Results: expand comfort zone through discomfort

We, humans, navigate the world using schemas, conceptualisations, and abstractions that help us simplify the world, so we don’t get overwhelmed by its complexity, but that allows us to map the world around us well enough to predict cause-and-effect relationships. What we mustn’t do is mistake the map for the territory.

At a very high abstract level, we often see the following pattern at work…

  • Order – safe space. the world we are familiar with
  • Chaos – is all the unknown territory that surrounds the safe space we inhabit. It’s all the complexity we’re shielded from
  • Chaos interrupts order – inevitably order is invaded by chaos.
  • How to respond – the question is how we respond to the interruption.

Whenever things don’t work out as planned, the car breaks down, the relationship goes down the pan, the business we put so much effort into fails, all these are examples of chaos invading order.

We live our lives on a knife edge, and as the saying goes, it’s not what happens to you, it’s how you deal with it.

We have seen so many films, and read numerous books that reflect these dynamics in action. Here’s a short story, which I hope highlights how this pattern plays out.

A short story of order and chaos

Once upon a time in the bustling city of Metropolis, there lived a young and ambitious entrepreneur named Alex. Alex had always been captivated by the world of business and dreamed of establishing a successful company of his own. With a relentless determination and an innate ability to organize and strategise, Alex embraced order in his life.

Driven by his passion, Alex meticulously planned every step of his entrepreneurial journey. He diligently researched market trends, analyzed potential risks, and developed a solid business plan. With a clear vision in mind, he began laying the foundations of his company, diligently adhering to his structured approach.

As the business began to take shape, the first few months were marked by remarkable success. Clients were drawn to Alex’s professionalism and meticulous attention to detail. Orders poured in, and the company steadily gained recognition and respect within the industry. Alex’s commitment to order and organisation seemed to be paying off.

However, amidst the triumphant atmosphere, chaos lurked in the shadows, waiting for the opportune moment to strike. Unexpectedly, a major supplier failed to deliver a critical component essential for the production of Alex’s flagship product. Chaos had interrupted his carefully organized operations.

Staring at the obstacle before him, Alex felt a surge of panic. He had meticulously planned for every foreseeable scenario, but this unforeseen disruption threatened to throw everything off balance. In that moment, Alex faced a critical decision—how to respond to the chaos that had disrupted his ordered life.

Instead of succumbing to despair, Alex chose to confront the chaos head-on. He rallied his team, encouraging open communication and brainstorming sessions to find alternative solutions. Alex reached out to other suppliers, forging new partnerships to ensure the uninterrupted flow of materials. The chaos had interrupted his order, but it had also presented an opportunity for growth, innovation, and new relationships.

As time passed, Alex’s response to chaos proved to be a turning point for his business. The experience forced him to think outside the box and embrace flexibility in his approach. He realized that even the most meticulously planned endeavors can be vulnerable to unpredictable disruptions. By adapting to the challenges, He discovered new avenues for improvement and expansion.

In the face of chaos, Alex’s business not only survived but thrived. The company emerged stronger, more resilient, and adaptable. The initial disruption became a catalyst for innovation and propelled Alex’s business to new heights. Through his unwavering determination and ability to respond to chaos, he had transformed his dreams into a resounding success.

Alex’s journey serves as a testament to the power of order and the ability to navigate chaos. By maintaining a strong foundation of organization and planning, he was able to weather unexpected storms and emerge victorious. His story inspires aspiring entrepreneurs to embrace the balance between order and chaos, recognising that it is through chaos that true growth and success can be achieved.

End of story

So it’s important to realise that the #1 order, #2 chaos invading order, #3 response pattern is an intrinsic part of everybody’s lives, and we should not fear it, but embrace the opportunity of growth and improvement it presents us with.

Learn the Lessons From Different Points Of View

Get Results: self awareness helps you learn
Get Results: self awareness helps you learn

Have you ever wondered why people have such different points of view, particularly with regard to political opinions?

It’s really not the case that “the other side” lacks intelligence, has no morals, or are just loonies.

It really comes down to personality traits – the temperamental inclinations we are born with.

Pre-cognitive screening means the world  actually presents itself differently to us, and not that we see the same thing and ignore some aspects and accept others. We don’t see the same things to begin with.

We can only pay attention to a limited set of things at any moment, in terms of their utility to us, and most things go unnoticed. My temperament dictates what I pay attention to, which is likely to be different to what you pay attention to. Sure there’ll be some overlap at times, but often we are seeing very different realities.

There will be some situations and problems which I will be better suited to deal with because of my temperament, and there will be other situations and problems, where you’re temperament will be better.

We each are a broader resource for the other.

We are more effective working together, to solve problems, than each of us are alone.

The battle between the political left and right is a necessary aspect of society because the two opposing forces push and pull against each other, and will probably give us a better version of society than a society under complete influence of one side or the other.

So, it can feel like a lot of effort to deal with the idiosyncrasies of people we don’t naturally agree with, but actually, they may be able to teach us something that doesn’t come easily to us.

It may be better to listen to people with different points of view and ideas, to see what you can learn from them, rather than dismiss them as foolish or idiotic, because you may well be the foolish one.

Maintain an Open Mind to Keep Learning

Get Results: Knowledge requires accurate information
Get Results: Knowledge requires accurate information

 

Dismissing the opinions of people you don’t agree with is not very intelligent.

Positioning yourself to win an argument closes you off from learning new, possibly important, information.

Holding tightly on to a position means you’re overlooking alternative perspectives, which may significantly improve your knowledge.

Different perspectives can be right or wrong depending on context at different times. Dismissing one approach at the expense of another without full consideration is a lazy, unsophisticated way of thinking, and can be very dangerous.

Open your mind to hear all views, engage in discussion to thrash out ideas in full.

This is the sophisticated, grown up way of finding the best approaches and solutions.

If you can’t debate your point against an alternative, maybe you’ve not fully fleshed it out yet, or maybe it’s just a bad idea.

Better for it to fail early while it’s still just an idea, rather than failing later with real-world consequences, for you and possibly other people.

The Art Of Learning

Get Results: learn with pleasure and remember
Get Results: learn with pleasure and remember

Learning any new skill can be a very intimidating prospect, to begin with, we’re likely to clumsily fumble around like a baby learning to walk, often falling on our asses, but over time, with enough perseverance, we’re all capable of metaphorically rising elegantly to our feet and not just walking, but running, dancing and jumping, and some people, with practice, can somersault and land back on their feet with great style.

In these modern times, with technology driving the business landscape to change so rapidly, there is a greater requirement for individuals to also be able to change rapidly, to be able to learn and develop new skills, and be open to new challenges and demands.

The ability to learn rapidly is going to be increasingly necessary if individuals are going to thrive.

So learning quickly is going to be a must, moving forwards. So the question is, how can we learn and master new skills fast?

Tim Ferriss has developed a learning framework he calls  DiSSS, which is an acronym for Deconstruction, Selection, Sequencing and Stakes.

1. Deconstruction: What are the minimal learnable units we should be starting with?
2. Selection: Which 20% of the blocks should we focus on for 80% or more of the outcome we want?
3. Sequencing: In what order should we learn the blocks?
4. Stakes: How do we set up stakes to create real consequences and guarantee we follow the program?

We’re looking to break a skill down to it’s most important components.

I find it easier to imagine starting a new project from scratch, and walk through it, step by step, noting down each requirement as  I go.

I have recently put some of the teachings, found on this website, into practice for myself, while learning Python programming. Things like, finding reliable sources of accurate information by using role models, mentors and mastermind teams, and finding out the methods, relationships, systems and habits they use  for success. You can find more about these things on other articles on the site, so I won’t go into depth here, but as part of the learning process I also looked to deconstruct the skill of programming into it’s essential ingredients. This is what I came up with..

Essential elements of programming

  1. Understand the syntax for Python code, so that it does what I need it to do.
  2. Develop the ability to break a problem down, so that I can use Python code to address or solve it. After all code is written to solve problems, some of which are complex and some of which are more straight forward.
  3. Following on from number 2, being able to spot problems to begin with is also a skill that can be developed, not everyone has enough empathy for others to be able to stand in their shoes and see how they see any given situation. Good coders either solve problems they, themselves experience and need fixing or they empathise for other people.

These were my major findings when it came to DECONSTRUCTING Python, these being the top level concepts that I needed to learn about and develop. They constitute the 20% that needs learning to achieve 80% of the results, in my opinion, as Tim Ferriss advocates in his DiSSS framework.

In terms of number 1, understanding the syntax of Python, there were/is countless websites and YouTube videos devoted to the subject. The most time consuming part of it was finding reliable ones that made it easy for a newbie like me to understand.

Some of the tutorials mixed mathematical principles and coding together, which for me, made it rather confusing, as I needed  to brush up on maths I hadn’t used for years, such as Algebra. I eventually found the tutorials that linked the new concepts I needed to learn about Python programming to things I already understood, and this made the learning process much easier.

The list of important syntax included:

  • Commenting on your code
  • Variables
  • Mathematical operations
  • Logical Operations
  • Conditionals such as if, elif and else statements which effect a programs flow
  • Loops – for, while loops particularly
  • Built in library
  • External library and use of modules
  • Data types – strings/ integers/ floats/ booleans/ lists/ tuples/ dictionaries
  • Dealing with errors and exceptions
  • Functions
  • Classes

I practiced code examples, repeating time and time again, until I could recall the code without any prompting and completely from memory.

I practiced the code, broke it apart, removed some of it to see what happened, moved the order around to see what difference it made. I changed it so that I knew what each part did and why.

I progressed by making a few small apps for myself, such as one that just did a simple “to do list”, another that converted currencies, sizes, weights. I did one that helped in the decision making process, another that evaluated moods and so on. Through this practicing and the subsequent trial and error, I gained a better appreciation for what could be done using Python.

I went on forums and groups and tried to spot the problems in other people’s code and solve them. Some forums and groups had challenges that I tried.

Through this I not only improved my coding skills, I developed my problem solving skills and ability to use code effectively to provide real solutions, this also realised number 3 in Tim’s framework criteria, SEQUENCING. I didn’t set out to learn code before sharpening my problem-solving skills, it just intuitively happened that way.

My programming skills are still a work-in-progress but I’m getting better all the time, through purposeful practice, and challenging myself.

I’m 50 years old, and coding with Python is a completely new experience for me, but I’m enjoying the learning process which means I don’t really have to bother with the final criteria of Tim’s framework, STAKES, the shear joy of doing it is enough to keep me going, mixed in with the fact that it’s giving me new skills and a greater knowledge of the new technical world we are facing. With knowledge comes power as they say, but equally with knowledge comes less fear, fear of the unknown.

For more about learning click here.

Learning To Code – Acquiring Knowledge And Developing A Skill

Get Results: coding
Get Results: coding

As part of my own journey of self improvement, and the subsequent creation of this website, I’ve worked at putting many of the sites teachings into practice. It’s made a huge difference to my business, my relationships and my general outlook on life.

As part of this process, I’ve opened myself up to doing new things. One of these new things has been learning to code.

Historically I’ve convinced myself that I’m not the type of person to be a coder, and have failed to be able to get into it. I now realise this to be a coping strategy and an attempt to not have to take responsibility. Kind of saying to myself “If god hasn’t designed me to be a coder, I guess he knows best”. This allows me to psychologically move on to something else.

However, I’m now a little wiser and certainly more self aware, I can admit I’ve been closing myself off to the challenge.

I’m now open to the challenge and the surprising thing is, I’ve really enjoyed studying it. There is so much to learn it can be overwhelming, but also really exciting, with regards to the headroom for learning and the future possibilities for coding.

The key skill to programming is the ability to solve problems. I like solving problems, as well as helping people, so coding is a good fit for me personally as it aligns with my core purpose.

So where to begin? After doing some initial research, and asking a couple of programmer friends of mine (who have subsequently become mentors), I came to the conclusion Python would be a good starting point. I like the idea of data mining , deep learning, AI etc and Python ticks many of these boxes. It’s also a high level programming language, which means it operates at a higher conceptual level, and this really appeals to me.

I realised that web based applications would also be possible, but figured learning more about JavaScript and PHP would be worth investigating. I was informed by one of my mentors that it’s relatively easy to pick up a second language once you have one under your belt, and this has subsequently proved to be the case.

I scoured the internet, particular Youtube to find easy to follow tutorials. Not having anything of a coding background, I found some of the terminology rather difficult to come to terms with, but  with plenty of patience and determination, I’ve been able to power through these challenges.

I figured it best to learn the basic building blocks of the language, which I’ve detailed below, this isn’t designed to be a comprehensive list, but to give you an idea of what is involved in the learning process. It also helps me crystalise my learning, because I’m a firm believer than if you can’t explain it simply, you don’t understand it well enough.

Hopefully you have gained some insight from my experience, and don’t shy away from learning new skills, I’m 50 years old and prepared to learn a completely new skill set at my age. It’s never too late.

The important thing to remember is not to get overwhelmed, or try to run before you can walk. Be patient, understand the fundamentals well, before progressing. Play with and enjoy the learning experience for it’s own sake, and not for what you will gain at the end. It’s about the journey, not just the destination.

If you’re not particularly interested in coding, you don’t need to read this post any further.

Learning the fundamentals of Python

I’m not going into the details of installing Python, there are many resources online detailing the exact process, other than saying you input  your code into Idle, which comes along with the Python installation.

“#” is a comment, it’s not part of the code, but allows you to add important notes to help readability and explain what you’re trying to do on each bit of code.

Variables

A variable is simply a pointer to something in memory.

Python variables do not need explicit declaration to reserve memory space. The declaration happens automatically when you assign a value to a variable. The equal sign (=) is used to assign values to variables.

The syntax is such that the operand to the left of the = operator is the name of the variable and the operand to the right of the = operator is the value stored in the variable.

So “myVariable” in the example below is the variable name, it should have no spaces and not start with numbers. variable names can only include a-z, A-Z, _, and 0-9. Other special characters are not permitted.

myVariable = "Hello World"

# this is a comment, and not part of the code. If you want to print the result to the screen do the following..
print(myVariable)
another_name = "Hello World" 
print(another_name)

Both the above examples print out “Hello World” to the screen. The variable name can be anything you want it to be, but make sure it’s descriptive enough so you and anyone else can understand the code at a later date.

Values can include strings (including sentences) which appear inside “”, numbers (including integers, floats, complex number) , lists which appear inside [], tuples () or directories {}, and we’ll cover these data types later. Here are a few examples

randomNumber = 400 
print(randomNum)
randomList = ["money", 43, "red", "UB40"]
print(randomList)
randomTuple = ("money", 43, "red", "UB40")
print(randomTuple)

Functions

A function is a block of reusable code that is used to perform a single, related action. Functions are convenient for reusing, without having to write the code out again and again later in a program.

The syntax for functions can be seen below; start with “def” and are followed by the function name (you choose what) and parentheses  ( ).

The code block within every function starts with a colon : and is indented. The indentation is very important, it will not work otherwise. Indenting code is done by pressing space bar 4 times on new line.

The bottom line below “calls” the function.

def bitcoin_to_sterling(btc):
    amount = btc * 3714.76
    print(amount)
bitcoin_to_sterling(10) #this line calls the function

# this function replaces btc with 10 which is multiplied by 3714.76 = 37147.6
def greet_user(username):
# Display a simple greeting
    print("Hello, " + username.title() + "!")
greet_user('mike') #this line calls the function

# this function prints out "Hello Mike"

Conditionals : if – elif -else

Conditional statements are common among programming languages and they are used to perform actions or calculations based on whether a condition is evaluated as true or false. If then else statements or conditional expressions are essential features of programming languages and they make programs more useful to users.

x = 14 
y = 14
z = 5

if x < y:
    print("X is less than Y")
elif y < x:
    print("Y is less than X")
elif z > x:
    print("Z is greater than X")
else:
    print("Y and X are the same and Z is less")

# prints out "Y and X are the same and Z is less"

Loops

A loop is a programming construct that enables repetitive processing of a sequence of statements. Python provides two types of loops to its users: the “for loop” and the “while loop”. The “for” and “while” loops are interation statements that allow a block of code (the body of the loop) to be repeated a number of times.

# WHILE loop example
condition = 1 # variable
while condition < 10:
    print(condition)
    condition += 1 # just keeps adding 1 until condition is met up to 10 but not including 10
# FOR loop example 
colours = ["red","blue","green","yellow","orange"] # this is a list

# this is for actual FOR loop
for colour in colours:
    print(colour)

Lists

We’ve used a list in the previous example for loops

A list is a data type that can be used to store any type and number of variables and information. You can manipulate lists, adding, removing, sorting, deleting contents.

# FOR loop example 2 - manipulating the original list

colours = ["red","blue","green","yellow","orange"] # this is a list

# add to end of list
colours.append("pink")

# replace an item on list
colours[0] = "pink"

# insert into list
colours.insert(1, "pink")

# delete from list
del colours[0]
colours.remove("pink")

# sort list
colours.sort()

# reverse list
colours.reverse()

# this is the actual FOR loop
for colour in colours: 
    print(colour)

Tuples

Tuples are fixed size in nature whereas lists are dynamic. In other words, a Tuple is immutable whereas a list is mutable. You can’t add elements to a tuple. Tuples have no append or extend method.

A Tuple is created by placing all the items (elements) inside a parentheses (), separated by comma. The parentheses are optional but is a good practice to write it.

A Tuple can have any number of items and they may be of different types (integer, float, list, string etc.).

tup1 = ('physics', 'chemistry', 1997, 2000)
tup2 = (1, 2, 3, 4, 5, 6, 7 )
print(tup1)
print(tup2)

Directory

A directory is like a list but instead of looking up an index to access values, you’ll be using a unique key, which can be a number, string, or tuple. Directory values can be anything but the keys must be an immutable data type. A colon separates a key from its value and all are enclosed in curly braces. Here is the directory structure:

 d={key_1:a, key_2:2, key_3:ab}

menu = {"spam":12.50,"carbonara":20, "salad":15}
print(menu)
print(len(menu)) # 3

Classes and object-orientated programming

Python is an object-oriented programming language, as it manipulates and works with data structures called objects. Objects can be anything that could be named in Python, such as  integers, functions, floats, strings, classes, methods etc. All these objects have equal status in Python. They can be used anywhere an object is required.

You can assign them to variables, lists or directories. They can also be passed as arguments. Every Python object is a class. A class is simply a way of organising, managing and creating objects with the same attributes and methods.

class Employees(object):
   def __init__(self,name,rate,hours):
   self.name = name
   self.rate = rate
   self.hours = hours

staff = Employees("Wayne",20,8)
supervisor = Employees("Dwight",35,8)
manager = Employees("Melinda",100,8)

print(staff.name, staff.rate, staff.hours)
print(supervisor.name, supervisor.rate, supervisor.hours)
print(manager.name, manager.rate, manager.hours)

Opening, Reading and Closing text files

One thing you’re likely to need to do with Python, is manipulate external files, below is some code for  opening, reading and closing text files.

There are many libraries you can call upon to add functionality to your Pyhton code, such as NLTK, which help you deal with other file types, such as HTML (webpages), word documents, PDF files, electronic books etc.

# open and read from text file
f = open("test.txt")
#print(f.read())
# create and save text file
with open("list_created.txt", "w") as output:
 output.write(f.read())
# reading file
f = open("start_days.txt")
print(f.read())
# writing file
title = "Days of the Week\n"
days_file = open("start_days.txt", "r")
weekDays = days_file.read()
new_days = open("new_file.txt", "w")

new_days.write(title)
print(title)

new_days.write(weekDays)
print(weekDays)
# closing file
days_file.close()
new_days.close()
#changing external variables (string/interger combination) from a text file into a
#directory by defining key and value
mydict = dict((k, int(v))
for k, v in (e.split(' = ')
for e in days.split(',')))

Below is a fun little program, I’ve made, putting some of the code learned above, into practice. It interacts with a user, and asks them to input a number guess into IDLE. It’s only basic stuff, but it’s a start, and practice makes perfect.

The inspiration for making this little game came from reading an article about a coder who was asked to do a program that asked a user to guess a predefined number between 1 and 100, and printed out onto the screen after each guess, whether the guess was under  or over the target number.

magicNumber = 20
number = ""

while number != magicNumber:
    answer = input("Pick a number between 1 and 100 ")
    number = int(answer) 

if number > magicNumber:
    print("Too high")
elif number < magicNumber:
    print("Too low")
else:
    print("Well done, you've got it right!")

Doing this little program tweaked my interest in the concept of interacting with a user, so I’ve spent some time learning Javascript as a results, because I am able to interact with website visitors more readily using Javascript. I’ll be posting something in the future to detail my experience with this web based language.

Here is a rather more complex program, which I’ve since rewritten in Javascript.

print("first get a piece of paper, right down two choices for a particular decision you have to make. Under each right down 3 attributes that are important in the decision. Think about the most important to least important. Now lets begin")
define1 = input("Define your first option as suscinctly as possible ")
feature1 = input("define an attribute that is important in this choice ")
weight1 = input("weight it's importance 1-5 , five being more important ")
weightone = int(weight1)
listing1 = input("how important is this attribute compared to other attributes. If it's the most important score it 5, if it's the second most important 4 and so on (least 1-5 most) ")
listingone = int(listing1)
result1 = weightone * listingone
print(define1)
print(feature1)
print(result1)

feature2 = input("define an attribute that is important in the choice ")
weight2 = input("weight it's importance 1-5 , five being more important ")
weighttwo = int(weight2)
listing2 = input("how important is this attribute compared to other attributes. If it's the most important score it 5, if it's the second most important 4 and so on (least 1-5 most) ")
listingtwo = int(listing2)
result2 = weighttwo * listingtwo
print(define1)
print(feature2)
print(result2)

feature3 = input("define an attribute that is important in the choice ")
weight3 = input("weight it's importance 1-5 , five being more important ")
weightthree = int(weight3)
listing3 = input("how important is this attribute compared to other attributes. If it's the most important score it 5, if it's the second most important 4 and so on (least 1-5 most) ")
listingthree = int(listing3)
result3 = weightthree * listingthree
print(define1)
print(feature3)
print(result3)

if result1 > result2 and result1 > result3:
    print("The most imporant attibute is " + feature1)

elif result2 > result1 and result2 > result3:
    print("The most imporant attibute is " + feature1)

elif result3 > result1 and result3 > result2:
    print("The most imporant attibute is " + feature3)

else:
    print("No winner")


define2 = input("Define your second option as suscinctly as possible ")
print("The attribute has already been defined as " + feature1)
weight4 = input("weight it's importance 1-5 , five being more important ")
weightfour = int(weight4)
listing4 = input("how important is this attribute compared to other attributes. If it's the most important score it 5, if it's the second most important 4 and so on (least 1-5 most) ")
listingfour = int(listing4)
result4 = weightfour * listingfour
print(define2)
print(feature1)
print(result4)

print("The attribute has already been defined as " + feature2)
weight5 = input("weight it's importance 1-5 , five being more important ")
weightfive = int(weight5)
listing5 = input("how important is this attribute compared to other attributes. If it's the most important score it 5, if it's the second most important 4 and so on (least 1-5 most) ")
listingfive = int(listing5)
result5 = weightfive * listingfive
print(define2)
print(feature2)
print(result5)

print("The attribute has already been defined as " + feature3)
weight6 = input("weight it's importance 1-5 , five being more important ")
weightsix = int(weight6)
listing6 = input("how important is this attribute compared to other attributes. If it's the most important score it 5, if it's the second most important 4 and so on (least 1-5 most)")
listingsix = int(listing6)
result6 = weightsix * listingsix
print(define2)
print(feature3)
print(result6)

if result4 > result5 and result4 > result6:
    print("The most imporant attibute is " + feature1)

elif result5 > result4 and result5 > result6:
    print("The most imporant attibute is " + feature2)

elif result6 > result4 and result6 > result5:
    print("The most imporant attibute is " + feature3)

else:
    print("No winner")

calculation1 = result1 + result2 + result3
calculation2 = result3 + result4 + result6

if calculation1 > calculation2:
    print("Of the two choices, the one that got the best score, based on your answers was " + define1)

elif calculation1 < calculation2:
    print("Of the two choices, the one that got the best score, based on your answers was " + define2)
else:
    print("There was no overall winner")

Problem Solving Tools and Techniques

 

Get Results: problem solving
Get Results: Problem solving

We encounter numerous problems throughout our lives, and in all areas of our lives. The people that insist on putting a positive perspective on life have renamed problems, “challenges”, but for the purpose of this post we are going to stick with tradition.

Although problems can be simple or complex, we can go through a step-by-step process to try to solve the problem and provide a solution to it. Tackling problems is often a better solution than burying-our-head in the sand and hoping it goes away, although “doing nothing” can be a valid solution in itself. Burying our heads relies mainly on luck to solve the problem and takes the power away from us. Confronting the problem empowers us and in itself can be life changing.

One of the skills required for solving problems is decision making which is a topic in its own right, and is a crucial life skill that should be studied, and improved..

Stripping the problem solving strategy down to its basic components leaves us with 5 stages to go through.

1.Identify the problem and understand how it impacts your desired goal. I like to use the following equation to simplify this stage.

Get Results: problem solving equation
Get Results: Problem solving equation

 

  • Example = (EP) Enough traffic to site to earn living – (RP) not enough traffic to site = (P) need more traffic to site
  • More specific example = (EP) 1000 visits per day to site – (RP) 50 visits per day to site = (P) -950 visitors a day to site
  1. Break the problem down – Evaluate the components of the problem and their relationship to one another so that you understand the problem from all angles. You must define it clearly. so that you can understand it.
  2. Find possible solutions – Research the possible solutions and expected outcomes of those solutions. Weigh the pros and cons of each. Use your creative thought process for this. You are not guaranteed the outcomes will be as you expect, but you can only judge on the knowledge you possess at the time. Research the models, systems, habits and relationships of others that have overcome the problem(s) you are trying to overcome, where possible.
  3. Decision makingTake action to resolve the problem. Evaluate the options and prioritise, moving on those solutions that you believe will solve the problem.

5.Review. Check that the problem has been solved. If not then go back to step one and re-evaluate, adding the information learned to the mix and begin the process again. Each failure to solve the problem takes an option off the table, and moves you a step closer to finding the right solution.

There are a number of tools and techniques available to help you solve different types of problems. Some have been designed to tackle particular types of problems, ,many of which can be modified to fit your needs. Here is a list below:

Pareto Analysis (80/20 Rule)

Pareto Analysis is a statistical technique in decision-making used for the selection of a limited number of tasks that produce significant overall effect. It uses the Pareto Principle (also known as the 80/20 rule) the idea that by doing 20% of the work you can generate 80% of the benefit of doing the entire job.

Get Results: Pareto analysis (80/20 Rule)
Get Results: Pareto Analysis

 

Force Field Analysis

Force Field Analysis is a method for listing, discussing, and assessing the various forces for and against a proposed change. It helps you look at the big picture by analysing all of the forces impacting on the change and weighing up the pros and cons.

Get Results: force field analysis
Get Results: force field analysis

 

Six Thinking Hats

Six Thinking Hats is a system designed by Edward de Bono which describes a tool for group discussion and individual thinking involving six colored hats

Get Results: Six thinking hats
Get Results: Six Thinking Hats

 

Starbursting

Starbursting is a form of brainstorming that focuses on generating questions about an idea.

Get Results: starburst
Get Results: Starburst

 

Ishikawa Diagram (Cause and Effect Analysis)

The fishbone diagram identifies many possible causes for an effect or problem. It can be used to structure a brainstorming session. It immediately sorts ideas into useful categories.

Get Results: Ishikawa diagram (cause and effect analysis)
Get Results: Ishikawa diagram (cause and effect analysis)

 

Process Flow Chart

A flowchart is a picture of the separate steps of a process in sequential order.

Get Results: process flow diagram
Get Results: Process flow diagram

 

Paired Comparison Analysis

Paired Comparison Analysis helps you to work out the importance of a number of options relative to each other. It is particularly useful where you do not have objective data to base this on.

The Stepladder Technique

The Stepladder Technique is a simple tool that manages how members enter the decision-making group. It encourages all members to contribute on an individual level BEFORE being influenced by anyone else. This results in a wider variety of ideas, it prevents people from “hiding” within the group, and it helps people avoid being “stepped on” or overpowered by stronger, louder group members.

Venn Diagram

A Venn diagram is a diagram representing mathematical or logical sets pictorially as circles or closed curves within an enclosing rectangle (the universal set), common elements of the sets being represented by intersections of the circles.

Get Results: Venn diagram
Get Results: Venn diagram

Grid Analysis (otherwise known as Decision Matrix)

Decision Matrix Analysis works by getting you to list your options as rows on a table, and the factors you need consider as columns. You then score each option/factor combination, weight this score by the relative importance of the factor, and add these scores up to give an overall score for each option. Check out more about the Decision Matrix/Grid Analysis on my Decision Making post.

Get Results: decision matrix
Get Results: Decision Matrix

Cost/Benefit analysis

The cost/benefit analysis is designed to summarize the overall value for money of a project or proposal. It looks at the benefits of a project or proposal, expressed in monetary terms, relative to its costs, also expressed in monetary terms.

Risk/Reward ratio

Get Results: risk reward analysis
Get Results: Risk Reward analysis

The Risk/Rewards ratio is a ratio used to compare the expected returns of an investment against the amount of risk undertaken to capture these returns.

More tools

  • PMI
  • Decision trees
  • Critical thinking
  • Impact analysis
  • The ladder of inference
  • Blindspot analysis
  • The kepner-tregoe matrix
  • Nominal group technique
  • The delphi technique
  • 5 whys
  • Brainstorming
  • Check sheets
  • Concentration diagram
  • Activity sampling
  • Ranking and rating
  • Solution effect diagram

I’m sure there will be many other tools and techniques available, if and when I come across a new one I will add it to this list. I will in the course of time add some posts specifically about each of these tools, and link from this post to them, so keep this post bookmarked.

If you like this post, please share it with others, I would love you to join my mailing list so you get notification about my new posts when they go live, and I can send you tailor made content. Thanks for coming to visit.

Problem-solving Quotes

Quotes are a great way to draw inspiration, shift perspective and escape habitual thought patterns, here are a selection of problem-solving quotes I’ve collected over the years.

“Focus on the solution, not the problem.”

“Stop talking about your problems and start thinking about solutions.”

“If you don’t solve the problems from your past, they will follow you into your future.”

“Life is a continuous exercise in creative  problem solving.” – Michael J. Gelb

“Every problem has a solution, you just have to be creative enough to find it.” – Travis Kalanick

“When solving problems, dig at the roots instead of just hacking at the leaves.” – Anthony J.D’Angelo

“Never bring the problem solving stage into the decision making stage. Otherwise, you surrender yourself to the problem rather than the solution.” – Robert H. Schuller

“Problems are nothing but wake-up calls for creativity.” – Gerhard Gschwantner

“You’re either part of the solution or you’re part of the problem.” – Eldridge Cleaver

“Solving problems is a practical art, like swimming or skiing, or playing the piano; you can learn it only by imitation and practice.” – George Polya

“People who believe a problem can be solved tend to get busy solving it.” – William Raspberry

“The best way to escape from your problems is to solve them.” – Unknown

“Running away from any problem only increases the distance from the solution. The easiest way to escape from the problem is to solve it.”

“We can’t solve problems by using the same  kind of thinking we used when we created them.” – Albert Einstein

“Instead of thinking outside the box, get rid of the box.” – Deepak Chopra

“It isn’t that they cannot see the solution. It is that they cannot see the problem.” – GK Chesterton

“You can’t teach problem solving unless you are  a  problem solver.” – Jim Wilson

“Stay away from negative people. They have a problem for every solution.” – Albert Einstein

“The only way to get good at solving problems is to solve them.” – Seth Godin

“Problem-solving leaders have one thing in common; a faith that there’s always a better way.” – Gerald m. Weinberg

“It’s not that I’m so smart, it’s just that I stay with problems longer.” – Albert Einstein

“Any problem, big or small, within a family, always seems to start with bad communication. Someone isn’t listening.

“If a problem can be solved, there is nothing to worry about. If it can’t be solved, then worrying is useless.” – Unknown

“Sometimes problems don’t require a solution to solve them; instead they require maturity to outgrow them.” – Steve Marboli

“When people tell me “you’re gonna regret that in the morning” I sleep in until noon, because  I’m a problem solver.” – Unknown

“To launch a business means successfully solving problems. Solving problems means listening.” – Richard Branson

“There are solutions; even to the hardest problems.”

“Problem-solving is hunting; it is savage pleasure and we are born to it.” – Thomas Harris

“Not everything that is faced can be changed. But nothing can be changed until it is faced.” – James Baldwin

“The important thing is to never stop questioning.” – Albert Einstein

“Abilities essential for academic success and productivity in the workforce, such as problem solving, reasoning and literacy, all develop through various kinds of play, as do social skills such as cooperation and sharing.” – Susan Linn

“Insanity; doing the same thing over and over again and expecting different results.” – Albert Einstein

“Problems we have cannot be solved at the same level of thinking with which we created them.” – Albert Einstein

“All life is problem solving.” – Karl Popper

“Leaders spend 5% of their time on the problem and 95% of their time on the solution.” – Tony Robbins

“It’s very important to have a feedback loop, where you’re constantly thinking about what you’ve done and how you could be doing it better.” – Eton Musk

“Problem, means that you are dwelling on a situation mentally without a true intention or possibility of taking action.” – Eckhart Tolle

“To solve our most difficult problems we must radically change our thinking.” – Stephen Covey

“Mental acuity of any kind comes from solving problems yourself, not from being told how to solve them.” – Paul Lockhart

“Hate has caused a lot of problems in this world, but it hasn’t solved one yet.” – Maya Angelou

“Our problems are not solved by physical force, by hatred, by war. Our problems are solved by loving kindness, by gentleness, by joy.” – Buddha