Top Banner
Independent Consultant Hands-on So*ware Architect Published Author / Conference Speaker Mark Richards h<p://www.wmrichards.com h<ps://www.linkedin.com/in/markrichards3 @markrichardssa The Art of Problem Solving
70

The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

May 11, 2018

Download

Documents

buihuong
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

IndependentConsultantHands-onSo*wareArchitectPublishedAuthor/ConferenceSpeaker

MarkRichards

h<p://www.wmrichards.comh<ps://www.linkedin.com/in/markrichards3@markrichardssa

The Art of Problem Solving

Page 2: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry
Page 3: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry
Page 4: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry
Page 5: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry
Page 6: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

event consumer

event producer

event consumer

event consumer

event consumer

12

event consumer

34

Page 7: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

2300ms

500ms

Page 8: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry
Page 9: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry
Page 10: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

checklists

Page 11: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry
Page 12: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

step 1: understand the problem

step 2: devise a plan

step 3: carry out the plan

step 4: looking back

Page 13: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

step 1: understand the problemwhat is the unknown? what are you trying to solve?what are the data, conditions, and constraints?can you draw a figure or diagram of the problem?can you break the problem down into separate parts?

Page 14: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

step 2: devise a planhave you seen this problem (or a related one) before?can you restate the problem?can you solve part of the problem?can you solve it by removing or changing part of the condition?what can you derive from the available data?

Page 15: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

can you prove that the result is correct?did you use all of the available data?did you use the whole condition?did you apply all of the constraints?

step 3: carry out the plan

Page 16: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

can you check the result ("do the math")? does it make sense?

can you derive the results differently?can you see it at-a-glance?

step 4: looking back

Page 17: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

The Checklist Manifesto by Dr. Atul Gawande

Page 18: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry
Page 19: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

a bear, starting at point P, walked one mile due south. then he changed direction and walked one mile due east.

then he turned again to the left and walked one mile due north, arriving exactly at the point P he started from.

what color was the bear?

Page 20: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

P

north pole

Page 21: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

P

south pole

Page 22: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry
Page 23: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

visual representations

Page 24: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

one of the most important steps in solving a complex problem is drawing a visual representation

set 1 set 2 set 3 set 4 36 1 1 3 18 2 1 2 12 3 1 2 9 4 1 1 9 2 2 4 6 6 1 6 6 3 2 1 4 3 3 2

Page 25: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

how old are my three sons?two friends meet after not seeing each other for a long time. one friend tries to guess how old the other friend's three sons are...

friend 2: "I can guess their ages, but I will need some information first"friend 1: "okay - the product of their ages is 36"friend 2: "hmm, I will need some more information"

friend 2: "I almost have it. however, I will need just one more piece of information"

friend 2: "I know the ages of your sons"

friend 1: "okay - sum of their ages is equal to the number of windows in that building"

friend 1: "okay - my oldest son has blue eyes"

friend 1: "all 3 of my sons celebrate their birthdays today. can you guess their ages?"

Page 26: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

the product of their ages is 36the sum of their ages is equal to the number of windows in that building over there

facts

the oldest son has blue eyes

son 1 son 2 son 3 36 1 1 18 2 1 12 3 1 9 4 1 9 2 2 6 6 1 6 3 2 4 3 3

son 1 son 2 son 3 windows 36 1 1 38 18 2 1 21 12 3 1 16 9 4 1 14 9 2 2 13 6 6 1 13 6 3 2 11 4 3 3 10

9

2

2

Page 27: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry
Page 28: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

assumptions

Page 29: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

limiting assumptions

“we don’t have the time to

implement that feature”

can the solution be

done quicker or iterated?

Page 30: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

limiting assumptions

“we don’t have enough budget to

implement that feature”

can i find more money? can i

produce a cheaper solution?

Page 31: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

limiting assumptions

“that feature is impossible to implement”

is it really physically

impossible?

Page 32: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

limiting assumptions

“there are laws preventing us

from doing that”

can the law be changed, broken, or re-interpreted?

Page 33: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

humble yourself...

Page 34: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

make a list of assumptions behind the problem

Page 35: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

are the assumptions correct? can you verify them?

Page 36: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

watch out for the "obvious" assumptions

(those are usually wrong!)

Page 37: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry
Page 38: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

a man ordered a glass of red wine and white wine at a bar. He took the glass of white wine in his right hand and the one with red in his left hand and drank both.

the next day, he did the same. when he was leaving, the bartender asked him:

"i didn't know that firemen drank that way."

how did the bartender know he was a fireman?

WITHOUT MAKING

ASSUMPTIONS WE CANNOT

SOLVE THE PROBLEM!

"i didn't know that firemen drank that way."

Page 39: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry
Page 40: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

the world is flat

Page 41: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

using the right representation and modelwhen solving real-world problems, you have to

first create a model

the size of the solution space is not determined by the problem - it's determined by the representation

remember - every model leaves something out!

Page 42: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

when projecting a map of the earth, only one of the four basic characteristics is preserved (distance, direction, shape, or area):

equirectangularmercator azmulthial mollweide(shape) (direction) (area) (distance)

Page 43: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

"design a user interface to place orders"

using the right representation and model

Page 44: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

"design a user interface to place orders"

using the right representation and model

Page 45: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

there are six matches on the table

construct 4 equilateral triangles where the length of each side is equal to the length of each match

do not break the matches (leave them the length that they are)

using the right representation and model

Page 46: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

using the right representation and model

Page 47: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry
Page 48: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

you gotta start somewhere

Page 49: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

often times you need to invent a starting point...

complex problems often contain an enormous number of possible solutionstake a first step, even though there doesn't seem to be a clear directioninvent a starting condition and retry until it establishes a clear directionmonte carlo simulation is one of these techniques

Page 50: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry
Page 51: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

performance troubleshooting

root cause analysis for production problems

solving complex design and coding problems

often times you need to invent a starting point...

Page 52: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

mr. smith and his wife invited four other couples for a party.

once everyone arrived, some of the people in the room shook hands with some others.

of course, nobody shook hands with their own spouse and nobody shook hands with the same person twice.

after that, mr. smith asked everyone how many times they shook someone's hand. he received different answers from everybody.

how many times did mrs. smith shake someones hand?

Page 53: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

mr. smith

since mr. smith was asking all the questions, let's start with him...

Page 54: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

mr. smith

data: there were nine other people in the room, and each answer was different

0

1

2

3

4

5

6

7

8

Page 55: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

mr. smith

draw a visual representation of the handshakes, starting with lowest to highest

0

1

2

3

4

5

6

7

8

Page 56: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

mr. smith

start over again and keep going, but this time from highest to lowest...

0

1

2

3

4

5

6

7

8

Page 57: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

mr. smith0

1

2

3

4

5

6

7

8

4 is mr. smith's spouse

--> 4 handshakes

can we infer anything from the diagram at this point???

Page 58: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry
Page 59: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

redirection

Page 60: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

often times the best way to solve a problem is to walk

away....

Page 61: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

"I can remember the very spot in the road, whilst in my carriage, when to my joy the solution occurred to me."

Page 62: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

the Hungarian-American physicist Leo Szilard came up with the concept of nuclear chain reactions while waiting for the red light to change at a pedestrian crossing outside London’s British Museum

Page 63: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

American electrical engineer Harold Black came up with the idea of a negative feedback amplifier while taking a ferry ride to work across the Hudson river in NYC.

Page 64: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

defocusing and redirecting reduces activity in the prefrontal cortex of the brain

logical thought

Page 65: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

logic is creativity's kryptonite

Page 66: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry
Page 67: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

perception

Page 68: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

perception can be realityoften times the best way to solve a problem is to not solve the root cause of the problem, but create the

perception that you solved the problem

Page 69: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

Roadmap

Page 70: The Art of Problem Solving - SDD Conferencesddconf.com/brands/sdd/library/Mark-Problem-Solving-Keynote-Wide… · step 1: understand the problem step 2: devise a plan step 3: carry

IndependentConsultantHands-onSo*wareArchitectPublishedAuthor/ConferenceSpeaker

MarkRichards

h<p://www.wmrichards.comh<ps://www.linkedin.com/in/markrichards3@markrichardssa

The Art of Problem Solving