ETech 2009: Refactor Your Wetware ETech - March 9, 2009
Jumping into ETech 2009 with a 3-hour workshop with Andy Hunt (author of Pragmatic Thinking Learning):
Andy was frustrated seeing clients make the same mistakes over and over again. Wanted to write a white paper to help jump start client projects and processes a bit better. The white paper grew into a book: The Pragmatic Programmer.
Annoyed with Python, tried to learn several times but never got it. Learned about Ruby and loved it.
Regardless of language preference, need a strong methodology for programming (automation, version control, testing, etc.). But after working on that, it still wasn't enough. What are we missing? Got interested in learning about how the brain works – the one constant is us: people.
Wetware – humorous human brain cells or thought processes regarded as analogous to or in contrast with, computer systems.
3 constant themes:
1. Context is all important – '5th Discipline' book, author pushes idea of systems thinking – cannot look at any object or thing as a thing itself. All part of a system. A tree isn't a stand alone object – it's a meeting of systems. Everything is interconnected.
2. Patterns – Not software design patterns, rather things you can scan out in your environment and recognize. Neuro-plasticity – brain has amazing capacity to re-wire itself. The way you think about things will physically change your biochemistry / wiring in the brain. Difference between typing and handwriting a note – vastly different in the way your brain handles it.
The Dreyfus Model
As you gain more experience and intelligence, you also experience profound change in the way you problem solve and look at the world. Novices have to function by the rules – make them effective by giving them context free, iron-clad rules (if that happens – do that).
At other end of spectrum is the Expert – if you force them to follow the rules, it degrades their performance (by 700%). It just doesn't work. Experts function more on intuition – an expression of deep, varied subconscious knowledge — nothing magic. Experts are often inarticulate in their findings and work – they don't always know how they figured it out, can be an issue. They just know.
Novices don't know what is important and not important – don't have the experience to know what the important parts are. Experts are more likely to see themselves are part of the system (important in systems thinking). Novices feel like more detached observers, don't have the appreciation on how their actions can impact the whole.
So why is this important? We have cultural bias against intuition, so we tend to often discount it and refuse to cultivate it. To be an expert you MUST use intution. However, the label 'expert' only applies per skill – you can be an expert programmer, but a novice skydiver.
Your brain vs. a computer
Our brains are NOT computers. Brain is 3.5 pounds, but consumes 20% of our energy resources. Kind of a hog. Physical exercise and good diet crucial to thinking better, given all the energy it eats up. Healthy body = improved cognition.
Our brains are like 2 CPU's – one is linear and slow. The other is non-linear and uber-fast (not always predictable – answers pop out randomly and asynchronously). Memory is stored holographicaly. Even if brain matter is partially destroyed, much of the memories remain intact (see split brain experiments).
Linear (L) Mode and Rich (R) Mode
L Mode is verbal and sequential – Verbal / Analytic / Symbolic / Works with abstractions / Logical / Slow (operates around speed of speech – input rate is limited to about 10 bits per second = half the speed of early modems)
R Mode is wildly different – NonVerbal / Non-Rational / Synthetic (likes to put things together, not take things apart) / Spatial
"Don't disset a frog, build one" – can learn so much more by building versus taking apart. Many programmers go this way automatically, going to code to build vs. always going through bugs line by line to dissect.
Looking at trajectory of commodity markets, the only way you can differentiate is through aesthetics. Look at toilet brushes – injection moulding, super cheap in China, done. But, if you are Target, you hire M. Graves to design sexy toilet brushes. Technology is the same, aesthetics vastly different.
Lots of studies on pretty vs. ugly user interfaces – HUGE difference in people's performance when using the attractive interface. Tested in multiple countries (concerned about cultural bias), but all turned out the same. Attractive works better.
L-Mode symbolic reduction – when asked to draw your house, does it really look like a box with a triangle? Must experience a cognitive shift. Jump into your R-Mode, surpress that L-Mode chatter – doodle, use Lego blocks, post-its and jump beyond typical symbolism in your brain. That's how many drawing classes succeed – people can't draw well because they are too caught up in their L-Mode.
Interesting: in dreams, we typically don't read. We are generating images, not language. Our brains in a vastly different space when in dreamland.
How to coordinate these different processes in our brains? Create a metaphor = meeting place between L and R Modes. Example – ATT 'airtime minutes' commercial with orange tokens for minutes. How to make phone minutes a more concrete idea — to teach, must move from abstract beatitudes and give people a concrete meaning of concepts. Providing same info, but it clicks better (ie: Microsoft says XX MB and iPod says 10,000 songs it just makes more sense).
Is always an effective way to boost your creativity. Do exercises like: 'How many ways can you describe red?' (lipstick, apple, Ferrari) Extend your idea. Humor is also a great way to develop sense of metaphor.
Concept of Flow
When we are truly 'in it', time gets distorted (time = L mode activity) and you lose track of how long you've been doing it. Great sign that L Mode isn't running the show. Bring on the R Mode!! Check out this Flow book for more.
Sheep Dip Training
What is education all about? Latin — edu care = drawn forth. NOT POURED IN!! Training / teaching / education isn't something that is 'done to you'. Learning is something you have to do. 'the mind is not a vessel that needs filling, but wood that needs igniting' – Plutarch
Your Knowledge Portfolio
This is what you take with you, job to job. You take you and the things that you know. When discussing goals, must be very specific (lofty doesn't work). Must discuss S.M.A.R.T. goals. Want them to be things you can do, not just dream about. Must be deliberate.
- Have a plan – Know exactly where you want to be.
- Diversify – Don't have all your eggs in one basket. You don't want your professional career tied to one vendor and you don't want all of your skills in one area. Branch into other technologies, writing, public speaking. Grow yourself as a whole.
- Look for value
- Active investment – The world changes, so re-balance our investments every so often.
- Regularly – Need to create a minimum amount of time on a regular basis to devote to your career. What should you be taking on? What should you be learning? Must specifically and deliberately carve out time to do it. Don't let it wait until something else is done. Make it a regular priority.
Avoid falling into traps of passive consumption – many past times exist primarily to make somebody else money. Find something that grows you and helps you invest in yourself – to avoid being an empty husk void of creativity. Create, make, grow,
Definitely a cult following, but many folks cannot get through Getting Things Done. Soooo…. essential David Allen basics:
- Scan queue once
- Work each pile
- No mental lists
- If you can join the 0 inbox crowd, do it
Being a visual learner doesn't mean that you have to see pictures. It also means that you like to clue in to a presenter's body language or capture a different experience by actually being there. Experiment with auditory / visual / kinesthetic learning.
On reading/learning from a book: is one of the most difficult ways to learn. The best is to sit next to someone that is showing you and working with you directly. So how do you make learning from a book more effective?
SQRRR – Survey / Question / Read / Recall / Review
Take the work you want to study from. Scan it and survey the table of contents/chapter summaries to get an overall sense of what's in the book. Write down questions you might have with that overview, that you hope the book will answer. Read the entire book, then test yourself on it (recall it). Is a HUGE help in cementing it in your memory. Then review the book.
How to take notes
Mindmaps – hugely popular in Europe, but not generally used in the USA. Hand drawn mindmaps are far more conducive to seeing fresh relationships and creative thinking. Using computer software can mean shutting off important functionality and thinking patterns.
Try affinity groups – organizing info in related groupings. Try using post it notes on a white board, can draw, move and sketch around notes to assist grouping. Intuition will pop out when looking at these patterns and seeing relationships. 'Loose tools for loose thoughts' – your kind of thinking/idea generation must match the way you are working/documenting/growing them.
Teaching is the best way to really learn something. Write an article, give a presentation, moderate a panel on the subject – this will force you to fully grasp it and be ready to explain and walk others through it. Also, very useful to try and explain what you do to someone outside your field. Tell them in terms they can understand. Try simplifying what you do to a child – create metaphors to help even yourself understand things even better.
Gaining experience
Difference between someone with 10 years of experience, that was really only 1 year repeated 9 times, to someone who has, in fact, actually had 10 years of fresh experience. Try to get your student to be more observant of their environment. Book – 'Inner Game of tennis' – have observational / situational exercises to set up feedback loop so you begin to realize that doing X brings Y result correlations.
Barraging students with tips and information doesn't work. Focus on observing what's going on – learning an instrument? How does this position feel, versus this one (that instructor puts them in)? Learning tennis – difference between ball bounce and ball hit. Patterns of serving. Not all mechanics and form, but the feel of the activity and skill. Take inventory of the world around you and process before you.
Deadlines and pressure – panicking the mind into failure
Pressure means imminent danger to the brain – think tiger about to pounce. You clam up and forget the big stuff. Tell your brain that you can fail – relieve that pressure. Failure is not terrible. Let your brain breathe.
Grooving
If you are surrounded by more advanced practitioners, your brain kicks it up a notch thinking that this is how you're supposed to react. Bobsled runners go through their track practices in their heads (when this happens, this is what's supposed to happen, this is what I do) – incredibly effective as training.
We are natural mimics. If you tell a musician to play like another famous musician, they can do it even if they don't have that skill level. All tied into the innate abilit to mimic. If you do it often enough, your brain starts to re-wire itself to facilitate that action.
Previously thought we couldn't grow new neurons – but that was when scientists were studying monkeys in a lab setting. This environment doesn't lead to growth. If you spend a lot of time practicing or doing something, you will groove the brain to start doing it.
Even if it's something you've imagined or predicted (not actually real), your brain doesn't actually know the difference that you haven't done it. Think of what you want to accomplish regularly and strongly.
Beware of email apnea
Lots of people hold their breath when first opening email – bracing themselves for potentially negative content. BREATHE! Sit alert, be conscious of your breathing (air in, air out), focus on just one thing. Be aware of the air flowing in your body and going out of your body. Another thought comes up? Let it go by and re-focus on the air around you.
Managing the torrent of information
Quick distraction will take you 20 minutes to get back into the groove, most distractions take longer. When you know that you are about to be interrupted and lose your train of thought, jot down in a word or two what you were about to do. Then you'll bring your brain back a bit faster – this queue will help you drag the context in a bit faster and a bit better.
How to tame your email:
- Rig entry sound so only dings on 'high importance' emails
- Get rid of pop up email notifiers
- Shut down email altogether for spaces of time
- Variable intermittent reward = you might get a cool email, but only intermittently. Polling for email can be an addictive behavior. Some folks declaring entire afternoons/days email free to keep time productive.
Go with dual monitors – keep all of your tools right in front of you to save time. Productivity gains of 20-30%. Mac users can use
"The real voyage of discovery consists not in seeking new landscapes, but in having new eyes" Marcel Proust
Change is hard:
- Start with a plan
- Avoid inaction, not error – inaction is the enemy!!
- New habits take time – 3-4 weeks of you doing something consistently makes it a habit
- Belief is physical – what you believe has physical repercussions on how your brain wires itself. If you limit yourself, then that's as far as you'll go. Aim high to go high. If you believe you can do something, you will be able to do it.
- Take small next steps
What are the first steps in refactoring my wetware?
- Ask 'why'? How do you know? How do I know?
- Answer – 'I don't know – yet' is a perfectly good response. Then find it out.
- Pick 2 things that will help you maintain context
- Create a 'Pragmatic Investment Plan' – maintain your knowledge portfolio
- Figure out where you are on the novice – expert spectrum. What do you need to move forward.
- Practice, practice, practice. If you are having trouble, do it in 5 different ways to figure it out.
- Start thoughtful walks
- Start a book reading group at work
- Get a second monitor and use a virtual desktop
Once you've reached the expert status, don't act like one. Novices see a world of opportunities, experts often close off to that. Never let your mind close. Stay open and learning. Move beyond knee jerk symbolic reaction and be aware of your surroundings – whatever they may be.























One hint I would give: explore the nonlinear nature of our body’s structure; apply those lessons to whatever abstract topics you’re studying/programming.
We’re nonlinear: our muscles and bones are best modeled as a tensional integrity model (AKA tensegrity model AKA floating compression model). When stressed, our bodies respond in a nonlinear fashion: very fluid at first then elastic.
Feldenkrais classes are a fantastic way to alter our relationship to our bodies. They are decidedly right-brain in their approach to our bodies. I wrote a blog entry on how programmers can think about Feldenkrais on my website.
I also deeply love Meyer’s paper on Spatial Medicine: http://www.anatomytrains.com/explore/spatialmedicine/expanded . It’s fantastic thinking and a wonderful use of language: very right brain.