Pages

20171009

Pragmatic Thinking & Learning by Andy Hunt


  • We tend to make programming much harder on ourselves than we need.
  • The number of bugs programmers introduce into programs has remained constant for the past forty years.
  • Software isn't designed in an IDE or other tool. It's imagined and created in our heads.
  • Software is created in your head.
  • It seems to me that the two most important modern skills are these:
  • Communication skills
  • Learning and thinking skills
  • The essence of pragmatism is to do what works--for you.
  • Only dead fish go with the flow.
  • Some folks are just plain wired differently; you may be one of them. And that's OK; you shouldn't follow any advice blindly Even mine. Instead, read with an open mind. Try the suggestions, and decide what works for you.
  • Nothing in life is ever static; only dead fish go with the flow.
  • Everything is interconnected: the physical world, social systems, your innermost thoughts, the unrelenting logic of the computer--everything forms one immense, interconnected system of reality. Nothing exists in isolation; everything is part of the system and part of a larger context.
  • Because of that inconvenient fact of reality, small things can have unexpectedly large effects. That disproportionate effect is the hallmark of nonlinear systems, and in case you hadn't noticed, the real world is decidedly nonlinear.
  • In systems thinking, one tries to envision an object as a connection point of several systems, rather than as a discrete object unto itself.
  • Everything is interconnected.
  • Always consider the context.
  • When you start to find the same set of ideas--the same common threads--showing up in different guises in these very different areas, that's usually a sign. There must be something fundamental and very important lurking under the covers for these similar ideas to be present in so many different contexts.
  • The most important tool in software development is, of course, your own brain.
  • Intuition is a fantastic skill, except when it's wrong. There are a large number of "known bugs" in human thinking.
  • Gaining experience is key to your learning and growth--we learn best by doing.
  • We live in information-rich times, and it's easy to get so swamped under the daily demands of our jobs that we have no chance to advance our careers.
  • We can't solve problems by using the same kind of thinking we used when we created them.
  • There are two types of theories: event theories and construct theories.
  • Event theories can be measured; these types of theories can be verified and proven. You can judge the accuracy of an event theory.
  • Construct theories are intangible abstractions; it makes no sense to speak of "proving them". Instead, construct theories are evaluated in terms of their usefulness. You can't judge a theory to be accurate or not.
  • Expert staff members working in the trenches aren't always recognized as experts or paid accordingly.
  • There's more to skill levels than just being better, smarter, or faster.
  • It's often difficult for experts to explain their actions to a fine level of detail; many of their responses are so well practiced that they become preconscious actions.
  • It's hard to articulate expertise.
  • Novices and experts are fundamentally different. They see the world in different ways, and they react in different ways.
  • You are neither "expert" nor "novice" at all things; rather, you are at one of these stages in some particular skill domain.
  • The five stages on the journey from novice to expert:
    • Novices
    • Advanced Beginners
    • Competent
    • Proficient
    • Expert
  • Novices, by definition, have little or no previous experience in this skill area. By "experience", I mean specifically that performing this skill results in a change of thinking.
  • Novices are very concerned about their ability to succeed; with little experience to guide them, they really don't know whether their actions will all turn out OK. Novices don't particularly want to learn; they just want to accomplish an immediate goal. They do not know how to respond to mistakes and so are fairly vulnerable to confusion when things go awry.
  • Novices need recipes.
  • The problem with recipes--with context-free rules--is that you can never specify everything fully.
  • Rules can get you started, but they won't carry you further.
  • Advanced beginners can start to break away from the fixed rule set a little bit. They can try tasks on their own, but they still have difficulty troubleshooting.
  • Advanced beginners don't want the big picture.
  • At the third stage [competent], practitioners can now develop conceptual models of the problem domain and work with those models effectively.
  • The competent practitioner will seek out and solve problems; their work is based more on deliberate planning and past experience.
  • Competents can troubleshoot.
  • Proficient practitioners need the big picture. They will seek out and want to understand the larger conceptual framework around this skill.
  • Proficient practitioners can self-correct. Up until this stage, that sort of self-improvement is simply not available.
  • Along with the capacity to learn from others comes the ability to understand and apply maxims, which are proverbial, fundamental truths that can be applied to the situation at hand. Maxims are not recipes; they have to be applied within a certain context.
  • And context, as it turns out, is key to becoming an expert.
  • Proficient practitioners have enough experience that they know--from experience--what's likely to happen next; and when it doesn't work out that way, they know what needs to change.
  • Agile development relies on feedback.
  • Experts are the primary sources of knowledge and information in any field. They are the ones who continually look for better methods and better ways of doing things. They have a vast body of experience that they can tap into and apply in just the right context.
  • Statistically, there aren't very many experts--probably something on the order of 1 to 5 percent of the population.
  • Experts work from intuition, not from reason.
  • Although experts can be amazingly intuitive--to the point that it looks like magic to the rest of us--they may be completely inarticulate as to how they arrived at a conclusion. They genuinely don't know; it just "felt right".
  • The expert knows the difference between irrelevant details and the very important details, perhaps not on a conscious level, but the expert knows which details to focus on and which details can be safely ignored. The expert is very good at targeted, focused pattern matching.
  • When you are not very skilled in some area, you are more likely to think you're actually pretty expert at it.
  • This lack of accurate self-assessment is referred to as second-order incompetence, that is, the condition of being unskilled and unaware of it.
  • This condition is a huge problem in software development, because many programmers and managers aren't aware that better methods and practises even exist.
  • The converse seems to be true as well; once you truly become an expert, you become painfully aware of just how little you really know.
  • Rules ruin experts.
  • Intuition is the tool of the expert in all fields, but organizations tend to discount it because they mistakenly feel that intuition "isn't scientific" or "isn't repeatable".
  • A misguided sense of political correctness dictates that we treat all developers the same, regardless of ability. This does a disservice to both novices and experts (and ignores the reality that there is anywhere from a 20:1 to 40:1 difference in productivity among developers, depending on whose study you believe).
  • Use rules for novices, intuition for experts.
  • Many characteristics change as you move up the skill levels. But the three most important changes along the way are the following:
  • Moving away from reliance on rules to intuition.
  • A change in perception, where a problem is no longer a collection of equally relevant bits but a complete and unique whole where only certain bits are relevant.
  • Finally, a change from being a detached observer of the problem to an involved part of the system.
  • Most people are advanced beginners.
  • Sadly, studies seem to indicate that most people, for most skills, for most of their lives, never get any higher than the second stage, advanced beginner, "performing the tasks they need and learning new tasks as the need arises but never acquiring a more broad-based, conceptual understanding of the task environment".
  • Also, meta-cognitive abilities, or the ability of being self-aware, tends to be possible only at the higher skills levels.
  • The only path to a more correct self-assessment is to improve the individuals' skill level, which in turn increases meta-cognitive ability.
  • Know what you don't know.
  • Experts aren't always the best teachers. Teaching is an expertise in its own right; just because you are expert in some subject is no guarantee that you can teach it to others.
  • The hallmark of the expert is their use of intuition and the ability to recognize patterns in context.
  • Intuition and pattern matching replace explicit knowledge.
  • So you want to be an expert? You need to budget about ten years of effort, regardless of the subject area.
  • Merely working at a subject for ten years isn't enough. You need to practice. Deliberate practice requires four conditions:
  • You need a well-defined task.
  • The task needs to be appropriately difficult--challenging but doable.
  • The environment needs to supply informative feedback that you can act on.
  • It should also provide opportunities for repetition and correction of errors.
  • Once you become an expert in one field, it becomes much easier to gain expertise in another. At least you already have the acquisition skills and model-building abilities in place.
  • "I was just following orders!" doesn't work.
  • We learn best be example.
  • Learn by watching and imitating.
  • There's no expertise without experience, and there's no substitute for experience--but we can work to make the experience you have more efficient and more effective.
  • Trumpeter Clark Terry used to tell students the secret to learning music was to go through three phases:
    • Imitate
    • Assimilate
    • Innovate
  • This echoes the cycle of training in the martial arts known as Shu Ha Ri.
  • IN the Shu phase, the student copies the techniques as taught--from a single instructor--without modifications.
  • In the Ha stage, the student must reflect on the meaning and purpose and come to a deeper understanding.
  • Ri means to go beyond or transcend; no longer a student, the practitioner now offers original thought.
  • Programmers (aka "coders") are paid only so much; salespeople, consultants, upper management, and so on, might be compensated more than twice the amount of the best programmer on a team.
  • Companies need to take a much closer, more more informed look at the value that these star developers bring to an organization.
  • Winners don't carry losers.
  • Rookies move up the ladder, but winners don't carry losers--losers get cut from the team.
  • Given that the highest-skilled developers are orders of magnitude more productive than the least-skilled developers, the current common salary structures for developers is simply inadequate.
  • Keep practicing in order to remain an expert.
  • The model is a tool, not a mirror.
  • Rules cannot tell you the most relevant activities to perform in a given situation or the correct path to take. They are at best "training wheels"--helpful to get started but limiting and actively detrimental to performance later.
  • A model is not reality, but it's easy to confuse the two.
  • Good problem-solving skills are critical to our jobs, but problem solving is a very hard thing to formalize.
  • You can't put creativity and invention on a time clock, and you can't prescribe a particular technique or set of techniques.
  • Over reliance on formal models will tend to reward herd behavior and devalue individual creativity.
  • The same standard may not always apply equally in all situations. What worked great on your last project may be a disaster on this one.
  • Avoid formal methods if you need creativity, intuition and inventiveness.
  • Beware decontextualized objectivity.
  • There is an inherent danger in decontextualized objectivity, that is, in trying to be objective about something after taking it out of its context.
  • IN systems thinking, as in object-oriented programming, it's often the relationships between things that are interesting, not the things themselves.
  • One size does not fit all.
  • Movies need quick successes and context-free rules. You can't expect them to be able to handle novel situations on their own. Given a problem space, they'll stop to consider everything, whether it's relevant or not.
  • At the other end of the spectrum, experts need to have access to the big picture; don't cripple them with restrictive, bureaucratic rules that aim to replace judgment. You want the benefit of their expert judgment.
  • Learn the skill of learning.
  • It had long been thought that memory was somewhat like flash RAM; memory was somehow recorded by neuron configuration with a physical persistence Instead, it is actively maintain by an executing loop.
  • If your brain stops running, it forgets everything.
  • Answers and insights pop up independently of your conscious activities, and not always at a convenient time.
  • This means you need to be ready to capture any insight or idea twenty-four hours a day, seven days a week, no matter what else you might be involved in.
  • Capture all ideas to get more of them.
  • If you don't keep track of great ideas, you will stop noticing you have them.
  • The corollary is also true--once you start keeping track of ideas, you'll get more of them. Your brain will stop supplying you with stuff if you aren't using it. But is will quite happily churn out more of what you want if you start using it.
  • Everyone has good ideas.
  • Everyone--no matter their education, economic status, day job, or age--has good ideas. But of this number of people with good ideas, far fewer bother to keep track of them. Of those, even fewer bother to act on those ideas. Fewer still then have the resources to make a good idea a success.
  • Get something to take notes on, and keep it with you.
  • The fastest processing modes are the muscle-memory sorts of responses that don't even travel up to the cortex itself. [...] The muscles involved more or less just tackle the problem on their own without much conscious involvement or direction.
  • In fact, synthesis is such a powerful learning technique that Nicholas Negroponte of the MIT Media Lab suggested in Don't Dissect the Frog, Build It that to really learn about a frog, traditional dissection is not the way to go. The better way to learn about a frog is to build one.
  • Learn by synthesis as well as by analysis.
  • Commoditization means you compete on aesthetics.
  • Consumers don't care about the gigabytes; only we geeks do. Real people want to know how many songs it will hold or how many photos or videos.
  • It's about the songs, not gigabytes.
  • Attractive things actually do work better.
  • Several studies have conclusively shown that attractive user interfaces are easier to use than unattractive interfaces.
  • Being "happy" broadens your thought processes and brings more of the brain's hardware online.
  • Known problems (such as bugs in code, bad process in an organization, poor interfaces, or lame management) that are left uncorrected have a debilitating, viral effect that ends up causing even more damage.
  • Strive for good design; it really works better.
  • Beauty emerges from selection.
  • Art comes not so much from the act of creation itself but rather from selecting among a near infinite supply of choices.
  • Pattern matching is a key ability demonstrated by experts. It's how they can narrow their choices and focus on just the relevant parts of a problem.
  • Rewire your brain with belief and constant practice.
  • Thinking makes it so.
  • Skills and abilities that you constantly use and constantly practice will begin to dominate, and more of your brain will become wired for those purposes.
  • The simplest thing you can do to begin to involve more of your brain in problem solving and creativity is to activate more neural pathways than usual.
  • Add sensory experience to engage more of your brain.
  • Object-oriented design with Lego bricks is quite effective with a group of people: everyone can participate without fighting for the keyboard or the whiteboard marker; you can animate the actions and behaviors easily, and it encourages multi-sensory involvement.
  • Use cross-sensory feedback.
  • "Drawing" is really about seeing.
  • Limit cognitive interference.
  • You want your creativity to have free reign, unrestricted by "common sense" or "practicality." There's plenty of time to reign it in or discard the absurd later, but to begin with, you want to let 'er rip.
  • Just as creativity can be stifled by trying to tie idea down prematurely, learning can be impeded by trying to memorize minor facts when you don't yet grasp the whole.
  • Don't be in such a hurry. When problem solving, learn to be comfortable with uncertainty. When creating, be comfortable with the absurd and the impractical. When learning, don't try so hard to learn and memorize; just get "used to it" first. Try to understand the meaning first; get the overall gist of it.
  • Metaphor, a common ground for both verbalizations and images, is a way to voyage back and forth between the subconscious and conscious, between right and left hemispheres.
  • The use of metaphor is a powerful technique to open up creativity.
  • Most humans aren't particularly good at dealing with the abstract; using a metaphor to relate some abstract notion to something concrete, something found in everyday life, makes it much easier for people to grasp.
  • Use random juxtaposition to create metaphor.
  • Clear metaphors are a powerful tool, but we don't always get it right.
  • Humor is neither a waste of time nor a harmless diversion; instead, it reflects an important ability necessary for thinking, learning, and creativity. It's all about connections.
  • Humor arises from making novel connections across disparate ideas. It may be absurd, but humor is often based on identifying relationships and situating them.
  • The latent for humor comes from drawing or extending relationships beyond the norm, truly seeing "out of the box".
  • A quick wit--being able to draw connections between things that aren't related or to extend an idea past its breaking point--is a skill well worth practicing, honing, and encouraging in your team.
  • Cultivate humor to build stronger metaphors.
  • Every input gets stored.
  • Your brain stores every input it receives. However, even though stored, it does not necessarily index the memory (or if you prefer a more die-hard computer analogy, "store a pointer to it").
  • It turns out that when you are trying to solve a hard problem, all of your memories are scanned--even the ones you cannot consciously recall. It's not the most efficient thing, but it does work.
  • Many ideas are not verbalizable.
  • Another simple way of harvesting your R-mode's preconscious treasures is to write.
  • Letter writing is a great habit. Sometimes the material is relatively dull-what the what was doing, how the prices at the market were up, how the scullery maid ran off with the stable boy, and so on. But in the detailed minutiae of everyday life were occasional philosophical gems. This sort of free-form journaling has a long pedigree, and those skillful thinkers from days gone by were eventually well regarded as "men of letters" for penning these missives.
  • Once you start writing, it's important to maintain the flow. Don't let technical issues distract you once you get going. Don't worry about what needs to be edited yet; get it all down first.
  • When you try to start any creative endeavor, such as writing on a blog, an article, or (heaven help-you) a full-length book, you will encounter massive resistance.
  • Morning pages:
  • Write your morning pages first thing in the morning.
  • Write at least three pages, long hand. No typing, no computer.
  • Do not censor what you write. Whether it's brilliant or banal, just let it out.
  • Do not skip a day.
  • Why does this work? I think it's because you're getting an unguarded brain dump. The first thing in the morning, you're not really as awake as you think. Your unconscious still has a prominent role to play. You haven't yet realized all the defense and adapted to the limited world of reality. You have a pretty good line direct to your R-mode, at least for a little while.
  • Any chance to write is a good exercise.
  • Writing for a public audience is a great way to clarify your own thoughts and beliefs.
  • A labyrinth is not a puzzle; it's a tool for meditation. Labyrinths offer a single path--there are no decisions to be made. You walk the path to sort of give the L-mode something to do and free up the R-mode.
  • When you go for your "thinking walk", don't actually do any thinking.
  • R-mode can be invited not commanded.
  • Step away from the keyboard to solve hard problems.
  • Yoga, meditation, breathing techniques, and martial arts all affect how your brain processes information. We are complex systems, and as we saw with systems thinking, that means everything is connected. Even something as simple as breathing in a particular manner can profoundly affect how you think.
  • Your mind is quite adept at reconstructing reality based on fragmentary patterns. It can make associates based on incomplete data, and it does so all the time, even if you're not aware of it.
  • Remember: source code is read many, many more ties than it's written, so it's usually worth some effort to help make the code more human-readable. IN other words, we should make the larger patterns in the code easier to see.
  • Code is write-once, read-many.
  • Typography has a powerful impact on perception--for better or for worse.
  • Accommodate different skill levels.
  • Many times it's hard to see things that are right in front of you, because you get used to seeing patterns in a certain way. It's easy to get stuck in a rut--to get stick in certain thought patterns and accustomed ways of thinking. The trick to gaining insight is to try to see a problem from a completely different viewpoint.
  • The only difference between a rut and a grave is the dimensions.
  • The key to creativity and problem solving lies in finding different ways of looking at a problem. Different associations for the R-mode to initiate different searches; new material might now come up.
  • Turn the problem around.
  • That simple change of viewpoint, looking at the problem or the other way around, is by itself a very powerful technique. You can use that when debugging: instead of trying to prevent a difficult-to-find bug, try coming up with three to four ways to deliberately cause it. Along the way, you might discover what's really happening.
  • Change your viewpoint to solve the problem.
  • Reconcile unlike patterns.
  • We are creatures of habit. But ingrained habit isn't the best thing for the brain; you don't make new connections that way, and you'll become increasingly blind to other alternatives.
  • We are not rational creatures.
  • Four broad categories of [thinking] problems:
  • Cognitive biases: How your thinking can be led astray.
  • Generational affinity: How your peers influence you.
  • Personality tendencies: How your personality influences your thoughts.
  • Hardware bugs: How older portions of your brain can override the smarter portions.
  • We tend to ascribe other people's behavior to their personality, instead of looking at the situation and the context in which their behavior occurs.
  • We are not comfortable with doubt and uncertainty--so much so that we'll go to great lengths to resolve open issues and to remove uncertainty and reach closure.
  • It's actually pretty easy for your brain to confuse imagined events with real memories. We're susceptible to the power of suggestion; as we saw earlier, memory isn't written to some static store in the brain. Instead, it's an active process--so much so that every read is a write. Your memories are constantly rewritten in light of your current context: age, experience, worldview, focus, and so on.
  • Unexpected events change the game.
  • As a group, we tend to miss important developments because we're focused on the wrong thing or are asking the wrong questions.
  • Just because two variables are correlated does not mean that either causes the other.
  • On a more positive note, you can expect to experience a one-in-a-million miracle about once a month.
  • Watch the outliers: "rarely" doesn't mean "never".
  • Never say never.
  • Take time to examine the "crazy" outliers or those "impossible", astronomically unlikely events.
  • Our need for closure means we are driven to try to eliminate uncertainty--ready or not. But fixing on a decisions prematurely reduces your options, perhaps to the point of eliminating the successful choice.
  • Be comfortable with uncertainty.
  • Guess with explicit probabilities.
  • Remember that you don't remember very well. Memory is unreliable, and old memories will change over time, which just reassures you that your misconceptions and prejudices are valid. Don't rely exclusively on your memory. The Chinese proverb is correct: the palest ink is better than the best memory.
  • Trust ink over memory; every mental read is a write.
  • Anything that is in the world when you're born is normal and ordinary and is just a natural part of the way the world works. Anything that's invented between when you're fifteen and thirty-five is new and exciting and revolutionary and you can probably get a career in it. Anything invented after you're thirty-five is against the natural order of things.
  • Different generations inherently have different values, and your own attitudes and concerns change as you age as well.
  • Each generation's reaction to the perceived weakness of the immediately preceding generations creates a pattern over time. [...] That means your generation's attitudes are somewhat predictable. And so is the next generation's. In fact, there may be only four distinct generational types.
  • These generational generalizations help shed basic understanding as why people value the things they do and remind us that not everyone shares your core values or your view of the world.
  • Archetypes create opposing archetypes.
  • Not everyone shares your deep-seated values, and that doesn't mean you're right or they're wrong.
  • Hedge your bets with diversity.
  • The best way to keep from falling victim to your generation's particular set of biases is to embrace diversity. If you and your team all think alike, you might see your reinforced collective viewpoint as the only viable one. It's not.
  • The extrovert is energized by being with people and socializing. The introvert is not; introverts are territorial and need private mental and environmental space. The introvert draws strength from solitary activities and finds social situations tiring. Seventy-five percent of the population lean to the extrovert end of the scale. The other twenty-five percent of us wish they'd leave us alone.
  • Thinking people make decisions based on the rules Feeling people evaluate the personal and emotional impact, in additional to the applicable rules.
  • You can't change people.
  • There are many ways to work out a solution and compromise. The only thing that is certain not to work is to try to change the other person's temperament to match your own. That's a recipe for disaster.
  • Allow for different bugs in different people.
  • Underneath our surprisingly thin veneer of culture and civilization, we are in fact wired very similar to the aggressive alpha dog who marks his territory with urine. You can readily observe this behavior on the urban street corner, at the corporate boardroom, at the suburban party, and at the corporate team meeting. It's just how we are.
  • Act like you've evolved: breath, don't hiss.
  • Our perspective is skewed all the way from our persona values to understanding our place in the cosmos. What we think of as "normal" isn't necessarily so. You can be misled easily be your internal wiring, in additional to prejudices and biases of all sorts, and think everything is just fine.
  • Trust intuition, but verify.
  • Feedback is the key to agile software development for precisely this reason: software development depends on people. And as we've seen here, people have bugs, too. In short, we're all nuts--one way or another. Deposit our best intentions, we need to double-check ourselves and each other.
  • You need unit tests for yourself, too.
  • As you become more expert in a given area, you'll develop more of the capacity for accurate self-feedback, so it will become easier over time.
  • How do you know?
  • To help get a bigger picture perspective and test your understanding and mental model, ask yourself something like the following questions:
    • How do you know?
    • Says who?
    • How specifically?
    • How does what I'm doing cause you to...?
    • Compared to what or whom?
    • Does it always happen? Can you think of an exception?
    • What would happen if you did (or didn't)?
    • What stops you from...?
  • Expectations color reality.
  • Expectations create reality, or at least color it. If you expect the worst from people, technology, or an organization, then that's what you're primed to see.
  • At our current state of technology and culture, your ability to learn may be your most important element of success. It's what separates getting ahead from just getting by.
  • The technology itself isn't as important; it's the constant learning that counts.
  • The majority of all scientific information is less than fifteen years old. In some areas of science, the amount of available information doubles every three years.
  • We have a lot to learn, and we have to keep learning as we go. There's just no way around that.
  • Sheep dip training follows the same model. You line up unsuspecting employees, dunk them in an intensive, three-to-five day event in an alien environment, devoid of any connection to their day-to-day world, and then proclaim them to be Java developers, .NET developers, or what have you. It wears off, of course, so next year you need to have a "refresher" course--another dip.
  • Companies love standardized "sheep dip" training. It's easy to purchase, it's easy to schedule, and everyone fits in a nice little box afterward. [...] There's only one drawback. This naive approach doesn't work.
  • Sheep dip training doesn't work.
  • Learning isn't done to you; it's something you do.
  • Mastering knowledge alone, without experience, isn't effective.
  • To get where you want to be--to learn and grow in your career and personal life--you'll need to set some goals. But goals by themselves aren't enough to guarantee your success.
  • To help you focus on your goals--and be in a better position to attain them--allow me to suggest an old favorite from the consultant's bag of tricks: using SMART objectives to meet your goals.
  • Objectives move you to your goal.
  • We tend to be a bit fuzzy on the terms goals and objectives. Just to be clear: a goal is a desired state, usually short-term, that you're trying to reach. An objective is something you do to get you closer to that goal.
  • An objective should be specific.
  • To have any chance meeting an objective, you have to be able to measure it somehow. Measurable goes hand-in-hand with being specific. It's hard to measure something general and abstract but much easier to measure something concrete and specific--using actual numbers.
  • If you think you can't measure your objective, then it's probably not specific enough.
  • But be sure to take small bits and measure steady, incremental progress.
  • Measure your objectives, but stage them in increments.
  • A goal or objective that you cannot attain is not a target; it's just a maddening, soul-sucking frustration. Some things are just not possible for most people--competing at an Olympic level, for instance. Others are possible, but at a disproportionate commitment of time and resources.
  • Make each next objective attainable from where you are now.
  • Without deadlines, a goal will languish and be perpetually pushed aside by the more pressing exigencies of the day. It will never happen.
  • Again, take small bites. Give yourself frequent, small milestones. You'll be more motivated when you meet them and encouraged to rise to meet the next one.
  • Create SMART objectives to reach your goals.
  • Setting yourself a goal is the first step. The next step in an action plan is to create small objectives that allow you to achieve something every day or so. The more small objectives you have, the more easily you'll see where you are in relation to your goal.
  • Time can't be created or destroyed, only allocated.
  • Just having a plan is a huge step forward. Be very specific in your plan; use the idea of SMART objectives and goals, and devise different levels of goals over time.
  • All knowledge investments have value.
  • One major difference between knowledge investments and financial investments is that all knowledge investments have some value. Even if you never use a particular technology on the job, it will impact the way you think and solve problems. So, anything you learn will have value; it just may not be direct, commercial, on-the-job value.
  • Because everyone is wired differently, some ways of learning will be more effective for you than others, so you need to figure out the most efficient way for you to assimilate new information.
  • Your MBTI category, if you will, represents the default setting for you. You can always choose to act differently. But these are your default behaviors when no one is watching (especially when you're not watching).
  • Discover how you learn best.
  • Form study groups to learn and teach.
  • It's an unfortunate truth that written instructions are generally considered to be the least efficient. Many of the parts of the brain and body that you want to train or educate aren't the parts that process language. Remember from our brain discussion that the portion of your brain that processes language is relatively small. The entire rest of your brain and body doesn't do language.
  • Written instruction is the least efficient.
  • As a result, it seems that we learn best from observation. We are natural mimics, and the best, most effective way to learn is by observing and mimicking someone else.
  • SQ3R:
    • Survey: Scan the table of contents and chapter summaries for an overview.
    • Question: Note any questions you have.
    • Read: Read in its entirety.
    • Recite: Summarize, take notes, and put in your own words.
    • Review: Reread, expand notes, and discuss with colleagues.
  • Read deliberately.
  • Reading the same material over and over, or studying the same notes over and over, doesn't help you remember the material. Instead of studying, try testing.
  • Repeatedly testing yourself by trying to recall the material over and over works much better. Deliberate, repeated attempts at retrieval consolidate learning and strengthen the connections in your brain. Repeated input, by itself, doesn't do you nearly as much good.
  • Cramming, or studying a lot of information in a short amount of time, is not very effective. We tend to forget things along an exponential curve, so spacing out your quizzing reinforces material much more effectively.
  • A mind map is a kind of a diagram that shows topics and how they are connected. Creating a mind map is a widely used creativity- and productivity-enhancing technique.
  • Spatial cueing conveyors information to you in a way that linear words or an outline can't; the addition of color and symbols ads to the richness of the representations. As you go to add a new piece of information, a new thought, or an insight to the mind map, you are faced with the question, where does this belong? You have to evaluate the relationships between ideas, not just the ideas themselves, and that can be a very revealing activity.
  • Redrawing and retrieving the information from memory helps strengthen the connections and may expose additional insights in the process.
  • Nonspecific, non-goal-oriented "playing" with information is a great way to gain insights and see hidden relationships.
  • Use non-goal-oriented "play".
  • Writing is as important as reading.
  • Mind maps are most effective when you're not exactly sure what you'll find.
  • Use a mind map to help clarify.
  • One of the tenets of agile software development is to avoid needless documentation. That is, if documentation doesn't provide value, don't do it: writing documentation for documentation sake is a waste of time.
  • Chance favors the prepared mind.
  • Producing low-level design documents that simply mirror the code (and become obsolete almost immediately) don't provide any value to anyone.
  • Write on: documenting is more important than documentation.
  • One of the simplest and most effective techniques to learn something is to try to teach it.
  • See it. Do it. Teach it.
  • Gaining experience is key to learning and growth--we learn best by doing.
  • Your brain is designed such that you need to explore and build mental models on your own. You're not really designed to passively sit by and try to store received knowledge.
  • We seem to have a cultural tendency to put the cart before the horse: you struggle to shovel in information first and then hope to maybe use it later. That's the basis of most formal education and corporate training. But the real world doesn't work that way.
  • [Seymour] Papert worked with world-renowned Swiss psychologist Jean Piaget and also believed that real learning--the learning that sticks with you--comes from experience and cognition, not from explicit teaching or rote practice. Their approach is called constructivism: we build to learn, not learn to build.
  • Real life has no curriculum.
  • Fun is OK.
  • But regardless of any specific skill deficiencies, in general we are amazing learning machines.
  • Working with new material or solving a problem in a playful manner makes it more enjoyable, but is also makes it easier to learn. Don't be afraid of fun.
  • Play more in order to learn more.
  • To solve a problem, ask yourself these questions:
  • What are the unknown aspects?
  • What do you know? What data do you have?
  • What constraints and what rules apply?
  • Learn from similarities; unlearn from differences.
  • You need to unlearn just as much as you need to learn.
  • Perversely enough, failure is critical to success--not just any random failure; you need well-managed failure. You need the support of a good learning environment so you can more easily gain and apply experience from both your failures and your successes.
  • "I don't know" is a good start.
  • Not all mistakes arise from things you do; others come from things you didn't do but should have done.
  • Fill in the blanks. "I don't know" is a fine answer, but don't let it end there.
  • We tend to think of failure or ignorance in a very negative light, as something to be avoided at all costs. But it's not important to get it right the first time; it's important to get it right the last time. In any nontrivial endeavor, you will make mistakes.
  • Explore, invent, and apply in your environment--safely.
  • Few problems have a single, best solution.
  • It's what we call the Starter Kit: version control, unit testing, and project automation.
  • There are two types of failure. There are failures that are good for us that we can learn from. But there are failures that aren't good for us. This second type of failure doesn't produce any learning: it keeps us from learning in the first place, or it shuts down our learning in mid-experience.
  • We learn best by discovery, not instruction.
  • Situational feedback is the primary inner game technique that allows you to learn more efficiently by eliminating any interference.
  • Awareness is an important tool in becoming more than a novice.
  • This is a key aspect to playing the inner game: don't focus on correcting individual details, but just be aware. Accept what is as a first step, and just be aware of it. Don't judge, don't rush in with a solution, don't criticize.
  • See without judging and then act.
  • Don't just do something; stand there.
  • Too often programmers seem to jump in to fix an apparent bug without fully evaluating what's really wrong first. Fight the urge to rush to judgment or to a potential fix prematurely. Be fully aware of how the system is behaving, and only then decide what part of that is "wrong" before moving on to devise a solution. In other words, don't just do something; stand there.
  • The Inner Game series sums up this idea with the phrase, "Trying fails, awareness cures." That is, consciously trying generally doesn't work as well as simple awareness. IN fact, trying too hard is a guarantee for failure.
  • The mere presence of a looming deadline can panic the mind into failure.
  • Deadlines panic the mind.
  • I said earlier that errors are important to success. The other important lesson from the Inner Game series is the idea that permission to fail leads to success. You don't actually need to make errors, as long as it's OK if you did. It sounds somewhat counter intuitive, but once you play with the idea, it makes a lot of sense.
  • Give yourself permission to fail; it's the path to success.
  •  Create "failure permitted" zones.
  • Perception is based on prediction.
  • Much of perception is based on prediction, and prediction is based on context and past experience, so much so that current real-time input takes a backseat.
  • Since the brain is kinda gullible with regards to its input source: imagining success is provably effective in achieving it.
  • You can improve performance--whether you're playing a violin, debugging code, or designing a new architectures--by imagining that you've already done so successfully.
  • Groove your mind for success.
  • By surrounding yourself with highly skilled people you will increase your own skill level. Some of that is from observation and application of their practices and approaches. Some of that comes from the fact that you're conditioning your mind to perform at a higher level.
  • You have a natural mechanism known as mirror neurons that help: watching someone else's behavior triggers an equivalence for you to do the same.
  • We are natural mimics.
  • Attention is the act of focusing in on an area of interest. You can pay attention only to a fairly small number of things; beyond that, events and insights will escape your notice. Many, many things are competing for your attention in our current environment. Some of them desire it; most do not.
  • Sometimes we use the words information and knowledge interchangeably, but they aren't the same thing. Information is raw data in a given context. Knowledge imparts meaning to that information. You apply your time, attention, and skill to information to produce knowledge.
  • It's amazing what you can miss when distracted.
  • It's easy for us humans to divide our attention fecklessly such that nothing receives our full attention and so nothing effective gets done.
  • Beware idle-loop chatter.
  • Your attention is in short supply. There is only so much you can pay attention to, and there are so many things that compete for your attention daily.
  • Learn to pay attention.
  • If you want to more efficiently allocate your "attentional resources" throughout the day, you need to learn the basics of meditation.
  • Meditation might sound trivial. It's not. I strongly suggest you give it a try for awhile; paying attention is a critical skill.
  • Creativity does not function on a time clock and does not generally yield results when pressured. In fact, the situation is quite the opposite: you need to let go of the problem with your conscious mind and let the problem sit in the marinade of thought for a while.
  • Handing work over to the unconscious works only if you have some data to work on. You first need to "fill up", as it were, with what facts you have.
  • There is no single source or executive monitor that's calling the shots. Instead, whichever areas are activate together right now from your consciousness. That makes consciousness a bottom-up, self-organizing, perhaps even emergent property.
  • IN general, if you can't think of three ways a plan can go wrong or ting of three different solutions to a problem, there haven't through it through enough.
  • Make thinking time.
  • You need a place to put your thought where you can work with them effectively. Thanks to modern technology, I recommend you use some sort of hyperlinked information space that allows easy self-organization and refactoring.
  • External support is part of your mind.
  • According to the research into distributed cognition, the tools you use for mental support outside your brain become part of your operating mind. As marvelous as the brain is, we can turbocharge it by providing some key external support.
  • It's enough to know you've read about is once to remember where to go find the details.
  • Your own book collection, your notes, and even your favorite IDE and programming language all form part of your exocortex, which is any mental memory or processing component that resides outside your physical brain.
  • For marinating, categorizing, and developing thoughts, I find one of the most effective tools to be a personal wiki.
  • Use a wiki as a text-based mind map.
  • Use a wiki to manage information and knowledge.
  • Once you have a place to put some type of thought, you'll get more thoughts of that type.
  • Computers have a distinct advantage over our mental architecture; they are built to swap context easily and naturally.
  • If something interrupts us, breaks our flow, or causes us to lose our focus, it's really expensive to drag everything back in. We call that "dragging everything back in" context switching.
  • It takes twenty minutes to reload context.
  • Multitasking takes a heavy tool on productivity. One study found that in general, multitasking can cost you 20 to 40 percent of your productivity. Right there, that cuts your eight-hour work day down to five. Other studies bump that number up closer to 50 percent, with a huge increase in errors, as well.
  • Establish rules of engagement to manage interruptions.
  • Send less email, and you'll receive less email.
  • Choose your own tempo for an email conversation.
  • The best advice for email is out of sight, out of mind, Exit your email client when not in use.
  • Possible the best thing you can do if you think you're going to get interrupted is to prepare to be interrupted.
  • There's a lot of interest in the scientific community on task interruption and resumption. There are two time periods of interest: the interruption lag and the resumption lag. Once you've started a task, you proceed along until some interrupt comes in. This is the alert that you'll soon need to start a secondary task. The time between the alert and the start of the next task is the interruption lag. Now you proceed on the new task for a while and at some point switch back to the original task. The time is takes you to get back up to speed is the resumption lag.
  • You can instantly realize productivity gains of 20 to 30 percent just by getting yourself a second monitor, regardless of how you measure productivity.
  • Use multiple monitors to avoid context switching.
  • Optimize your personal workflow to maximize context.
  • So, what does it take to stay sharp? The biggest thing is self awareness--remembering that you need to deliberately work at staying sharp.
  • While your mind has an intention to learn, your physical brain is trying to keep things, well, lean. Like an overactive housekeeper, if the brain doesn't think this is emotionally charged context, valuable to your survival, out it goes.
  • Practice makes permanent.
  • Change is always harder than it looks--that's a physical reality, not just an aphorism. An old, ingrained habit makes the equivalent of a neural highway in your brain. These old habits don't go away. You can make new neural highways alongside, going a different route and making shortcuts, but the old highways remain. They are always there for you to revert to --to fall back on. Practice may not make perfect, but it sure makes permanent.
  • Realize that these old habits will remain, and if you revert to one, don't' be too hard on yourself. It's how you're wired. Just acknowledge the lapse, and move on with your new intention.
  • Inaction is the enemy, not error.
  • Remember the danger doesn't like in doing something wrong; it lies in doing nothing at all. Don't be afraid to make mistakes.
  • New habits take time.
  • It takes something like a minimum of three weeks of performing a new activity before it becomes habit. Maybe longer. Give it a fair chance.
  • Belief is real.
  • As we've seen throughout, your thoughts will physically alter the wiring in your brain and your brain chemistry. You have to believe that change is possible. If you think you'll fail, you'll be correct.
  • Take small, next steps.
  • Start with the low-hanging fruit. Set up a small, achievable goal, and reward yourself for reaching it. "Rinse and repeat": set up the next small step. Take one step at a time, keeping your big goal in mind but not trying to map out all the steps it takes to get there. Just the next one. Learn what you need to know for the goals further out once you get closer to them.
  • Just start! It doesn't particularly matter what you choose to start with, but start something from this book deliberately, first thing tomorrow morning.
  • The professional kiss of death for an expert is to act like one. Once you believe in your own expertness, you close your mind to possibilities. You stop acting on curiosity. You may begin to resist change in your field for fear of losing authority on a subject you've spent so long mastering. Your own judgment and views, instead of supporting you, can imprison you.
  • Instead, always keep a "beginner's" mind. Ask "what if"? You want to emulate a child's insatiable curiosity, full of wonder and amazement.
  • Approach learning without preconceived notions, prior judgment, or a fixed viewpoint. See things exactly as they are--just as a child would.
  • Self-awareness is key to becoming an expert--and beyond--but it falls prey to the "old-habit-neural-highway" problem.
  • Be aware.
  • Be aware of yourself, of the present moment, and of the context in which you're operating.
  • I think the biggest reason that any of us fail is that we have a tendency to put things on autopilot.
  • Tips:
    • Always consider the context.
    • Use rules for novices, intuition for experts.
    • Know what you don't know.
    • Learn by watching and imitating.
    • Keep practicing in order to remain expert.
    • Avoid formal methods if you need creativity, intuition, or inventiveness.
    • Learn the skill of learning.
    • Capture all ideas to get more of them.
    • Learn by synthesis as well as by analysis.
    • Strive for good design; it really works better.
    • Rewire your brain with belief and constant practice.
    • Add sensory experience to engage more of your brain.
    • Lead with R-mode; follow with L-mode.
    • Use metaphor as the meeting place between L-mode and R-mode.
    • Cultivate humor to build stronger metaphors.
    • Step away from the keyboard to solve hard problems.
    • Change your viewpoint to solve the problem.
    • Watch the outliers: "rarely" doesn't mean "never".
    • Be comfortable with uncertainty.
    • Trust ink over memory; every mental read is a write.
    • Hedge your bets with diversity.
    • Allow for different bugs in different people.
    • Act like you've evolved: breathe, don't hiss.
    • Trust intuition, but verify.
    • Create SMART objectives to reach your goals.
    • Plan your investment in learning deliberately.
    • Discover how you learn best.
    • Form study groups to learn and teach.
    • Read deliberately.
    • Take notes with both R-mode and L-mode.
    • Write on: documenting is more important than documentation.
    • See it. Do it. Teach it.
    • Play more in order to learn more.
    • Learn from similarities; unlearn from differences.
    • Explore, invent, and apply in your environment--safely.
    • See without judging and then act.
    • Give yourself permission to fail; it's the path to success.
    • Groove your mind for success.
    • Learn to pay attention.
    • Make thinking time.
    • Use a wiki to manage information and knowledge.
    • Establish rules of engagement to manage interruptions.
    • Send less email, and you'll receive less email.
    • Choose your own tempo for an email conversation.
    • Mask interrupts to maintain focus.
    • Use multiple monitors to avoid context switching.
    • Optimize your personal workflow to maximize context.
    • Grab the wheel. You can't steer on autopilot.

No comments:

Post a Comment