3. Abstract
Although software development is taught as a STEM out of Science or
Engineering schools, it is as much an art or craft – a creative process – as a
science. This presentation focuses on innovative problem solving techniques
the tools and techniques to use when your normal process just doesn't seem to
get you to a solution. Much of the information in this talk is based on Robert
Pirsig's Zen and the Art of Motorcycle Maintenance, which, although it focuses
on Motorcycles, applies to all kinds of problem spaces (and Pirsig was a tech
writer for IBM). These techniques have served me well over the years. The
difference in art versus science approaches is actually supported by the way
the brain works.
• Traditional Problem Solving Methods, where they fall down
• Eastern techniques, advantages, disadvantages
• Tips
• Specific examples
• Brain versus Mind
3
4. 4
My Background
• David is an IT Professional who has worked with various platforms since
the 1980’s with a variety of development and analysis tools.
• He has presented workshops and seminars in Australia, France, the US,
Canada, and Oxford England (about the British Author Nevil Shute) for
various organizations.
• He holds an undergraduate degree in Computer and Information Sciences
from Temple University and a Masters in Organizational Dynamics from
UPENN. He achieved the Certified Computing Professional designation
with honors.
• Most of his career has been in consulting (although recently he has been
in-house) in the Philadelphia PA area.
• He has several books to his credit (none directly SAS related) and is an
Adjunct Instructor covering IT topics.
5. 5
Problem Solving
• Introduced to Robert Pirsig's "Zen and the Art of Motorcycle
Maintenance" at a DECUS Symposium attended on a lark
• An incredible learning experience for me
• This book is the single most informative treatises on problem solving ever
written
• More informative than some of the corporate problem solving books like
"Six Thinking Hats" or "Lateral Thinking"
• The lessons in this book actually apply to what we do in our jobs
– Software is an equally good (or even better) source of problems
requiring solving than motorcycles
– Pretty much all we do is solve puzzles or fix problems
– Remember that what we do is more an art than a science – is really a
craft
6. 6
Problem Solving
• When is your job most satisfying? When do you feel the most joy?
• It is when you build a good product – provide a good solution.
• It is quality that is the real essence to what you're doing and behind
the joy you receive
• Unfortunately, it can be hard to solve problems.
• How do you feel when you are not able to get a solution?
• Or a good solution?
7. 7
Problem Solving
• There are really two aspects:
– Gumption or gumptionality – energy to maintain
mental acuity under stress
– Stuckness and getting unstuck
• I'm going to spend a lot of time talking about
these.
8. 8
Problem Solving – Stuckness
• Stuckness: We've all experienced this
– Have a problem
– Don't know the cause
– Don't know where to look
– Don't know how to fix
– Don't even know what questions to ask
– Outside pressure won't help you get unstuck
– If anything, it will get you more stuck
– Your boss (or even the CEO) standing over your shoulder won't
help
– The stress feeds on itself
9. 9
Problem Solving – Stuckness
• What has happened?
– Western thought has failed you
– The "scientific method" is taught in schools:
• Ask a Question ("Why did this program fail?")
• Research (inputs, outputs, etc.)
• Hypothesis ("I think it failed because...")
• Experiment (if you change the "because" does the problem go away?)
• Data/Analysis
• Conclusion (we're done!)
– But what if you have no hypothesis? What if your Hypothesis are repeatedly
proven incorrect?
– The method is good for verifying truth in retrospect
– When you are stuck you're trying to look forward
10. 10
Problem Solving – Stuckness
• When you get stuck
– The fear and anger cycle takes over.
– You're angry over being stuck
– The pressure increases anger increases fear increases pressure ...
– This causes you to focus on the problem rather than the facts
– And the cycle continues
• Getting stuck can be deadly
– Pilot Training focuses on Emergencies
• Student is taught about the problem, causes, and solutions
• Solutions are practiced
• Results are debriefed
– Military, Medical, and Rescue Services follow similar practices
11. 11
Problem Solving – Stuckness
• Need to find calm and become one with the problem.
• Need to sort out the facts based on their quality
• You have a Mountain of Facts but can't recognize them
• It becomes hard to sort out the relevant and irrelevant
• You've lost the ability to judge quality.
• Western Thinking: Objective, at arms length
• Reality: something trivial can become biggest problem in life
• This happens in IT all the time:
– Change a magic number in code that causes all kinds of problems
– "But I only changed this little thing"
12. 12
Problem Solving – Stuckness
• Remember that you will always get unstuck.
• The problem will go away. Eventually. Only a matter of time
• Abandoning the problem is one way
– Referred to as "Solution by Erasure" by one math professor
• By solving the problem
– You will learn
– Become a better person
– Become a better problem solver
– Just remembering this can help you become unstuck
• Get your ego out of the way
13. 13
Problem Solving – Stuckness
• You need to look at each problem as being unique
• We solve problems by classifying them (western thought)
– But when we're stuck, we really can't classify the problem.
– Otherwise, you'd just pigeonhole it.
• You have to analyze the problem on its own merits:
– All of the facts
– Focus more broadly (unfocusing)
– Look at everything that is happening
– What else is going on?
14. 14
Problem Solving – Stuckness
• Correlate seeming unrelated facts back to the original problem
• Especially those that seem to be out of context
• A couple of quick examples
– Non-deterministic Data warehouse load times
– Asking silly questions
– Preparing to detail the problem to someone else (sharing)
• Take advantage of available tools:
– Traceback, crash dump, diff, logs, error messages, debugging statements (put
and proc print)
– Other people – seek out those that ask troublesome questions!
– Your Experience
– Of course: Google and discussion groups
15. 15
Gumption
• Gumption is the perception of the quality of the thing we are doing.
• If we are doing good work, our gumption supply grows.
– We feel better.
– We feel Pride in our work
– Work/I become one ("I am good")
– The opposite, unfortunately, is true
• Gumption helps you solve problems.
– If your supply is empty, problem solving is harder
– Monitor your supply flows and direction
– If gumption is leaking, you need to restore it
16. 16
Gumption Traps
• There are many traps or sinks for Gumption:
1. Dependence on a Commercial Mechanic
2. Taking things apart/Putting back together
3. Intermittent Failures
4. Part or tool (or information) setbacks
5. Internal
http://dilbert.com/strip/1992-02-10
17. 17
Mind versus Brain
• The brain is good at optimizing repeatedly used
paths.
• Unfortunately, if those paths are not "good" it is hard
to stop using them.
– Looking in the same place for missing keys
– Repeated behavior
– Looking at the same code
• The solution is to break away from the problem and
exercise other pathways.
18. 18
Some Basic Tips
• Sometimes you have to get away from a problem.
– Take a walk
– Read an unrelated book
– Go out to lunch.
• Your boss may not appreciate these approaches
• I've forced team members to break for lunch to get their
minds onto other topics
• I've solved some of my grodiest problems in the shower
19. 19
Gumption Traps – Dependence on a
Commercial Mechanic
• Consultants are the Commercial Mechanics of IT
• If you totally rely on them:
– Your gumption supply is headed towards depletion.
– They know more about your problem then you do.
– This makes you weak
• A good consultant will teach you as the work goes along
– Wean you away from relying on them
– Working with them improves your gumption
– It may cost more money or time to work this way, at least in the short term
• When you learn to solve the problems, not only do you gain directly, you restore
your own gumption – improving your future problem solving abilities
20. 20
Gumption Traps – Dependence on a
Commercial Mechanic
• As the consultant, try to avoid your customers being
dependent on you
– I want them to solve their own problems and grow
their own gumption
– Provide cross training
– Increase cost of relying on my skills
– You don't want to deplete your own gumption by
burning out
– Variety is part of the reason for being in consulting
21. 21
Gumption Traps – Taking things
apart/Putting back together
• This applies to any kind of upgrade – operating system, libraries, or even
code changes
• When it comes time to put everything together, it isn't quite complete or
doesn't quite work:
– Assembly out of order
– Wrong or incompatible versions
– Missed pieces (extra screws)
– Lost pieces (the spring that bounced away)
• If you can't find that piece or figure out where it goes, gumption
desperation definitely follows.
22. 22
Gumption Traps – Taking things
apart/Putting back together
• Engineering notebooks help – log everything you do!
• Build tools (like make) help but things can get missed.
• Always read the release notes.
• Unfortunately, there are hidden issues even with the best
documentation.
23. 23
Gumption Traps – Intermittent Failures
• We've all had these – the bug that seems to go away and comes back
• I spent days at a time trying to track down various intermittent failures
• These generally do not heal themselves.
– They are here now but gone by the time you look at them
– Infuriating because they go away on you.
– Embarrassing because they come back
• Worse because the problem isn't there when you call on a peer or
Commercial Mechanic
– Prevalent with cars, motorcycles, as well as software
24. 24
Gumption Traps – Intermittent Failures
• Rebooting or restarting applications seems to help and is the preferred solution
under Windows
– Masks the real problem
– Sometimes is the best solution
• The more you know about your environment, the deeper you can analyze.
– You may even solve the problem.
– Either way, your gumption grows as you learn.
• With Intermittent problems, you need to look at broader horizons
– Including seemingly unrelated facts
– What else is happening?
– Look for a new hypothesis
– Broaden your focus
25. 25
Gumption Traps – Part or tool (or
information) setbacks
• These are problems that are already solved
– But we are unaware of them
– Or cannot acquire them
– Equivalent in the hardware world: can't get parts, parts are too expensive,
receive the incorrect part, delivery is delayed
– You end up working around buggy library code that has already been fixed
– When the solution is out there but you cannot afford to buy the license:
• Really frustrating
• A Gumption deplete
• Causes you to be demoralized
• End up having to find a workaround without the quality of this solution
• The worst are ones we've solved before but conditions bring them back
26. 26
Gumption Traps – Part or tool (or
information) setbacks
• Sometimes you have to go to a different supplier
• In physical life, you can take the part (or a picture) with you
– Harder to do with software.
– Better than measuring/describing the part
– Might be appropriate to show the software or problem to
other person
– Do not tell them about the problem, show it to them!
27. 27
Gumption Traps – Part or tool (or
information) setbacks
• When helping someone else, do not let them tell you about their
problem
– Look at the problem yourself
– Ask your questions.
– Otherwise you'll be conditioned to their selected facts
– Need to broaden the viewpoint
• Their thinking already got them stuck
• You don't want to go down their path.
– I have a list of seemingly silly questions that I ask when being
asked for help.
28. 28
Gumption Traps – Part or tool (or
information) setbacks
• Innovation is ultimately a gumption builder
– Finding and fixing a bug causes me to grow
technically
– This adds to my supply of gumption (and
confidence)
– Makes me a better professional
– That applies if I even only learned one thing.
29. 29
Gumption Traps – Internal Gumption
• Internal Gumption traps are internal to your
mindset and the largest group
• Three major types
1. Value Traps – block affective understanding
2. Truth Traps – block cognitive understanding (the
biggest)
3. Muscle Traps – block psychomotor behavior
30. 30
Gumption Traps – Internal Value Traps
• Value traps block the ability to solve a problem or apply the solution
– This is a mental set
• With stuck values, I apply the same quality/truth value to the problem.
– This equals value rigidity
• Entering with a set of fixed mental positions
• Forcing facts to fit them
• Inability to revalue what one sees because of commitment to previous
values
• This is a form of premature diagnosis
– It is essentially a backward implementation of the scientific method
• You'll see a lot of this in political discourse
– The "solution can't be here" or "my keys have to be there" thinking
31. 31
Gumption Traps – Internal Value Traps
• When suffering from Value Traps:
– Search for new facts to recognize you are indeed suffering from
this
– You need to slow down a bit to get there
– The more pressure you're under, the more you want to force
yourself to slow down – the more methodical you want to
become
– Don't jump at a diagnosis (the "ah ha" situation)
– Look for more facts for a while to see which fit
– Simply stare at the machine
– Or even better, stare out the window
32. 32
Gumption Traps – Internal Truth: Ego Traps
• Ego traps: when you believe you cannot be the problem
– If your ego gets in your way, you're in real trouble.
– Easy to recognize when you find yourself asking
• "How could this happen to me?"
• "Who, me?"
• After all, I can't be the cause, right?
– When this happens, you have to go back to a good methodology.
• Check all the facts
• You could be the cause – your code.
33. 33
Gumption Traps – Internal Truth: Ego Traps
• Ego isolates you from problem solving
abilities.
– Machines seem to respond to your real
personality
– To fake out this anthropomorphic mess we call a
computer
• You must assume an attitude of modesty.
• Even when you know it isn't you.
• Especially when you know it isn't you.
34. 34
Gumption Traps – Internal Truth: Ego Traps
• You have to have a strong ego to work in this environment
– Imagine if airplane developers or smart phone manufacturers had
our failure rates!
– Remember the Samsung Notes 7 battery?
– Or the Boeing 787 battery problems?
• The mindset to get out of this trap:
– I am a beginner, what do I know about the problem?
– How do I learn about the problem?
– Go RTFM, review examples, search the web
– Return to your fundamentals to rebuild your knowledge
35. 35
Gumption Traps – Internal Truth: Anxiety
Traps
• Anxiety traps are the opposite of Ego traps: fear of messing up
– So afraid that you get stopped
– Afraid to screw up
– Can't even get started
• Remember, it is only software
– In the worst case, you'll have to go to the backup
– You do have a backup, don't you?
– You've tested recovery from your backup, right?
– For most of our applications, you can't kill anyone
36. 36
Gumption Traps – Internal Truth: Anxiety
Traps
• Older folks seem to suffer this with technology in general
• The younger folks realize we're not going to break the VCR or smart phone by
going through the menus to set the time
– This applies to us older folks who were exposed to technology when we were
younger or have an Engineer Mind – the Knack from Dilbert
http://dilbert.com/strip/2010-10-20
https://www.youtube.com/watch?v=g8vHhgh6oM0&feature=youtu.be
37. 37
Gumption Traps – Internal Truth: Anxiety
Traps
• Remember, just about any damage can be reversed.
• Spend a bit of time reviewing the problem before starting
work
– Build a plan
– Write down the planned steps in resolution
– Walk back through the plan to better understand the
problem
– Your final implementation may not exactly match
– But you'll have the general process mapped out
38. 38
Gumption Traps – Internal Truth: Anxiety
Traps
• Writing down the sequence:
– Slows you down
– Forces you to think
– Rebuilds confidence (and gumption).
– Tricks your mind into thinking "I've done this before, no
biggy"
• Emergency procedure training for Pilots (and many other
fields) help reduce the anxiety through a similar pattern
39. 39
Gumption Traps – Internal Truth: Boredom
Traps
• Boredom Traps occur when you do not have enough respect for the thing you're
doing
– Pirsig says that if you are bored, you must stop.
• What follows boredom is the big mistake
– Seemingly minor or trivial actions like removing a spring or relinking some
code.
– They are trivial operations until I mess up the slot or the link fails.
– I don't perceive the quality of what I am doing so I screw up and make
mistakes.
– Oh, it is a little change
40. 40
Gumption Traps – Internal Truth: Boredom
Traps
• When you find yourself falling into this trap:
– Get away from the action
• Do something else for a while until unbored
• Then return.
– The what you do during this time doesn't matter
• So long as you perceive its fundamental quality
• And you perceive the importance of the original
activity
41. 41
Gumption Traps – Internal Truth:
Impatience Traps
• Impatience Trap occurs when you have more
value for the time than the thing
– It is just like boredom.
– When you're impatient
• You'll break something
• Then you'll try to quickly fix what you've broken
• And then you'll break something else
• And the cycle repeats in a tightening spiral
42. 42
Gumption Traps – Internal Truth:
Impatience Traps
• When you fall into this trap:
– You really need to throw away time as a factor (scheduling pressure)
– Your manager may say "this must be done by Friday"
• But the problem is a technical issue totally unrelated to the
calendar.
• Try to mentally uncouple the time pressures from the problem
solving.
• It can be hard for your manager to understand why you seem to
be working so slowly when the result has to be delivered (or
demonstrated) this afternoon.
– But rushing won't get the problem solved any quicker
43. 43
Gumption Traps – Internal Psychomotor
Traps
• Psychomotor traps inhibit your ability to
apply solutions
• These really fall into three categories:
– Inadequate Tools
– Bad Surroundings
– Muscular Insensitivity
44. 44
Gumption Traps – Internal Psychomotor
Traps
• Inadequate Tools
– Line mode editors for instance
– Or slow networks/servers
– Buggy Libraries or Compilers
– Just knowing that there are better tools out there depletes gumption
• Bad Surroundings
– Your office environment impacts your ability to work
– Interruptions break flow – prevent you from being productive
– Noisy neighbors prevent you from getting into flow
– Not creating quality depletes gumption.
• The fact that others do not recognize the quality of the thing you are doing
depletes your gumption.
45. 45
Gumption Traps – Internal Psychomotor
Traps
• Muscular insensitivity, also known as "mechanics' feel" is
knowing exactly how much you can tighten a bolt before it
will break.
– Most developers know exactly how much you can tweak a
parameter or expand an array or extend an object before
it just won't work anymore.
– Without that skill, you will need a torque wrench or other
good tool to measure the effects of changes.
– Knowing when to stop is where it all happens.
46. 46
Gumption Traps
• We've talked about a number of gumption traps:
1. Dependence on a Commercial Mechanic
2. Taking things apart/Putting back together
3. Intermittent Failures
4. Part or tool (or information) setbacks
5. Internal
1. Value Traps – block affective understanding
2. Truth Traps – block cognitive understanding
3. Muscle Traps – block psychomotor behavior
47. 47
What Do I Get from All of This?
• Even if you try to avoid gumption traps, you can still get stuck
• Understanding what is happening can help you resolve the problem.
• Pirsig's closing remark:
Some could ask, "Well, if I get around all those gumption traps, then will I have the thing
licked?"
The answer, of course, is no, you still haven't got anything licked. You've got to live right
too. It's the way you live that predisposes you to avoid the traps and see the right facts.
You want to know how to paint a perfect painting? It's easy. Make yourself perfect and
then just paint naturally. That's the way all the experts do it. The making of a painting or
the fixing of a motorcycle isn't separate from the rest of your existence. If you're a
sloppy thinker the six days of the week you aren't working on your machine, what trap
avoidances, what gimmicks, can make you all of a sudden sharp on the seventh? It all
goes together.
But if you're a sloppy thinker six days a week and you really try to be sharp on the
seventh, then maybe the next six days aren't going to be quite as sloppy as the preceding
six. What I'm trying to come up with on these gumption traps I guess, is shortcuts to
living right.
•
48. 48
Final Thoughts
• Pirsig can be hard to read
– After all, he was a tech writer for IBM
– And he spent some time in a mental hospital
• But you can learn a lot from him – and the
other resources I've referenced
50. 50
Zen and the Art of Problem Solving
• It is all about choices
51. 51
References
• Zen and the Art of Motorcycle Maintenance, Robert M. Pirsig, 1975. Available
via http://www.chiro.org/LINKS/FULL/ARCHIVE/Zen/chapter26.htm
• Zen and the Art of Programming, James McGlinchy, DECUS Anaheim Fall 1991
Symposium, session LT062
• Constantine on Peopleware, Larry Constantine, 1995
• A Whack on the Side of the Head, Roger von Oech, 1990
• Lateral Thinking – Creativity Step by Step, Edward De Bono, 1973
• Peopleware, Tom DeMarco and Timothy Lister, 1987
• Understanding the Professional Programmer, Gerald M. Weinberg, 1988
• The Psychology of Computer Programming, Gerald M. Weinberg, 1971
• Mythical Man-Month, Frederick B. Brooks, Jr, 1982
• SAS Problem-Solving Looks East, Hallett German, NESUG 1992
• Programming on Purpose I, II, and III, P.J. Plauger
52. 52
Wrap Up for Real
Questions
and
Answers
?! ?!
?! ?!
?
? ?
?
!
!
!
!