Book Report: The Blue Zones

About the Book

The Blue Zones discusses areas across the world where people live unusually long, fulfilling lives. In these regions, the rate of people reaching 100 years old three times as many as those in the USA. In the book, author Dan Buettner states that studies on twins show that roughly 75% of the factors that play into longevity are environmental, with 25% genetic. As such, a change in habit or behavior can have a significant impact on one’s quality of life, and how long they live.

Dan then goes into each blue zone, and discusses the factors that are likely to play into their longevity.

Keys to Longevity

Reading through the four regions (Sardinia, Okinawa, Adventists in Loma Linda, and Nicoya), there are several common themes. I’ve grouped them as such below

Mostly Vegetarian Diet

A diet heavy on beans, vegetables (especially green, leafy ones), and nuts are common elements across all the regions. Each group consumes their set of vegetables regularly, and many include superfoods that are known to help prevent inflammation and cancer.

In the Adventist Health Study, a survey of thousands of Seventh-Day Church Adventists in Loma Linda, California, vegetarians had a 2 year longevity advantage in the study. In the same study, nut eaters had a 2 year advantage.

Regular, Moderate Alcohol

All of the regions drank alcohol regularly. Sardinians in particular drank Cannonau wine, a local variant that has three times the flavonoids of regular wine. Flavonoids help reduce inflammation, and risk of cancer, stroke, and heart disease.

Regular Tea and Coffee Consumption

Throughout the day, everyone drinks a significant amount of tea and coffee.

Reduced Added Sugar Consumption

The added sugar consumption of most surveyed is under 25 grams, half of the daily added sugar recommendation of 50 grams. Many only take added sugar with their coffee.

Sufficient Sun

The book calls out the significant amount of sun that the older generation of Okinawan get, with several hours of time out in the sun harvesting and growing vegetables.

Sufficient Water

In the Adventists in Loma Linda, Men who 5-6 glasses of water per day had a substantially lower risk of a fatal heart attack. Drinking increased soda, coffee, and cocoa resulted in a much higher fatal heart attack rate.

Physical Activity

In the Adventist Health Study, physical activity (30 minutes 3 times a week) resulted a 2 year longevity increase and decreased incidence of heart and stomach cancer. Modest activity and the benefit levels out at the marathoner level.

Eat a Light Dinner

Eat a light dinner. There’s no studies that support this, but it is common across all the regions for the dinner to be light. Most calories are consumed by noon, for those living in the region.

Have a Strong Social Network

All of the citizens in the region had a strong social network, visiting each other regularly. The feeling of need and purpose was common for all of those interviewed.

Thoughts on the Book

The Blue Zones was a pleasant and easy read, mixing in individual interviews and Dan’s perspective with discussions around specific behaviors that may contribute to longevity, with studies and summaries near the end.

From a statistical point, correlation does not always equal causation, and it’s important to keep that perspective when reading the book. The book highlights multiple behaviors that are linked to increased longevity, but it is hard to identify the individual factors that truly contribute to long term health.

However, sans some sort of manual on how the human body works, having a group of researches that have done the diligence of identifying the areas where people live the longest, healthiest lives, and extracting common elements, is extremely valuable. There will most likely be many parts of this book that will be disproved, but there is a lot of empirical evidence that these behaviors and practices will lead to a prolonged life with a higher quality of life.

Book Report: Crucial Conversations

Crucial Conversations by Al Switzler, Joseph Grenny, and Rob McMillan is a book about how to ensure that difficult conversations result in a productive, positive result for everyone. The book lays out clear strategies to deal with some of the more difficult challenges around having conversations where tensions are high.

Thoughts on the Book

Overall, I think this is one of the best books I’ve read in 2019, if not the best. The techniques the book calls out are concrete, easy to understand, and easy to see where it applies (although actually applying it is much harder). I now use the crucial conversations framework to rethink all of my conversations, even when they aren’t crucial.

There’s a general theme that comes from this book, which is that it is always possible to achieve a positive result from a conversation. There are some great examples in the book, and even just considering a third path to make all parties happy is a game changer in and of itself.

Content Notes

Defining a Crucial Conversation

Crucial Conversations begins by defining what a crucial conversation is. A crucial conversation is defined as:

  • Stakes are high
  • Opinions vary
  • Emotions running high

The interesting thing about these conversations is that a conversation can turn crucial at any moment. As such, it’s important to ingrain techniques to lead a successful crucial conversation, as oftentimes it will occur without any prior warning, relying on instincts more than processed thoughts.

Avoid the Fools Choice

A common mistake in a crucial conversation is to believe that one must make a choice between providing truthful feedback and keeping the person’s feelings from being hurt. Those who successfully have crucial conversations are able to avoid hurt feelings and relationships, while being able to express their feedback clearly. The rest of the book discusses the strategies that work well to make that happen.

Focus on What you Really Want

When confronted with a situation or demeanor that makes you feel personally attacked, it’s easy to react in kind, such as being defensive or attacking the other person. Unfortunately, that behavior will most likely not achieve the outcome you’re looking for. Make sure to focus on your actions and ask yourself if it will get you closer to the outcome you want to achieve.

Watch for Signs the Conversation is Starting to Go Poorly

It’s a lot easier to reconcile a conversation if it’s only beginning to go poorly, in contrast to a conversation that has already been going poorly for a while. Look for warning signs around people (and yourself) getting defensive or emotional, to try to remedy the situation quickly.

  • The moment a conversation becomes crucial
  • Signs that someone doesn’t feel safe

Ways to behave in that situation:

  • slow down, step back, and re-evaluate the situation

When Someone Doesn’t Feel Safe

There are clear signs where someone doesn’t feel safe in the conversation. These include:

  • Forcing their opinion into the conversation
  • Withdrawing significantly from the conversation

People often withdraw not because of the feedback, but because they believe you don’t have their best interest in mind.

Don’t Sugar Coat the Message

Those who are good at crucial conversations don’t rely on using statements that reduce the severity of the message. Instead, they focus on stepping back and establishing safety.

Rubric to Ensure a Crucial Conversation

There are two major aspects of a conversation that require alignment, in order for a conversation to be successful:

  1. mutual respect: do both parties believe the other has their best interest in mind?
  2. mutual purpose: do both parties have the same goal in mind?

Determine which one is compromised by “stepping out” and evaluating the situation. Then take the appropriate action to remedy one or the other.

Establishing Mutual Respect: Apologizing or Contrasting

If the mutual respect was broken down by someone being offended, an apology can work. The other strategy is to use a “contrast” statement.

Contrasting is the process of using a “do not” and a “do” sentence to clarify your intent and align goals. The “do not” sentence calls out the threatened person’s concerns and clarifies that it is not your intention to threaten or otherwise hurt the other person. The “do” sentence clarifies what you are actually trying to do.

Mutual respect is established once both parties feel that the other party has their best interest in mind.

Establishing Mutual Purpose: CRIB

A conversation will not move forward unless both parties are working toward a common goal. A common purpose is the building block by which one can move the conversation forward, and retreat back if the conversation begins to focus on more superfluous aspects like how that goal is achieved.

There is a four-step process to get there, with the acronym “CRIB”:

  • Commit to mutual purpose. Agree to find a mutual purpose to work toward, you have to want to achieve a solution to actually achieve it.
  • Recognize the purpose. Why does someone want to achieve that goal? The why is more important than the how.
  • Invent a mutual purpose: Sometimes the goals are fundamentally incompatible, at which point a conversation will probably go nowhere. Thus, there is a need to look elsewhere for mutual purpose, probably even more higher-level than the current goal (e.g. the family’s happiness as a purpose over making more money).
  • Brainstorm new strategies: once a mutual purpose is established, it’s time to find the right strategy. Participants should keep an open mind and think outside the box.

Master your Emotions via Analyzing the Path to Action

The book calls out for reflection when one encounters an emotional situation. Making decisions while in a bad emotional state can often have poor results, as the decision doesn’t come from a well-reasoned, logical process.

To help yourself calm down and look at the situation logically, the book provides the following process:

  1. State the facts: help everyone understand how you arrived at that conclusion, by first stating what has explicitly occurred.
  2. Tell your story: explain your interpretation of the facts. One note here is to not downplay the story: adding apologetic phrases like “call me crazy” or “I’m probably wrong” reduces the confidence in your story being accurate from the get go.
  3. Ask for other’s paths: at this point, invite others into the conversation to share their story.
  4. Talk Tentatively: one skill is to build is to make sure that you are keeping an open mind as you hear other’s stories. Keep in mind the goal is to arrive at an amicable solution, and that requires being open to new facts and opinions.
  5. Encourage testing: again keeping in mind the goal is to arrive at an amicable solution, there needs to be a safe environment where everyone can ask questions and change the current story. Encourage everyone to share different ideas and theories.

Getting Others to Share Their Story

One common scenario is others not sharing their story due to the common deflection strategies of getting violent or getting quiet. Crucial Conversations provides the following workflow to keep the conversation going:

  1. Ask: before moving toward story sharing strategies, simply ask and see if you can get stories by asking the right questions.
  2. Mirror and Paraphrase: as you receive replies, make sure the other parties feel heard by paraphrasing to them what you’ve heard.
  3. Prime: if those techniques still lead to silence or violence, then it’s time to prime the conversation by taking a guess at what the other party is thinking. This is the last choice as it’s always better to get the meaning directly, but this requires a tentative “I think you’re feeling…”.

No Violent Agreement

Sometimes one can get caught up with winning some sort of battle. Those who are really effective at conversations stop discussing a topic they agree on, rather than nitpick in minor small details. If there is a component where there is a disagreement, they first acknowledge the agreement, then build on top of that instead.

To start the conversation around the places you disagree with, compare the differences and views equally.

Differentiate Discussions vs Decision Making

Discussions and getting opinions doesn’t mean that everyone gets control over making the decision. It’s important to determine the right decision making strategy depending on the situation.

Decision Making Strategies

The final chapter of the book with new content discusses different strategies in decision making, and where they’re appropriate.

Vote

Voting works well if the decision needs to be made quickly, and everyone agrees to commit to the result.

Consensus

Consensus is needed if the stakes are high, and strong buy-in of all parties is required. Voting does not necessarily provide strong buy-in to the end result or decision.

Summary

Overall, crucial conversations was on the best books I’ve read in 2019, and is definitely on my list of books to read to achieve success overall in life. Oftentimes people take the relationship aspect of living for granted, and having a clear rubric to help achieve positive results in conversations is fantastic.

Book Report: Trillion Dollar Coach

The Trillion Dollar Coach by Eric Schmidt describes the coaching style of Bill Campbell, a former football coach turned silicon valley and venture capital exec that played a critical role in the development of individuals such as Eric Schmidt and Steve Jobs.

If there is any lesson I feel like this book is imparting, it is about the need to focus and be heavily invested in the individual. Bill Campbell is known to have upfront feedback, and be heavily invested in you as a person outside of work. He learns your name, your families name, and their goals and aspirations as well.

Investment in the Individual

Bill Campbell’s coaching style focuses intensely on giving blunt feedback on the situation, and giving relentless support of your ideas. Blunt feedback can sometimes be taken negatively, but built upon a bedrock of clear desire for you to succeed, it can be received less negatively, and maybe even positively.

There are several examples in the book of negative feedback being given, or people laid off, but feeling good about the situation because of the way that Campbell delivered the feedback. Bill’s own quotes on this show that the intention is ingenuous: he feels that it’s important to emphasize that the individual is still valuable and can leave with “their head held high”.

I feel like there is a good lesson to learn here, about leadership: leaders who really care about their people, are leaders who can help their people grow.

If one views leadership solely as a position which is focused on delivering business goals, it’s one where people will not flourish, which may ultimately decided the fate of the company. Talented people like being somewhere where they are valued. Regardless of the compensation or perks, it’s hard to keep talent if they feel like they can be replaced and leadership will not care. That is primarily decided upon by the direct manager.

Focusing on the person also results in building a more personal relationship than what is normally considered okay at an organization. I think there is a concern that this can lead to favoritism, but I think that a good manager can balance this by ensuring that they are caring about all of their direct reports equally.

The other aspect of focusing on the person is backing them on their ideas. Being a person who helps get buy-in on ideas that their directs are trying to move forward, and displays that publicly, can build a strong report between manager and direct. Bill is also willing to go the extra mile, whether it’s connecting the individual, or help get the individual invites into the right organization or group.

Listening and Observing

Reading about Bill Campbell’s leadership, it definitely seems like one where he operates primarily in the background. Rather than be the driver of a big idea, Bill helps support those who wants to drive.

When one request’s Bill’s advice, he likes to jump into the meetings and observe. From there, he gives a recommendation privately to the person driving the initiative.

I think this type of leadership really helps the individual grow. It’s very tempting to go in as a manager and try to drive or fix things yourself, but that doesn’t provide a learning opportunity for the individual. Instead, I’ve found that letting someone take the lead, and rapidly and aggressively giving feedback, allows the person to achieve tremendous growth.

Concerns with The Book

  • The book claims to be data driven, but it seems like they are picking and choosing studies that correlated to the philosophy of Bill Campbell, rather than finding studies of effective managers and seeing if Campbell fits them.

Summary

I think Trillion Dollar Coach is a very helpful book to help one realize the need to be focused on growing and investing in your directs, rather than driving everything from the top. The book also goes over some great examples to help one understand better what it means to execute on these philosophies.

It’s very easy to get caught in the rat race of an organization and lose sight of what will really ensure sustained growth of a team. Books like these are great because it helps remind me the need to focus on people, and inspiring examples that showcase the impact that kind of leadership can have.

Book Report: The Signal and the Noise

The Signal and the Noise by Nate Silver focuses on the use of statistical models to forecast and predict real-life events such as weather or presidential elections. Nate Silver is also famous for running fivethirtyeight, a website dedicated to predicting outcomes of political races and sports. Nate was the author of PECOTA, an algorithm to determine the performance profiles of baseball players.

The book is split into two sections: one around a state-of-the-world description of difficult to predict or forecast events such as earthquakes, then goes into ways to improve these events.

For me, the big takeaways are:

Models Should Forecast Results on a Spectrum, Not a Single Yes / No Answer

Oftentimes the results of statistical models are announced as a single answer: e.g. there is a 10% chance of a magnitude 4 earthquake occurring tomorrow. This type of declaration can cause models to look less accurate than they really are, as it does not include the wide range of outcomes that have some chance of occurring.

Change the Model as New Data Comes in

A statistical forecast should be a calculation that consumes all available relevant data, to produce a forecast. When one does not modify the forecast when new data arrives, it can reduce the accuracy. This is a difficult concept to accept intuitively, as there is a common need for us as people to stick to a particular belief or philosophy. There is also the concern of being seen as a wishy-washy by changing your opinions quickly as a political candidate. It’s not an issue that can be resolved in all situations, but being open to new data is the important takeaway.

Beware of Overfitting

The title of the book is referring to the idea of overfitting, and how to derive accuracy from the incoming data. The number of variables one can consume for their forecast could be effectively infinite: as a result, one can build extremely complex statistical models that have worked well for all known data, but perform poorly when evaluated against new data.

This is the same problem that occurs for machine learning algorithms as well: utilizing the right datasets plays a central role in a successful machine learning algorithm, as introducing too much data can result in overfitting.

Side note: I think there’s a machine learning problem that could affect forecasts as well. Machine learning models can accidentally be trained to detect a different distinction or occurrence, such as when a military group tried to train their algorithm to detect tanks, they instead trained it to detect rainy and sunny days, as all pictures with tanks in them were rainy and the pictures without tanks were sunny.

The correlation != causation clause applies to statistical models as well: one could invest a completely unrelated statistical model, if coincidentally the input data matches the expected results. Poor data is also a problem for models.

Use Bayesian inference to Help Evaluate Probabilities

As a more abstract concept, Bayesian inference is the idea of slowly converging a forecast to the correct model by iteratively adjusting the model in light of new data that validates or invalidates an assumption. The book describes this process as “Bayes Theroem”, the underlying equation that is used to factor in corrections to the probabilities.

To begin this process, one requires a base model: this could be derived qualitatively, empirically, or calculated. With that as a base, the model is tuned with each incoming data point, either increasing or decreasing the likelihood of the event in question.

Bayesian inference is widely applicable because the base model can be a qualitative assumption, and still arrive at the correct model: it just takes longer if the initial assumption is incorrect.

I draw from this a rational approach to arriving at a great model: taking a model created with as much relevant data as possible, and slowly correcting it as new data comes in.

Nate makes a great point in this section, specifically on the approach that we validate or invalidate scientific claims. In an ideal world, all science would lead to conclusions using Bayesian inference: we become more confident in a specific model only as it accurately predicts more outcomes.

The Perceived Value of a Forecast

One interesting section discussed how the Weather Channel derives their forecasts. Their forecast could be more accurate, but they choose to skew their values for a better experience and better trust from the consumer. Changes such as:

  • rounding the small decimals to make the prediction easier to consumer
  • increasing the likelihood of rain, as being prepared for rain when it does not occur is a small issue in convenience and planning, but a pleasant surprise. In contrast, rain when sun is expected can lead to a significant inconvenience in the planning for the day, and as a result a significant hit on the trust of the forecasting system.

This leads me to a thought I come back to again and again: there is a pure scientific and logical solution to a problem, and there is a more nuanced problem around how humans interpret and understand these results. The Weather Channel’s choice to willfully reduce the accuracy of their results is an example, a conclusion driven by understanding which situations are most inconvenient for consumers.

Conclusion

Overall this was a fantastic read (or listen). It’s a pleasure to have the opportunity to better understand the thought process of Nate Silver and his perspective on the statistical community and the areas of improvement for the community.

Book Report: How To Talk So Kids Will Listen… And Listen So Kids Will Talk

769016

How to Talk so Kids Will Listen…And Listen So Kids Will Talk by Adele Faber and Elaine Mazlish is a book about tools to communicate and resolve issues with one’s children.

I find this interesting about every parenting book I read, but there’s always some tips that apply to pretty much anyone, not just children. I’ll call those out as I go.

The book goes through a variety of tips, many of them revolving around a child misbehaving or having a conflict. The authors give specific techniques that tackle conflicts from a variety of angles, including how to diffuse strong emotions, nurturing independent conflict resolution, and slowly changing chronic negative behavior.

I’ll focus on a few that stood out for me.

Naming Feelings

Studies have shown that children are able to cope better with their emotions if they have a way to describe it. By being specific with the names and describing them (“It sounds like you’re frustrated”), a parent can apply a dampener and expand their child’s vocabulary at the same time.

Give the Child Time to Vent and Brainstorm

One of the major themes in the book is nurturing independence: giving control of a situation to one’s children, and also the opportunity to come up with their own solution, builds conflict resolution skills that do not require direct intervention from the parent.

As a parent, I find this one a little difficult to uphold. There is an innate desire to be there for your children, and it is hard to toe the line between negligence and helicopter parenting. I often find myself wanting to do something for them, for example linking trains together when they’re struggling, or immediately jumping into a conflict.

Nevertheless, the authors advise giving the child some time to think about their own solution before giving them yours. For example, if a child asks the parent about whether they should go to their best friends sleepover, even if they don’t like the other kids, give the child some time to consider why it might be important to go, and see if they make a reasonable decision by themselves. If they come to a decision that you disagree with, that’s the time to start involving your own opinion.

The goal is to raise a child that can make these decisions on their own. By having them work it out with the parent observing rather than dictating, The child can build their own problem solving skills in a safe environment. This is preferable over the child having to scramble to grow these skills the first day their on their own.

Works for Adults?

As an analytical person, I often forget that when someone wants to talk, it’s often to vent about their own emotions, rather than necessarily brainstorming a solution.

In a conversation around a distressing situation, giving the other person time to fully vent about what happened, and letting them brainstorm out loud their own solutions, could be be a better option than giving your own opinion. It could also help nurture independence, if this is a professional manager / individual contributor relationship.

Have Children Draw Their Feelings

When a child has extreme emotions, it’s difficult to move from that point to discussing the situation and emotion more reasonably. The authors offer drawing emotions as a solution. Basically giving a pencil and paper to a child and asking them to draw their feelings. Keep having the child draw their feelings until they get into a better mood.

I haven’t had the opportunity to try this myself (mine is too young to give those type of instructions to), but I’m taking note on anything that can help with dealing with strong emotions.

Describe and Reinforce Positive Behaviors

Oftentimes, our off-handed comments can reinforce behaviors that we want to eliminate. Calling a child a trouble-maker, rowdy, or air-headed makes the child feel like those are the terms that describe them, further acting in that fashion.

The authors suggest refraining from using those types of words, and instead highlighting when the child shows positive attributes.

For example, for a child who seems normally forgetful, calling out a situation where they remembered and being very descriptive is helpful.

“Yes, you remembered to do your homework and bring it to the teacher. You are very responsible!”

This can help counter the pigeon-holing that adults typically do. It’s also good to consider that this type of phrasing can counteract other adults: sometimes it is not parents that use these phrases, but teachers and other family members.

Pigeon-holing descriptions can also come from off-handed comments to other parents. Children who overhear these statements can be affected as well.

Works for Adults?

As adults, we often get typecast into specific roles, and words that describe those attributes might pigeonhole us just much as it does for children.

If you’d like someone to change, I think calling out when that person exhibits those changes, and thoroughly describing it, is a great way to reinforce positive behavior.

Offer Choices

A common frustration comes from children not listening to their parents, especially in a time-sensitive situation.. Maybe a child does not want to stop what they are already doing, or they refuse to negotiate on a friend coming over.

When it’s impossible to make both sides happy, the authors recommend offering alternatives and letting the child choose one. In additiona to clarifying the original choice is out of the question, sometimes that little bit of control can help your child be more cooperative.

The example in the book is a friend of a child who refused to get out of a tree house to get picked up. In this situation, the mother offered the friend two choices: he could go down slowly as a sloth, or go down quickly like a monkey.

Effectively eliminating the original choice of staying in the tree, the options offered also catered to the friend’s natural desire to want to play. A simple “come down” did not suffice, but these options led the friend to jump down like a monkey, accomplish the desired goal.

Works For Adults?

I think the desire for control continues throughout our whole lives. Maybe when dealing with a difficult situation in a leadership position, the right solution might be offering control in an area where one can negotiate. It also helps others feel more invested.

Using “When They’re Ready”

Further on the theme of empowering children and reducing typecasting, the authors do not recommend describing what are likely temporary behaviors as personality traits. For example, giving an out on a child who refuses to say hi by saying they are “just shy” can result in the child internalizing that trait. Instead, using temporary phrases like “When they’re ready” can help the child understand that this isn’t a defining characteristic.

Summary

I think this book is a great introduction to multiple techniques on communicating well with children. Everyone has times when they find conflict resolution with their child is difficult, and having the right tools that not only resolve the conflict, but also nurture the child, is great.

I’m looking forward to trying these and maybe I’ll come back with some more thoughts.

Book Report: The Undoing Project

The Undoing Project: A Friendship That Changed Our Minds is written by Michael Lewis, the same author of other books such as Moneyball. This book is a sort of spiritual successor to Moneyball, focusing on the psychologists Daniel Kahneman and Amos Tversky and their work in the area of human decision making.

Although a significant part of the book focuses on the duo behind the papers, there’s quite a bit of content around the irrational behaviors that are captured in the papers published, as well as their impacts in multiple fields well outside of psychology.

The Impact of Phrasing

Many of Kahneman and Tversky’s papers are built of of data from asking their undergraduate students questions via surveys. This has illuminated the ways in which the human mind does not operate rationally (such as guessing a sequence of numbers 1 * 2 * …. * 10 differently based on whether the series starts with the low number of the higher number). The duo often played around with wording, and found that some gentle hinting of the question itself can yield results where the answers are more rational.

This implies that phrasing has a significant impact on the results that are yielded. Unfortunately that means many surveys can be designed in such a way that the results are skewed in some particular favor.

Human Fallibility Affects All Fields

A major theme in the research is around the human mind’s inability to evaluate situations rationally. One really interesting aspect was around the probability of various events: estimates were easily influenced by the recency of an event, or it’s recollection in the estimator’s mind.

The book dove a little bit on the idea of evidence-based medicine, and how in the past it was in many areas a handed-down, subjective practice. The ones who broke through this subjective practice was those that were willing to challenge the approach of the established groups in a particular field.

My interpretation is to have others double-check work and major decisions: personal biases can easily creep in. I find this is especially difficult in the field of software development, where many choices are stylistic approaches, and the pros and cons are not apparent. Many of the factors of good software development is behavioral, from making fewer coding errors to ensuring best practices are kept.

Personal Thoughts

I really enjoy Michael Lewis’s writing because of it’s ability to highlight specific real-life situations that further cement the specific idea. In Moneyball, Lewis did a great job of really showing how Billy Beane is able to apply the statistical approach to baseball in his recruiting and play. In The Undoing Project, Lewis explains the logical fallacies using the real experiments that Kahnaman and Tversky ran on their students. Humans love stories, and It’s a great way to leave an imprint and recall these lessons well after reading the book.

Book Report: The Whole Brain Child

The Whole Brain Child discusses strategies to teach children how to deal with difficult situations in an empathetic and rational way.

Despite the focus on teaching children, the book included a lot of great insights for adults as well. In general, it is a great guidebook on how to deal with emotional situations, and how to ensure that the approach is one that accounts for the impact on others and their well-being.

The general structure is emphasizing a few key strategies when encountering an emotional and upset child. Here is my interpretation of the general ideas:

Introspect when Encountering Conflict

The book posits that we have two different “brains” that work in tandem when encountering a difficult situation: the “lizard brain” which reacts with strong emotional responses, and the “upstairs brain” which can approach the situation rationally.

Along the theme of educating children on how to cope in situations of conflict, the book explains that, to best help someone understand the situation, it is first better to empathize with how the chid is feeling. Once the lizard brain is no longer in control, deconstruct the situation rationally. This quiets the immediate reaction of the lizard brain, and enables a discussion when your child is using their upstairs brain.

As an example: if your child is throwing a tantrum because they are not getting the ice cream they wanted, it is first best to acknowledge the feelings of the child first (“you seem angry”), then rationally explain that eating too much ice cream is not a good choice.

This lessons works great for children, but I see it as a great lesson for conflicts with adults: if you want to reach an agreement with someone and you have a strong emotional reaction, first acknowledge the emotions, then reconcile on a logical level.

Physical Activities to Clear Your Mind

The book references a study that explains that physical activities can help calm emotional reactions, and bring someone into the state to discuss the situation rationally. Thus, a good tool may be to help pace the room, or do some jumping jacks, before diving into the conflict itself.

Talking Through the Situation Repeatedly

When one encounters a traumatising situation, and one that is difficult to understand (like a loved one being taken away by an ambulance, or a car accident), an insecurity can linger: one may become more upset when a loved one leaves for work.

The insecurity stems from a lack of understanding, and the reassurance that, despite how traumatising the situation was, everyone still turned out ok. Talking it through multiple times, ensuring that the child has a good understand of what actually occurred during the scary part of the experience, and a reminder that the child is still ok at the end, will reduce that insecurity.

Thinking About the Larger Picture

When a conflict occurs, one can get invested and extremely emotional. This can occur with even small conflicts that have a minimal impact on our day to day lives, such as an argument at work. In those situations, the lizard brain takes over, and one does not weigh the argument appropriately. One often becomes invested and very upset if the outcome does not go their way (e.g. a minor technical disagreement at work).

In a situation like this, taking a step back, and considering the larger impact works well. Will this choice cause me to lose my job? Will it cause my company to lose a significant amount of cash? Will I be the one responsible if things go wrong? If the answer to the above is no, then it is a sign that it may not be worth the investment, or at least being emotional about it.

I find myself in this situation often: I am opinionated about many aspects of my job, and the company I work for. It is valuable to have a logical argument for what you are advocating, and to spend time on that. However, it does not mean that, if the outcome is to move forward with a different approach, I should be upset for hours or days afterward. The impact this decision will have on the part of life I care about is minimal. Keeping perspective on what is important helps focus me on the discussions I should be having, and spending more time on those.

Use Introspection to Understand Emotions

A major theme of the book is examing the situation in a rational light, allowing some time to consider whether the response is appropriate. Being able to explain why you feel a specific way is powerful: you can better understand why you react this way, and modify your behavior if it is appropriate.

Explaining How Others are Feeling

Children often act without regard to how others feel, such as grabbing a toy from another’s hand, or erasing another’s work. When a child does so, it is often without malice, but rather the lack of understanding of how it feels to have that done to you.

By explaining how one feels in that situation, the child learns how to empathize. Getting the child into the habit of considering other’s feeling before taking an action helps reduce interpersonal conflicts, and can often avoid them. Deliberately educating on why one should feel empathy on a situation when the opportunity arises ensures the lesson is learned, and allows the child to achieve competency in a valuable skill early.

Final Thoughts

For me, “The Whole Brain Child” did a great job of putting more abstract ideas in my head in writing. I use many of the techniques outlined in the book when encountering conflict, but I had never put deep consideration into why those techniques worked. I have also never thought deeply about how to share these skills.

The book does a great job at all of the above: it provides a step by step guide for moving from an emotional state of mind to a logical one, adding understanding of the situation to analyze what could be improved, and explains how to further build an empathic foundation in children.

Definitely recommmend a read.

Book Report: The Millionaire Next Door

The Millionaire Next Door is a explanation of the behavior and attributes of those who have achieved a significant amount of wealth. Contrary to the title, it does not just examine millionaires: instead, it looks at those who have a significant amount of net worth, multiple times their income.

How Much Net Worth Should You Have?

The main gauge for determining your success is your net worth relative to income. The equation looks like:

2 * income * age_in_years / 10

So, if you are 40 years old and you earn 80,000 dollars, then you should have 2 * 80k * 40 / 10 = 640k of net worth.

The 2 at the beginning of the equation is a multiplier factor that helps puts you in one of a few categories:

  • 0.5: UAW (under accumulator of wealth). Anything at or below this number is the last quartile of net worth of those with similar income.
  • 1: AAW (average accumulator of net worth).
  • 2: PAW (prodigiuos accumulator of net worth): Anyone at or above this number is within the top quartile.

The book was written a few years ago (1996), so it could be that these numbers have changed. But the general philosophy is to set a goal of net worth that is a multiplier of your income, in contrast to a set number for all.

The Behavior of the Wealthy

The book contends that the wealthy have two primary behaviors in common:

  • living considerably below their means
  • making sound, non-taxable investments

Choosing a lifestyle that’s below one’s means results in a significant amount of excess income. That excess income can then be used to fund investments, which compount in interest and have returns that increase exponentially as time allow. The investment being untaxable (or taxed minimally) increases the return of the gains (as there is less money pulled out of the investment pool) in contrast to an investment taxed at normal income levels.

By building a foundation of net worth that compounds, and reducing the cost of living in one’s day-to-day life, it tackles the goal of financial independence on both sides: reducing the target goal, and investing heavily to get to that target quickly.

The Spending Habits of the Wealthy

A majority of the wealthy interviewed had very similar behaviors around money. Oftentimes, the wealthy went with financially conservative options. This includes buying and keeping a car for decades, forgoing the finer things like exotic vacations and boats, and simple, cost effective hobbies.

The wealthy also strictly budget: they track spending closely to ensure that the wealth accumulates over time.

Thoughts

I think this book formalizes a lot of the ideas we understand in principle. Many of the ideas the book puts forth are logical, but it is nice to have them all in one place. The book has already influenced the way I am organizing my assets. I am looking toward investing more, and setting a clear budget goal on the amount I would like to invest.

Having the PAW target also helps, as it sets expectations on how much one should be saving, to continue toward the path of achieving a significant amount of wealth.

Conversely, I do not agree with the idea that we should live a frugal lifestyle and ignore the opportunity for unique experiences: vacations to new places and trying new things is a pillar of a satisfying life. Ultimately, wealth should be accumulated to enrich the lives of those you care about. Wealth does not accomplish that by sitting in a bank.

I aim to be more conservative around luxury items like products I do not need, or eating out when I can bring food from home. But I will continue to look for ways to use my wealth to get the most out of life, and I won’t hesitate to take a step back from my long-term wealth goal to have a once-in-a-lifetime experience.

Book Report: Refactoring by Martin Fowler

Refactoring is a book covering the basics tenants of refactoring as
dictated by Martin Fowler: a very smart person with some very good
ideas about code in general.

First, the interesting thing about the definition of refactoring (as
defined by this book) is that it doesn’t encompass all code
cleanup. It explicitly defines refactoring as a disciplined practice
that involves:

  • a rigorous test suite to ensure code behaves as desired beforehand.
  • a set of steps that ensures that, at every step, the code works as before.

There’s a lot of gems in this book. ‘Refactoring’ not only covers the
basic tenants around refactoring, but also provides a great set of
guidelines around writing code that is very easy for future
maintainers to understand as well.

The Indicators for Refactoring

After showing a great example of a step-by-step refactoring of code
that excellently preserves functionality, the next chapter describes
several code smells that indicate the need for a refactor:

  • duplicate code: a common red flag for anyone familiar with the age
    old adage DRY (Don’t repeat yourself)
  • long methods: definitely a good sign for a refactor. I can’t recall
    how many methods I’ve read where I’ve barely been able to keep mental track
    of what’s really going on here.
  • strong coupling: Definitely not an easy one to catch when you’re
    hacking away hardcore at something. Sometimes it takes a real objective look at
    your code to find that the two classes or methods that you’ve been working with
    should really be one, or maybe organized separately.

Aside from this, the book explicitly describes several situations
which indicate the need to consider refactoring. That said (and Martin
also admits this), it’s not even close to outlining every single
situation where refactoring is necessary. After all, programming,
despite requiring a very logical and objective mind, can be a very
subjective practice.

The Actual Refactorings

After going over the smells, the next chapters finally describe the
actual refactoring themselves. The description of the refactoring
themselves is very rigorous, covering motivation, explicit steps and
examples. It’s a very good reference to cover all of your bases, and
like any book that describes patterns, is a good reference to keep
somewhere when tackling particularly difficult refactoring tasks.

A lot of the refactors were ones I was already familiar with, but
there were some interesting cases I didn’t really think a lot about, that
‘Refactoring’ helped me assess more deeply:

Replace Temp with Query

The summary of this description is to replace temporary variables with
a method that generates the state desired:

def shift_left(digits, value):
    multiplier = 2 ** digits
    return value * multiplier

After:

def shift_left(digits, value):
    return value * _power_of_two(digits)

def _power_of_two(digits):
    return 2 ** digits

This is a trivial example, and not necessarily representative of a
real refactoring. However, using a ‘query method’ to generate state
helps prevent several bad patterns from emerging:

  • modifying the local variable to be different than the initial intention
  • ensure that the variable is not misused anywhere else

It’s a good example of a refactoring that help ensure the variable is
actually temporary, and is not misused.

Introduce Explaining Variable

At the end of the day, good code is 90% about making it easier for
others to read. Code that works is great, but code that can not be
understood or maintained is not going to last when that code is
encountered a second time.

Explaining variables really help here. This is the idea of making
ambiguous code more clearer by assigning results to named variables that
express the intent a lot better:

def interest(amount, percentage, period):
    return amount * (1.414 ** (percentage / period))

After:

def interest(amount, percentage, period):
    e_constant = 1.414
    return amount * Ce_constant ** (percentage / period))

Having very descriptive variables can make understanding the code a
lot easier.

Remove Assignment to Parameters

This is saying basically avoid mutating input parameters:

def multiply(x, y):
    x *= y
    return x

After:

def multiply(x, y):
    result = x * y
    return result

This is nice because it makes it easier to work with input parameters
later: mutating values that have clear intent can result to poor
misuse of those variables later (because you assume no one changed it,
or it actually describes the value it should). This could be
inefficient, but compiler optimizers can get rid of these
inefficiencies anyway, so why make it more confusing to a potential
consumer?

Duplicate Observed Data

This is basically pushing for a decoupling of data stored on both a
client (interface) as well as a publisher. There’s a lot of times
where the client will store data that’s almost identical to an object
that already exists and has all the information stored neatly. Reducing the
duplication of data is always a good thing.

Separate Query from Modifier

There’s a lot of methods that not only perform formatting or retrieve
data, but also mutate data as well. This refactoring suggests
separating them:

def retrieve_name(log_object):
    log_object.access_count += 1
    return [str(x) for x in log_object.names]

After:

def increment_access_count(log_object):
  log_object.access_count += 1

def retrieve_name(log_object):
  return [str(x) for x in log_object.names]

increment_access_count(log_object)
return retrieve_name(log_object)

I can’t count the number of times I wanted to have one specific part
of the function a function performs. Refactorings such as this one
really give modular pieces that can be stitched together as necessary.

The General Refactoring Principles

The book’s scatters some great gems about what a good refactoring
looks like, and it’s very similar to what is commonly known to be good
code:

  • mostly self-documenting: code that is so easily legible that it your
    barely even need comments to understand what it’s doing: intelligible
    variable and function names, written like plain English more that code.
  • modular: each function is split into small, singularly functional units.
  • taking advantage of the principles and idioms for the language at
    hand: ‘refactoring’ was written with object-oriented languages in
    mind, so it advocated strong utilization of OOP. Utilize the
    programming language’s strengths.

Any step that takes your code in that direction (whilst preserving
functionality) is a good example of a refactoring.

How to Allocate Time to Refactor

‘Refactoring’ also stresses and appropriate time to refactor code:
constantly. Martin Fowler argues refactoring should occur during the
development process, and time should be added to estimates to give
space for refactoring. I’ve never been given explicit amounts of time
to refactor code, and most of the time, you won’t. Best thing to do is
to push yourself to refactor whenever it’s appropriate. The book also
warns against going overboard, only refactoring what you need. It’s a very
agile approach to the idea of refactoring.

Conclusion

Ultimately, ‘Refactoring’ doesn’t blow my mind and introduce me to
some life-changing concept. That said, it definitely changed my
mindset about refactoring. Refactoring should:

  • be done as you go
  • move the code toward being easily comprehensible
  • move the code toward being easily extendable
  • have a strong set of testing around it to preserve functionality

As I was about to tackle a fairly large refactoring, It was a great
read to organize my thoughts about my methodologies and practices, and
my goals.

I don’t recommend reading every word, but the chapters that explain
philosophies and glancing over the refactoring patters was more that
worth the time spent reading.