Pragmatic Thinking and Learning Read online




  Prepared exclusively for Jose Luis Loya

  gggggggggggggggg

  What people are saying about

  Pragmatic Thinking and Learning

  This book will be the catalyst for your future.

  Patrick Elder

  Agile Software Developer

  By following Andy’s concrete steps, you can make your most pre-

  cious asset—your brain—more efficient and productive. Read this

  book, and do what Andy tells you to do. You’ll think smarter, work

  better, and learn more than ever before.

  Bert Bates

  Cocreator of Head First, Brain Friendly Books

  I’ve always been looking for something to help me improve my

  learning skills, but I’ve never found anything as effective as this

  book. Pragmatic Thinking and Learning represents the best way

  to help you become an expert learner, improve your skills, and

  teach you how to improve your work efficiency by learning fast

  and easily.

  Oscar Del Ben

  Software developer

  I love books that explain that context matters. This book does—

  and helps you understand why. From the Dreyfus model (a source

  of many “aha’s” for me) to explaining why experiential training

  works (the wall climbing story), Andy writes with humor and with

  tact so you can learn from reading and organize your own think-

  ing and learning.

  Johanna Rothman

  Consultant, author and speaker

  Prepared exclusively for Jose Luis Loya

  gggggggggggggggg

  This is an accessible and insightful book that will be useful to readers in many fields. I enjoyed reading it!

  Dr. Patricia Benner

  Professor and Chair, Department of Social and Behavioral

  Sciences, University of California, San Francisco

  Finished reading the beta last night. I loved this talk at NFJS

  (and the herding racehorses one), and to have it in book form—

  spectacular. All of this material has really changed my life!

  Matt McKnight

  Software developer

  This has been fun, and I’ve learned a lot—can’t ask for

  more than that.

  Linda Rising

  International speaker, consultant, and object-oriented

  expert

  Prepared exclusively for Jose Luis Loya

  gggggggggggggggg

  Prepared exclusively for Jose Luis Loya

  gggggggggggggggg

  Pragmatic Thinking and Learning

  Refactor Your “Wetware”

  Andy Hunt

  The Pragmatic Bookshelf

  Raleigh, North Carolina Dallas, Texas

  Prepared exclusively for Jose Luis Loya

  gggggggggggggggg

  Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and The Pragmatic Programmers, LLC was aware of a trademark claim, the designations have been printed in initial capital letters or in all capitals. The Pragmatic Starter Kit, The Pragmatic Programmer, Pragmatic Programming, Pragmatic Bookshelf and the linking g device are trademarks of The Pragmatic Programmers, LLC.

  Information contained in this book is intended as an educational aid only. Information is not intended as medical advice for any individual condition or treatment, and is not a substitute for professional medical care.

  Every precaution was taken in the preparation of this book. However, the publisher assumes no responsibility for errors or omissions, or for damages that may result from the use of information (including program listings) contained herein.

  Our Pragmatic courses, workshops, and other products can help you and your team create better software and have more fun. For more information, as well as the latest Pragmatic titles, please visit us at

  http://www.pragprog.com

  Copyright © 2008 Andy Hunt.

  All rights reserved.

  No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form, or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior consent of the publisher.

  Printed in the United States of America.

  ISBN-10: 1-934356-05-0

  ISBN-13: 978-1-934356-05-0

  Printed on acid-free paper.

  P2.0 printing, January 2009

  Version: 2009-3-4

  Prepared exclusively for Jose Luis Loya

  gggggggggggggggg

  For my wife and children,

  and for everyone who becomes what they think.

  Prepared exclusively for Jose Luis Loya

  gggggggggggggggg

  CONTENTS

  8

  Report erratum

  Prepared exclusively for Jose Luis Loya

  gggggggggggggggg

  this copy is (P2.0 printing, January 2009)

  CONTENTS

  9

  Report erratum

  Prepared exclusively for Jose Luis Loya

  gggggggggggggggg

  this copy is (P2.0 printing, January 2009)

  Contents

  1

  Introduction

  13

  1.1

  Again with the “Pragmatic”? . . . . . . . . . . . . . .

  16

  1.2

  Consider the Context . . . . . . . . . . . . . . . . . .

  17

  1.3

  Everyone Is Talking About This Stuff . . . . . . . . .

  18

  1.4

  Where We’re Going . . . . . . . . . . . . . . . . . . .

  19

  1.5

  Grateful Acknowledgments

  . . . . . . . . . . . . . .

  23

  2

  Journey from Novice to Expert

  25

  2.1

  Novices vs. Experts . . . . . . . . . . . . . . . . . . .

  27

  2.2

  The Five Dreyfus Model Stages . . . . . . . . . . . .

  29

  2.3

  Dreyfus at Work: Herding Racehorses and Racing

  Sheep . . . . . . . . . . . . . . . . . . . . . . . . . . .

  37

  2.4

  Using the Dreyfus Model Effectively . . . . . . . . .

  43

  2.5

  Beware the Tool Trap . . . . . . . . . . . . . . . . . .

  50

  2.6

  Consider the Context, Again . . . . . . . . . . . . . .

  53

  2.7

  Day-to-Day Dreyfus . . . . . . . . . . . . . . . . . . .

  55

  3

  This Is Your Brain

  57

  3.1

  Your Dual-CPU Modes . . . . . . . . . . . . . . . . .

  58

  3.2

  Capture Insight 24x7 . . . . . . . . . . . . . . . . . .

  63

  3.3

  Linear and Rich Characteristics . . . . . . . . . . . .

  67

  3.4

  Rise of the R-mode . . . . . . . . . . . . . . . . . . .

  75

  3.5

  R-mode Sees Forest; L-mode Sees Trees . . . . . . .

  80

  3.6

  DIY Brain Surgery and Neuroplasticity . . . . . . . .

  82

  3.7

  How Do You Get There? . . . . . . . . . . . . . . . .

  83

  4

  Get
in Your Right Mind

  85

  4.1

  Turn Up the Sensory Input . . . . . . . . . . . . . .

  85

  4.2

  Draw on the Right Side . . . . . . . . . . . . . . . . .

  87

  4.3

  Engage an R-mode to L-mode Flow . . . . . . . . . .

  92

  4.4

  Harvest R-mode Cues . . . . . . . . . . . . . . . . . 104

  4.5

  Harvesting Patterns . . . . . . . . . . . . . . . . . . . 114

  4.6

  Get It Right . . . . . . . . . . . . . . . . . . . . . . . . 122

  Prepared exclusively for Jose Luis Loya

  gggggggggggggggg

  CONTENTS

  11

  5

  Debug Your Mind

  124

  5.1

  Meet Your Cognitive Biases . . . . . . . . . . . . . . 126

  5.2

  Recognize Your Generational Affinity . . . . . . . . . 134

  5.3

  Codifying Your Personality Tendencies . . . . . . . . 144

  5.4

  Exposing Hardware Bugs . . . . . . . . . . . . . . . 147

  5.5

  Now I Don’t Know What to Think . . . . . . . . . . . 151

  6

  Learn Deliberately

  155

  6.1

  What Learning Is...and Isn’t . . . . . . . . . . . . . . 155

  6.2

  Target SMART Objectives . . . . . . . . . . . . . . . 159

  6.3

  Create a Pragmatic Investment Plan . . . . . . . . . 164

  6.4

  Use Your Primary Learning Mode . . . . . . . . . . . 168

  6.5

  Work Together, Study Together . . . . . . . . . . . . 174

  6.6

  Use Enhanced Learning Techniques . . . . . . . . . 176

  6.7

  Read Deliberately with SQ3R . . . . . . . . . . . . . 177

  6.8

  Visualize Insight with Mind Maps . . . . . . . . . . . 181

  6.9

  Harness the Real Power of Documenting

  . . . . . . 188

  6.10 Learn by Teaching

  . . . . . . . . . . . . . . . . . . . 190

  6.11 Take It to the Streets . . . . . . . . . . . . . . . . . . 192

  7

  Gain Experience

  193

  7.1

  Play in Order to Learn . . . . . . . . . . . . . . . . . 193

  7.2

  Leverage Existing Knowledge . . . . . . . . . . . . . 197

  7.3

  Embed Failing in Practice . . . . . . . . . . . . . . . 199

  7.4

  Learn About the Inner Game . . . . . . . . . . . . . 203

  7.5

  Pressure Kills Cognition . . . . . . . . . . . . . . . . 208

  7.6

  Imagination Overrides Senses . . . . . . . . . . . . . 212

  7.7

  Learn It like an Expert . . . . . . . . . . . . . . . . . 216

  8

  Manage Focus

  218

  8.1

  Increase Focus and Attention . . . . . . . . . . . . . 219

  8.2

  Defocus to Focus . . . . . . . . . . . . . . . . . . . . 225

  8.3

  Manage Your Knowledge . . . . . . . . . . . . . . . . 228

  8.4

  Optimize Your Current Context . . . . . . . . . . . . 235

  8.5

  Manage Interruptions Deliberately . . . . . . . . . . 241

  8.6

  Keep a Big Enough Context . . . . . . . . . . . . . . 248

  8.7

  How to Stay Sharp . . . . . . . . . . . . . . . . . . . 252

  Report erratum

  Prepared exclusively for Jose Luis Loya

  gggggggggggggggg

  this copy is (P2.0 printing, January 2009)

  CONTENTS

  12

  9

  Beyond Expertise

  253

  9.1

  Effective Change . . . . . . . . . . . . . . . . . . . . . 253

  9.2

  What to Do Tomorrow Morning . . . . . . . . . . . . 255

  9.3

  Beyond Expertise . . . . . . . . . . . . . . . . . . . . 256

  A Photo Credits

  260

  B Bibliography

  261

  Index

  271

  Report erratum

  Prepared exclusively for Jose Luis Loya

  gggggggggggggggg

  this copy is (P2.0 printing, January 2009)

  Chapter 1

  Introduction

  Welcome!

  Thanks for picking up this book. Together, we’re going to journey

  through bits of cognitive science, neuroscience, and learning and

  behavioral theory. You’ll see surprising aspects of how our brains

  work and see how you can beat the system to improve your own

  learning and thinking skills.

  We’re going to begin to refactor your wetware—redesign and rewire

  your brain—to make you more effective at your job. Whether you’re

  a programmer, manager, “knowledge worker,” technogeek, or deep

  thinker, or if you just happen to have a human brain you’d like to

  crank up, this book will help.

  I’m a programmer, so my examples and rants will be directed at the

  world of software development. If you’re not a programmer, don’t

  worry; programming really has little to do with writing software in

  arcane, cryptic languages (although we have a curious attachment

  to that habit).

  Programming is all about problem solving. It requires creativity,

  ingenuity, and invention. Regardless of your profession, you prob-

  ably also have to solve problems creatively. However, for program-

  mers, combining rich, flexible human thought with the rigid con-

  straints of a digital computer exposes the power and the deepest

  flaws of both.

  Whether you’re a programmer or frustrated user, you may have

  already suspected that software development must be the most

  difficult endeavor ever envisioned and practiced by humans. Its

  complexity strains our best abilities daily, and failures can often

  Prepared exclusively for Jose Luis Loya

  gggggggggggggggg

  CHAPTER 1. INTRODUCTION

  14

  be spectacular—and newsworthy. We’ve smashed spaceships into

  distant planets, blown up expensive rockets filled with irreplace-

  able experiments, plagued consumers with automated collection

  letters for $0.00, and stranded airline travelers on a semiregular

  basis.

  But now the good news (sort of): it’s all our fault. We tend to make

  programming much harder on ourselves than we need. Because of

  the way the industry has evolved over time, it seems we’ve lost track

  of some of the most fundamental, most important skills needed by

  a software developer.

  The good news is that we can fix that right here and right now. This

  book will help show you how.

  The number of bugs programmers introduce into programs has

  remained constant for the past forty years. Despite advances in

  programming languages, techniques, project methodologies, and

  so on, the defect density has remained fairly constant.1

  Maybe that’s because we’ve been focusing on the wrong things.

  Despite all these obvious changes in technology, one thing has

  remained constant: us. Developers. People.

  Software isn’t designed in an IDE or other tool. It’s imagined and

  created in our heads.

  Ideas and concepts are shared
and com-

  Software is created in

  municated among a team, including the

  your head.

  folks who are paying our organization to

  develop this software. We’ve spent the time

  investing in basic technology—in languages, tools, methodologies.

  That was time well spent, but now it’s time to move on.

  Now we need to look at the really hard problems of social interac-

  tion in and between teams and even at the harder issues of just

  plain old thinking. No project is an island; software can’t be built

  or perform in isolation.

  Frederick Brooks, in his landmark paper “No Silver Bullet–Essence

  and Accident in Software Engineering” [Bro86], claimed that “the

  software product is embedded in a cultural matrix of applications,

  1.

  Based on research by Capers Jones via Bob Binder.

  Report erratum

  Prepared exclusively for Jose Luis Loya

  gggggggggggggggg

  this copy is (P2.0 printing, January 2009)

  CHAPTER 1. INTRODUCTION

  15

  users, laws, and machine vehicles.2 These all change continually,

  and their changes inexorably force change upon the software

  product.”

  Brooks’ observation puts us squarely at the center of the mael-

  strom of society itself. Because of this complex interaction of many

  interested parties and forces and the constant evolution of change,

  it seems to me that the two most important modern skills are these:

  • Communication skills

  • Learning and thinking skills

  Some improvement to communication skills is being addressed by

  our industry. Agile methods (see the sidebar on the following page),

  in particular, emphasize improved communications between team

  members and between the ultimate customer and the development

  team. Mass-media books such as Presentation Zen: Simple Ideas on

  Presentation Design and Delivery [Rey08] are suddenly best-sellers

  as more and more people realize the importance of simple, effective

  communication. It’s a good start.

  But then there’s learning and thinking, which is a much harder

  nut to crack.

  Programmers have to learn constantly—not just the stereotypical

  new technologies but also the problem domain of the application,

  the whims of the user community, the quirks of their teammates,

  the shifting sands of the industry, and the evolving characteristics

  of the project itself as it is built. We have to learn—and relearn—

  constantly. Then we have to apply this learning to the daily barrage

  of both old and new problems.

  It sounds easy enough in principle perhaps, but learning, criti-