SlideShare une entreprise Scribd logo
1  sur  53
Télécharger pour lire hors ligne
Zen and the Art of Programming
David B. Horvath, CCP, MS
Philly.net Code Camp 2018.1
Microsoft MTC, Malvern, PA
March 24, 2018
2
Zen and the Art of Programming
The Author can be contacted at:
504 Longbotham Drive, Aston PA 19014-2502, USA
Phone: 1-610-859-8826
Email: dhorvath@cobs.com
Web: http://www.cobs.com/
All trademarks and servicemarks are the
property of their respective owners.
Copyright © 2017, 2018 David B. Horvath, CCP — All Rights Reserved
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
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 at philly.net previously and 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 Microsoft related) and
is an Adjunct Instructor covering IT topics for University of Phoenix.
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 broadening 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
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
Problem Solving
• There are really two aspects:
• Gumption or gumptionality – energy to maintain mental acuity under stress
• Stuckness and getting unstick
• I'm going to spend a lot of time talking about these.
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
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
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
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
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
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
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, error messages, debug statements
• Other people – seek out those that ask troublesome questions!
• Your Experience
• Of course: Google and discussion groups
15
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.
16
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
17
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
18
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
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
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
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
Gumption Traps – Taking things apart/Putting back
together
• Engineering notebooks/blogs/knowledge management systems 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
Gumption Traps – Intermittent Failures
• We've all had these – the bug that seems to go away and comes back
• I spent days tracking down a failure in dynamic memory allocation
• 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
Gumption Traps – Intermittent Failures
• Rebooting 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
49
Wrap Up
Questions
and
Answers
?! ?!
?! ?!
?
? ?
?
!
!
!
!
50
Zen and the Art of Programming
The Author can be contacted at:
David B. Horvath, CCP
504 Longbotham Drive, Aston PA 19014-2502, USA
Phone: 1-610-859-8826
Email: dhorvath@cobs.com
Web: http://www.cobs.com/
LI: http://www.linkedin.com/in/dbhorvath
51
Zen and the Art of Programming
• It is all about choices
52
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
53
Wrap Up for Real
Questions
and
Answers
?! ?!
?! ?!
?
? ?
?
!
!
!
!

Contenu connexe

Tendances

Ps session 1 introduction to problem solving
Ps session 1 introduction to problem solvingPs session 1 introduction to problem solving
Ps session 1 introduction to problem solving
Robyn Cook-Ritchie
 
Ps session 2 identify the problem
Ps session 2 identify the problemPs session 2 identify the problem
Ps session 2 identify the problem
Robyn Cook-Ritchie
 
CYCLES course: Bonus lecture "Building Innovation Habits"
CYCLES course: Bonus lecture "Building Innovation Habits"CYCLES course: Bonus lecture "Building Innovation Habits"
CYCLES course: Bonus lecture "Building Innovation Habits"
Bryan Cassady
 
Clark - Innovate or Perish! Strategies for Improving HR Processes
Clark - Innovate or Perish! Strategies for Improving HR ProcessesClark - Innovate or Perish! Strategies for Improving HR Processes
Clark - Innovate or Perish! Strategies for Improving HR Processes
HR Florida State Council, Inc.
 
The 8 deadly sins of 48hr innovation challenges copy
The 8 deadly sins of 48hr innovation challenges  copyThe 8 deadly sins of 48hr innovation challenges  copy
The 8 deadly sins of 48hr innovation challenges copy
Matt Currie
 

Tendances (20)

Write speak code workshop- IDEATION
Write speak code workshop- IDEATIONWrite speak code workshop- IDEATION
Write speak code workshop- IDEATION
 
Behavioral hypothesis of team behavior
Behavioral hypothesis of team behaviorBehavioral hypothesis of team behavior
Behavioral hypothesis of team behavior
 
Stop Thinking Like an Instructional Designer, Start Thinking Like a Game Desi...
Stop Thinking Like an Instructional Designer, Start Thinking Like a Game Desi...Stop Thinking Like an Instructional Designer, Start Thinking Like a Game Desi...
Stop Thinking Like an Instructional Designer, Start Thinking Like a Game Desi...
 
1 Cycles Remote Innovation - introduction
1 Cycles Remote Innovation - introduction1 Cycles Remote Innovation - introduction
1 Cycles Remote Innovation - introduction
 
Building Resilience: Practical Tools for Keeping Your Head While Navigating a...
Building Resilience: Practical Tools for Keeping Your Head While Navigating a...Building Resilience: Practical Tools for Keeping Your Head While Navigating a...
Building Resilience: Practical Tools for Keeping Your Head While Navigating a...
 
CYCLES Course (4): Communication and Check
CYCLES Course (4): Communication and CheckCYCLES Course (4): Communication and Check
CYCLES Course (4): Communication and Check
 
CYCLES Course (2): Alignment
CYCLES Course (2): AlignmentCYCLES Course (2): Alignment
CYCLES Course (2): Alignment
 
Ideation Process
Ideation ProcessIdeation Process
Ideation Process
 
Ps session 1 introduction to problem solving
Ps session 1 introduction to problem solvingPs session 1 introduction to problem solving
Ps session 1 introduction to problem solving
 
Lead Gen Clinic
Lead Gen ClinicLead Gen Clinic
Lead Gen Clinic
 
Ps session 2 identify the problem
Ps session 2 identify the problemPs session 2 identify the problem
Ps session 2 identify the problem
 
A conversation about Design thinking
A conversation about Design thinkingA conversation about Design thinking
A conversation about Design thinking
 
Creativity Workshop
Creativity WorkshopCreativity Workshop
Creativity Workshop
 
CYCLES course: Bonus lecture "Building Innovation Habits"
CYCLES course: Bonus lecture "Building Innovation Habits"CYCLES course: Bonus lecture "Building Innovation Habits"
CYCLES course: Bonus lecture "Building Innovation Habits"
 
Clark - Innovate or Perish! Strategies for Improving HR Processes
Clark - Innovate or Perish! Strategies for Improving HR ProcessesClark - Innovate or Perish! Strategies for Improving HR Processes
Clark - Innovate or Perish! Strategies for Improving HR Processes
 
CYCLES course (5): Systems and System Thinking
CYCLES course (5): Systems and System ThinkingCYCLES course (5): Systems and System Thinking
CYCLES course (5): Systems and System Thinking
 
Managing strategically for environmental sustainability complete ppt
Managing strategically for environmental sustainability complete pptManaging strategically for environmental sustainability complete ppt
Managing strategically for environmental sustainability complete ppt
 
Ssc
SscSsc
Ssc
 
Creative problem solving
Creative problem solvingCreative problem solving
Creative problem solving
 
The 8 deadly sins of 48hr innovation challenges copy
The 8 deadly sins of 48hr innovation challenges  copyThe 8 deadly sins of 48hr innovation challenges  copy
The 8 deadly sins of 48hr innovation challenges copy
 

Similaire à 20180324 zen and the art of programming

Ps session 4 brainstorm solutions
Ps session 4 brainstorm solutionsPs session 4 brainstorm solutions
Ps session 4 brainstorm solutions
Robyn Cook-Ritchie
 
Artur Suchwalko “What are common mistakes in Data Science projects and how to...
Artur Suchwalko “What are common mistakes in Data Science projects and how to...Artur Suchwalko “What are common mistakes in Data Science projects and how to...
Artur Suchwalko “What are common mistakes in Data Science projects and how to...
Lviv Startup Club
 
Unit 1.pptx
Unit 1.pptxUnit 1.pptx
Unit 1.pptx
SasikamalSarepalli
 

Similaire à 20180324 zen and the art of programming (20)

Rock the tech interview january 2015
Rock the tech interview   january 2015Rock the tech interview   january 2015
Rock the tech interview january 2015
 
Rock the tech interview january 2015
Rock the tech interview   january 2015Rock the tech interview   january 2015
Rock the tech interview january 2015
 
Creative Problem Solving Skills For Staff
Creative Problem Solving Skills For StaffCreative Problem Solving Skills For Staff
Creative Problem Solving Skills For Staff
 
Ps session 4 brainstorm solutions
Ps session 4 brainstorm solutionsPs session 4 brainstorm solutions
Ps session 4 brainstorm solutions
 
the-idea-building-toolkit.pptx
the-idea-building-toolkit.pptxthe-idea-building-toolkit.pptx
the-idea-building-toolkit.pptx
 
How to Prepare for and Survive a Technical Interview
How to Prepare for and Survive a Technical InterviewHow to Prepare for and Survive a Technical Interview
How to Prepare for and Survive a Technical Interview
 
[SIGGRAPH ASIA 2011 Course]How to write a siggraph paper
[SIGGRAPH ASIA 2011 Course]How to write a siggraph paper[SIGGRAPH ASIA 2011 Course]How to write a siggraph paper
[SIGGRAPH ASIA 2011 Course]How to write a siggraph paper
 
Lean thinking and the agile culture
Lean thinking and the agile cultureLean thinking and the agile culture
Lean thinking and the agile culture
 
Agile Topics - Explained Simply - Practical Agilist.pptx
Agile Topics - Explained Simply - Practical Agilist.pptxAgile Topics - Explained Simply - Practical Agilist.pptx
Agile Topics - Explained Simply - Practical Agilist.pptx
 
Nightmare on PMO Street
Nightmare on PMO StreetNightmare on PMO Street
Nightmare on PMO Street
 
Coaches C.L.A.S.S. Creative Problem Solving Training Course Overview
Coaches C.L.A.S.S. Creative Problem Solving Training Course OverviewCoaches C.L.A.S.S. Creative Problem Solving Training Course Overview
Coaches C.L.A.S.S. Creative Problem Solving Training Course Overview
 
developing problem solving skills
developing problem solving skillsdeveloping problem solving skills
developing problem solving skills
 
Aabigreallyfinal
AabigreallyfinalAabigreallyfinal
Aabigreallyfinal
 
The Mckinsey Way Book Summary by Dr.N.Asokan
The Mckinsey Way Book Summary by Dr.N.AsokanThe Mckinsey Way Book Summary by Dr.N.Asokan
The Mckinsey Way Book Summary by Dr.N.Asokan
 
Artur Suchwalko “What are common mistakes in Data Science projects and how to...
Artur Suchwalko “What are common mistakes in Data Science projects and how to...Artur Suchwalko “What are common mistakes in Data Science projects and how to...
Artur Suchwalko “What are common mistakes in Data Science projects and how to...
 
GEC 2017: Bob Dorf (2)
GEC 2017: Bob Dorf (2)GEC 2017: Bob Dorf (2)
GEC 2017: Bob Dorf (2)
 
Turn fear to passion
Turn fear to passionTurn fear to passion
Turn fear to passion
 
Sage Summit 2012: Nerd, Geek and Gear Herding
Sage Summit 2012: Nerd, Geek and Gear HerdingSage Summit 2012: Nerd, Geek and Gear Herding
Sage Summit 2012: Nerd, Geek and Gear Herding
 
Unit 1.pptx
Unit 1.pptxUnit 1.pptx
Unit 1.pptx
 
Action research for Teachers
Action research for Teachers Action research for Teachers
Action research for Teachers
 

Plus de David Horvath

Plus de David Horvath (10)

(SAS) UNIX X Command Tips and Tricks
(SAS) UNIX X Command Tips and Tricks(SAS) UNIX X Command Tips and Tricks
(SAS) UNIX X Command Tips and Tricks
 
20180414 nevil shute no highway modern metal fatigue
20180414 nevil shute no highway modern metal fatigue20180414 nevil shute no highway modern metal fatigue
20180414 nevil shute no highway modern metal fatigue
 
20180410 sasgf2018 2454 lazy programmers xml ppt
20180410 sasgf2018 2454 lazy programmers xml ppt20180410 sasgf2018 2454 lazy programmers xml ppt
20180410 sasgf2018 2454 lazy programmers xml ppt
 
20180324 leveraging unix tools
20180324 leveraging unix tools20180324 leveraging unix tools
20180324 leveraging unix tools
 
20171106 sesug bb 180 proc import ppt
20171106 sesug bb 180 proc import ppt20171106 sesug bb 180 proc import ppt
20171106 sesug bb 180 proc import ppt
 
20150904 "A Few Words About 'In The Wet' by Nevil Shute"
20150904 "A Few Words About 'In The Wet' by Nevil Shute"20150904 "A Few Words About 'In The Wet' by Nevil Shute"
20150904 "A Few Words About 'In The Wet' by Nevil Shute"
 
20120606 Lazy Programmers Write Self-Modifying Code /or/ Dealing with XML Ord...
20120606 Lazy Programmers Write Self-Modifying Code /or/ Dealing with XML Ord...20120606 Lazy Programmers Write Self-Modifying Code /or/ Dealing with XML Ord...
20120606 Lazy Programmers Write Self-Modifying Code /or/ Dealing with XML Ord...
 
20150312 NOBS for Noobs
20150312 NOBS for Noobs20150312 NOBS for Noobs
20150312 NOBS for Noobs
 
20140612 phila sug proc import
20140612 phila sug proc import20140612 phila sug proc import
20140612 phila sug proc import
 
20170419 To COMPRESS or Not, to COMPRESS or ZIP
20170419 To COMPRESS or Not, to COMPRESS or ZIP20170419 To COMPRESS or Not, to COMPRESS or ZIP
20170419 To COMPRESS or Not, to COMPRESS or ZIP
 

Dernier

CHEAP Call Girls in Rabindra Nagar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Rabindra Nagar  (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Rabindra Nagar  (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Rabindra Nagar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
amitlee9823
 
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts ServiceCall Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men 🔝Mathura🔝 Escorts...
➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men  🔝Mathura🔝   Escorts...➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men  🔝Mathura🔝   Escorts...
➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men 🔝Mathura🔝 Escorts...
amitlee9823
 
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
amitlee9823
 
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service BangaloreCall Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
amitlee9823
 
Call Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night StandCall Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night Stand
amitlee9823
 
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night StandCall Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
amitlee9823
 
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
amitlee9823
 
➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men 🔝malwa🔝 Escorts Ser...
➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men  🔝malwa🔝   Escorts Ser...➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men  🔝malwa🔝   Escorts Ser...
➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men 🔝malwa🔝 Escorts Ser...
amitlee9823
 
➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men 🔝Thrissur🔝 Escor...
➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men  🔝Thrissur🔝   Escor...➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men  🔝Thrissur🔝   Escor...
➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men 🔝Thrissur🔝 Escor...
amitlee9823
 

Dernier (20)

CHEAP Call Girls in Rabindra Nagar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Rabindra Nagar  (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Rabindra Nagar  (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Rabindra Nagar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Thane Call Girls 7091864438 Call Girls in Thane Escort service book now -
Thane Call Girls 7091864438 Call Girls in Thane Escort service book now -Thane Call Girls 7091864438 Call Girls in Thane Escort service book now -
Thane Call Girls 7091864438 Call Girls in Thane Escort service book now -
 
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
 
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts ServiceCall Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
 
➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men 🔝Mathura🔝 Escorts...
➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men  🔝Mathura🔝   Escorts...➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men  🔝Mathura🔝   Escorts...
➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men 🔝Mathura🔝 Escorts...
 
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
 
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service BangaloreCall Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
 
Call Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night StandCall Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night Stand
 
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort ServiceBDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
 
Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Call me @ 9892124323  Cheap Rate Call Girls in Vashi with Real Photo 100% SecureCall me @ 9892124323  Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
 
Midocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFxMidocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFx
 
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night StandCall Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
 
hybrid Seed Production In Chilli & Capsicum.pptx
hybrid Seed Production In Chilli & Capsicum.pptxhybrid Seed Production In Chilli & Capsicum.pptx
hybrid Seed Production In Chilli & Capsicum.pptx
 
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
 
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
 
Detecting Credit Card Fraud: A Machine Learning Approach
Detecting Credit Card Fraud: A Machine Learning ApproachDetecting Credit Card Fraud: A Machine Learning Approach
Detecting Credit Card Fraud: A Machine Learning Approach
 
➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men 🔝malwa🔝 Escorts Ser...
➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men  🔝malwa🔝   Escorts Ser...➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men  🔝malwa🔝   Escorts Ser...
➥🔝 7737669865 🔝▻ malwa Call-girls in Women Seeking Men 🔝malwa🔝 Escorts Ser...
 
➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men 🔝Thrissur🔝 Escor...
➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men  🔝Thrissur🔝   Escor...➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men  🔝Thrissur🔝   Escor...
➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men 🔝Thrissur🔝 Escor...
 
(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7
(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7
(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7
 

20180324 zen and the art of programming

  • 1. Zen and the Art of Programming David B. Horvath, CCP, MS Philly.net Code Camp 2018.1 Microsoft MTC, Malvern, PA March 24, 2018
  • 2. 2 Zen and the Art of Programming The Author can be contacted at: 504 Longbotham Drive, Aston PA 19014-2502, USA Phone: 1-610-859-8826 Email: dhorvath@cobs.com Web: http://www.cobs.com/ All trademarks and servicemarks are the property of their respective owners. Copyright © 2017, 2018 David B. Horvath, CCP — All Rights Reserved
  • 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 at philly.net previously and 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 Microsoft related) and is an Adjunct Instructor covering IT topics for University of Phoenix.
  • 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 broadening 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 unstick • 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, error messages, debug statements • Other people – seek out those that ask troublesome questions! • Your Experience • Of course: Google and discussion groups
  • 15. 15 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.
  • 16. 16 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
  • 17. 17 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
  • 18. 18 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
  • 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/blogs/knowledge management systems 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 tracking down a failure in dynamic memory allocation • 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 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 Programming The Author can be contacted at: David B. Horvath, CCP 504 Longbotham Drive, Aston PA 19014-2502, USA Phone: 1-610-859-8826 Email: dhorvath@cobs.com Web: http://www.cobs.com/ LI: http://www.linkedin.com/in/dbhorvath
  • 51. 51 Zen and the Art of Programming • It is all about choices
  • 52. 52 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
  • 53. 53 Wrap Up for Real Questions and Answers ?! ?! ?! ?! ? ? ? ? ! ! ! !