Sunday, August 28, 2011

Review of "The Genius in All of Us"

Subtitled "Why everything you've been told about genetics, talent, and IQ is wrong" by David Shenk.

I first saw this book at a swim meet. A parent sharing at our table was reading it and I dismissed it based on the cover main title alone. Through a discussion with the reader's wife she asked me "Are you judging a book by it's cover." My prejudice was exposed therefore I was determined to read it if only for penance.

I recommend this book especially since it is only 134 pages (with 168 pages of notes and bibliography). It starts with a story about Ted Williams that shows the dedication it took for him to become the best hitter in baseball. This theme is repeated many times.The author introduces you to the developmental systems theorists concept of GxE (genes times environment). The book attempts to debunk the myth that your abilities (and to some degree who you are) are mainly determined by genes. GxE will admit genes play a role, but that the choices one makes have a far greater impact than genes.

He then beats up Lewis Terman, but anyone who has read "Outliers" already knows the punch line: you can't predict the future based on some test, specifically one as limited as IQ. He lists some environmental triggers that I like:
  • Speaking to children early and often
  • Reading early an often
  • Nurturance and encouragement
  • Setting high expectations
  • Embracing failure
  • Encouraging a "growth mindset"
Next he introduces us to the with the work of Dr. K. Anders Ericcson. Ericsson and William Chase did studies on improving memory of "average" students. They concluded "With practice there is seemingly no limit to memory performance." From there he articulates the various myths people have spouted over the years about genius; focusing on Mozart (BTW his father was obsessed with making him the greatest composer in Europe as he had failed). He provides these themes for greatness:
    • Practice changes your body
    • Skills are specific
    • The brain drives the brawn
    • Practice style is crucial
    • Short-term intensity cannot replace long-term commitment
    Then he dives into a famous twin study (from 1981) that "proved scientifically" that genes determine 60% of intelligence and personality; 40-66% of motor skills and 21% of creativity. In case you haven't already guessed the author rips holes in this study and explains the results using GxE theory. Next he lists some emergent ideas from genetic testing of  high performers (Kenya long distance runners, Navy SEALS, Jamaican sprinters, etc):
    1. Despite appearance to the contrary, racial and ethical groups are NOT genetically discrete
    2. Genes don't directly cause traits; they only influence the system
    Guiding principles suggested by author for people who wish to be great:
    • Find your motivation
    • Be your own toughest critic
    • Beware the dark side (bitterness and blame)
    • Identify your limitations; then ignore them
    • Delay gratification and resist contentedness
    • Have heroes
    • Find a mentor
    More recommendations by the author on how to ruin (or inspire) a kid:
    1. Believe
    2. Support, don't smother
    3. Pace and persist
    4. Embrace failure
    His final point is: "Lifestyle can alter heredity."

    I admit I was surprised how much I didn't know about recent theory. I knew IQ tests were bogus. I had read Gladwell's "Outliers" and knew of his 10,000 rule, but I still held on to this idea that my genes had a lot to due to who I was. Reading this book didn't change my outlook on life, but it did change some of the dialogue around it.

    Saturday, July 9, 2011

    Lean 101

    Lean is a philosophy derived from manufacturing (see Lean.org for more details) that has made inroads into many things, including software development. When people try to adopt it they tend to focus on the techniques and often miss the big picture. When faced with a task, how you think about it will determine how you attempt to perform it.

    Take laundry for example. The most common method is to first sort all the dirty laundry into piles of like colors. Then wash them one at a time and as they wash throw them in the drier. As the dry hang and fold and/or make piles for each person to take care of their own. This divide and conquer approach is usually tool #1 in our tool-belt.

    A lean approach would start at a different place. Lean would start on value. Why do we do laundry? What's the end goal? For me it is clean clothes in my closet. If I could have elves do it for me while I slept I would be satisfied. Since I can't seem to find any nocturnal elves willing to work for free I am stuck doing it. I start with four laundry baskets (and some floors) filled with dirty clothes and I need a process for getting these clothes cleaned and put in the appropriate drawers and/or closets. The clothes need to be cleaned in the washing machine, dried (or laid out for those pesky clothes) and folded/hung in the correct location.

    Lean tells us to pull value, instead of pushing it. What does that mean? Pushing can be thought of as focusing on the sub task. Let's take the first sub task when doing laundry - sorting. Pushing is doing all the sorting before starting a single load. You make sorting the goal before you move to the next task. This can lead to suboptimization. In lean we are trying to maximize value. One tool lean has is to minimize work in process (WIP). WIP isn't value and utilizes resources without providing value. In my domestic example WIP is piles of laundry on the floor. So how do I get laundry done when I don't have pre-made piles to throw in to the washing machine?


    1. Take clothes that can be washed together from the dirty clothes hamper containing the most import clothes (mine) and toss them in the washer. 
    2. When they are done toss them in the dryer.
    3. Go to #1 until all clothes are done

    A problem this approach can run into is when I focus on maximizing the amount of clothes I can stuff in the washer. Doing this is similar to maximizing the output of a machine on a factory floor. When I do this the clean, wet clothes have to wait for the dryer. As I am maximizing the amount of clothes I put in the washer my WIP is bigger than it should be. Kanban (a practice from lean manufacturing) uses WIP limits to prevent this from happening. I simply need to learn the amount I can place in the washer so that the washing (a fixed time on my machine) matches the drying time (a variable time on my fancy dryer). This is the Lean principle of Perfection.

    In software development lean tells us to pull the value. Value is software that is being used by those that paid (at least indirectly) for the software. One common mistake when adopting a lean based software development approach is to force the business customer into breaking cohesive features into bite size ones that are of NO value to the business by themselves. Instead the development team needs to own the break down of features into bite size one and deliver the cohesive feature in a way that the business can use. Sometimes the feature can be delivered piecemeal, but often the feature is not useful until all parts (think CRUD) are done.

    The other mistake is trying to to the entire feature at once. This is comparable to shoving all the clothes in the washer. You need to find the smallest unit that works for your group. In a small group (one-two developers) in can be tackled in extremely small increments (one test at a time in TDD). In larger groups more coordination will be needed. It will be up to each group to find the sweet spot (like how many pants can my drier dry in one wash cycle).

    One thing to keep in mind when adopting a lean approach is there is NO ONE RIGHT WAY. Every situation is different and requires different practices and rules to be optimal. The key is the Perfection principle. Never be satisfied. Always look for ways to make the software better, faster and more valuable to the business. Sometimes you will try ides that cause a step backwards in productivity, but these are a step forward in knowledge. Remember perfection is not achievable, but with lean you should always be seeking it.