Masters of scale: Reed Hastings

Loved “Masters of Scale: Netflix’s Reed Hastings in Culture Shock“.  Definitively worth the listen.  In it, Reid Hoffman discusses company culture; what it is, its importance, how you use it, etc.  His main guest is Reed Hastings, the founder of Netflix.

Throughout the podcast, I felt that there was a lot of ideas that match what I read in the Peter Drucker book “The Effective Executive”.  Quite interesting.

Here are a few of my notes:

  • MOST of the times, innovation happens slowly.  SOME of the times, innovation happens fast. A corrolary of this is that MOST of the times, your strategy should be to improve what you have.  SOME of the time everything changes (which might mean imply throwing away your existing business model).  The trick is to recognize which one is which.
  • Reed Hastings started Pure Software in the early 90s.  The company grew quite fast, doubling every year.  Whenever Pure encountered a significant problem (bug or otherwise), Pure asked “What processes can we put in place so that this error won’t happen again?” Practically, this means more paperwork, more bureaucracy.  Pure dummy proofed the company… the side effect of which is that only dummies wanted to work there.  (His words, not mine… 🙂 ). The company became slow to adapt due to its processes and its employees’ mindset.  When the market changed, Pure Software was not able to adapt.
  • When Reed started Netflix, he felt he needed a different type of employee to deal with the oncoming changes in the video business (from DVD to streaming).  The company could not hire the same way it did at Pure.  In the case of Netflix, Reed wanted first principle thinkers (people who understand the big picture and act upon it).
  • To find these people, Netflix defined its culture deck.  You can find an old version of it on slideshare.  The latest can be found one the Netflix website directly.
  • Culture is paramount for a company.  It should:
    • be set up quickly (difficult to retrofit a company to a culture).
    • act as a filter (who to hire and who NOT to hire).
    • be a civilizing force (promotes teamwork over competition, diversity).
    • be internalized by employees.
    • evolve organically (reviewed on a permanent basis)
  • Netflix’s culture deck emphasizes honesty through the company.  The “Keeper Test” is an example of this. In it, the employee can asks his manager: “If I was leaving tomorrow, how hard would you fight to keep me?”  (This is very interesting, I’ve never seen this in a company, sounds harsh a bit but maybe radical honesty is a good thing?).
  • Culture does not override strategy.  You need to do both well.

 

 

Naming a startup domain name

I’ve had to generate names for companies (and their associated domain names) a number of times in my career.  For me, it’s always been an excruciating exercise.

So why is it so difficult?  I always felt that there’s so much tied to a company name.  In most cases, it’s the first thing that a potential customer sees.  It shows a little bit of your creativity and originality.  So you don’t want to have a crappy name.

Nowadays, finding an original company name is more difficult.  There’s a LOT more companies now than there were 20 years ago.  Furthermore, domain names (which are so closely tied to company names) are a business unto themselves.  Trolls squat on the good ones and will only give them out for good money.  It’s quite sad but there’s little to be done.  (Actually raising the price of a domain name would probably help alleviate this problem, or having some root curated “master” domain… but that’s another story).

In any case, finding a domain name is difficult but there are still tools and resources that can help you.

First, I would recommend anybody that want to find a new domain name (or business name) to check out this Jason Calacanis video on YouTube: “How to name your startup”. It’s a nice primer from a master in the startup business. Highly recommended.

Second, the book “How to build a billion dollar app” has a whole chapter on company and domain name search.

Lastly, here is a list of tools that can get your creative juices flowing:

If you know of any other video or online tool that I should put in this list, feel free to let me know.

 

Review of “The Effective Executive”

Peter Drucker (1909-2005) wrote close to 40 books in his very long career.  Most of them focus on organization management, some though focus on the individual within the organization.  This book is one of them.
Peter Drucker
The premise of the book is that some executives are more effective than others. Drucker’s contention is that this effectiveness is not the product of intelligence, hard work or even imagination.  Effectiveness is due to a set of practices used by the effective executive.
Drucker goes over these practices in this book.  He does so with great clarity and with ample examples of how these are implemented.  Due to Peter Drucker’s reach and longevity, he has ample executives to choose from.
The result is an amazing book that may change how you see your position within an organization.  If you are like me and want to improve your productivity, you owe it to yourself to check it out.
After reading “The effective executive”, I added two more books in to my book buffer:
Notes
I took a lot of notes while reading the book.  Here are some of those:
Chapter 1 Effectiveness can be learned
  • Effectiveness is not intelligence, imagination or knowledge.  It is a set of practices that can be learned.
  • Five practices of effective executives:
    • Know how you spend your time
    • Focus on results, not work
    • Build on strength, not weaknesses
    • Concentrate on areas where superior performance brings greatest results
    • Make effective decisions
  • Knowledge workers are executive in that they are responsible for contributions that affect an organization’s result.
  • Realities of executives:
    • Their time belongs to others
    • They are forced to keep on operating unless they change things themselves
    • They are within an organization and depend on people above and below
    • They are within an organization and get their data filtered.
Chapter 2 Know thy time
  • To do anything, you first need time.  Money is elastic, time isn’t.  It’s your most precious resource. Manage it wisely.
  • We’re bad at keeping track of how we spend our time.  Keep a log.
  • After having measure time do the following:
    • Eliminate things that should not be done (“What would happen if I wouldn’t do this?”)
    • Delegate (“Which of these activities could be done by somebody else?”)
    •  Stop wasting other people’s time yourself.
  • You cannot do all the work in small block.  You need some uninterrupted time:
    • Block 0.5 day or day(s) from your calendar
    • Work from home
Chapter 3 What can I contribute?
  • It’s not the effort, it’s the contribution.  Ask yourself: “What can I contribute that will significantly affect the performance and the results of the institution I serve?”
  • Effective executives will focus outwards.  He will focus on the relationships (organization, clients, etc)
  • Organizations need performance in three areas:
    • direct results (e.g. sales)
    • building of values and reaffirmation
    • building/developing people for tomorrow
  • If you focus on contributions, good meaningful human relationships will follow.
  • A few notes on meetings:
    • Always know the purpose (“Why are we having this meeting?”)
    • In a meeting, you do one of these two (NEVER BOTH):
      • Direct and listen
      • Take an active part in discussion
Chapter 4 Making strength productive
  • Effective Executives make strength productive.
  • The purpose of an organization is to make strength productive. You should therefore staff to MAXIMIZE strength, NOT to minimize weaknesses
  • The idea of a “well rounded” person is a prescription for mediocrity.
  • DON’T ASK “How does he get along with me?” ASK “What does he contribute?”
  • DON’T ASK “What can a man do?” ASK “What can he do uncommonly well?”
  • To focus on strength is to make demands for performance.
  • Staffing is difficult.  Executives tend to fill jobs by looking for best fit (i.e. least misfit).  This leads to mediocrity.
  • If you redesign a job to fit a person, you are restructuring the company.  It also leads to favouritism.
  • How do you staff for strength without building job to suit personality:
    • Job must be well designed (if 3 people were defeated by the job, it needs to be redesigned)
    • Make sure the job is demanding.  It should challenge the man.
    • Start with what a man can do
      • What has he done well
      • What, therefore, is he likely to do well
      • What does he need to acquire to best use his strength
      • If I had a son or daughter, would I be willing to have him or her work under this person?
  • To get strengths, one has to put up with weaknesses
  • ASK “Does this man have strength in one major area? And is this strength relevant to the task? If he achieves excellence in this one area, will it make a significant difference?  And if the answer is yes, he will go ahead and appoint the man.”
  • General Marshall is a good example of how to make strength productive.
Chapter 5 First thing first
  • Secret of effectiveness is concentration:
    • Do first thing first
    • Do one thing at a time
  • The executive requires fairly big chunks of time. This is difficult to get when you are interrupt driven.  Learn to say no.
  • It is difficult to do one thing at a time, let alone two.  The people who can do two things at a time make sure they allocate enough time the minimum allowed to get something meaningful done.
  • Ask “If we did not already do this, would we go into it now?”  If the answer is not an unconditional yes then drop it.
  • There’s always a lot of decisions to be made.  Either the executive or pressures will make them.
  • If pressures make them, important tasks will be dropped
  • No task is completed until it becomes part of organizational action and behaviour.  In other words, no task is done unless somebody else has taken it has their own.
  • Rules to decide on priorities:
    • Pick future against past
    • Focus on opportunity rather than problem
    • Choose your own direction
    • Aim high, make a difference
  • “Concentration – that is, the courage to impose on time and events his own decision as to what matters and comes first – is the executive’s only hope of becoming the master of time and events instead of their wipping boy.”
Chapter 6 The elements of decision making
  • Effective executives make decisions through a systematic process with clearly defined elements and in a distinct sequence of steps.
  • Effective executives do not make many decisions.  The concentrate on the important ones (be strategic and generic).
  • Decision process:
    • Find out if the problem is generic or exceptional
    • Specify what the decision has to accomplish (define boundary conditions)
    • Find out the right solution (don’t compromise at the start)
    • Convert the decision to actions:
      • Who has to know about the decision?
      • What actions need to be taken?
      • Who takes given action?
      • What does the action look like so that it is truly actionable?
    • Feedback is required to ensure continuous testing of decision.
Chapter 7 Effective decisions
  • A decision is a judgement.
  • You don’t start with facts, you start with opinions.  (opinions == untested hypotheses)
  • An opinion is worthless unless tested against reality
  • The effective executive expects that traditional measurement is not correct.  If it was, there would be no need for a decision.  Traditional measurements reflect yesterday’s decision.
  • You should have alternatives for measurements.
  • Decisions are made from clash of opinions and ideas. When discussing problems and possible decisions, insist on disagreement.  Here’s why:
    • Prevents decision make becoming prisoner of organization
    • Provides alternatives
    • Stimulates imagination
  • The effective executive encourages opinions but will ask for experiments to validate.
  • A decision is like surgery.  It carries risks.  Make a decision when:
    • current condition is likely to degenerate if nothing is done.
    • opportunity is important and will vanish if not acted upon
  • When deciding:
    • Act if on balance the benefits greatly outweighs cost and risk
    • Act or do not act, no compromise.

 

 

 

 

Review of “A guide to the good life”

I forget where and when I first heard about this book.  It might be through the “Tim Ferriss Show” or it could have been a recommendation from my brother.  Whatever or whomever the source, all I can say is that this book is definitively worth reading.

“A guide to the good life” talks about everything surrounding Stoicism.  It discusses its history; from its Greek origin to its Roman adoption.  It goes over its major “influencers”; Musonius, Seneca, Marcus Aurelius amongst others.  Mainly though, it’s a practical guide as to how best apply Stoicism in modern times…

“A guide to the good life” goes over various Stoic techniques to improve your “tranquility”.  Examples include:

  • Negative visualization
  • Practiced poverty
  • Dealing with insults
  • Daily meditation
  • etc.

I’m always been weary of books on philosophy.  I usually find them too “meta” for me.  This one though is highly practical.  Reading it will, in the worst case, educate you about a popular approach to view the world. In the best case though, it might change your life for the better.

The book is filled with tons of interesting ideas.  I took many notes and will only reprint a portion of those here.  Get the book, it’s worth it.

  • Many ancient Greek and Roman philosophers, for example, not only thought philosophies of life were worth contemplating but thought the raison d’être of philosophy was to develop them.
  • The Stoic philosophy of life may be old, but it merits the attention of any modern individual who wishes to have a life that is both meaningful and fulfilling—who wishes, that is, to have a good life.
  • The Stoics realized that a life plagued with negative emotions—including anger, anxiety, fear, grief, and envy—will not be a good life.
  • Stoic tranquility was a psychological state marked by the absence of negative emotions, such as grief, anger, and anxiety, and the presence of positive emotions, such as joy.
  • We humans are unhappy in large part because we are insatiable; after working hard to get what we want, we routinely lose interest in the object of our desire. Rather than feeling satisfied, we feel a bit bored, and in response to this boredom, we go on to form new, even grander desires.
  • One key to happiness, then, is to forestall the adaptation process: We need to take steps to prevent ourselves from taking for granted, once we get them, the things we worked so hard to get.
  • Negative visualization, in other words, teaches us to embrace whatever life we happen to be living and to extract every bit of delight we can from it. But it simultaneously teaches us to prepare ourselves for changes that will deprive us of the things that delight us. It teaches us, in other words, to enjoy what we have without clinging to it.
  • A practicing Stoic will keep the trichotomy of control firmly in mind as he goes about his daily affairs. He will perform a kind of triage in which he sorts the elements of his life into three categories: those over which he has complete control, those over which he has no control at all, and those over which he has some but not complete control.
  • In particular, instead of merely thinking about what it would be like to lose our wealth, we should periodically “practice poverty”: We should, that is, content ourselves with “the scantiest and cheapest fare” and with “coarse and rough dress.”
  • TO HELP US ADVANCE our practice of Stoicism, Seneca advises that we periodically meditate on the events of daily living, how we responded to these events, and how, in accordance with Stoic principles, we should have responded to them.
  • Besides reflecting on the day’s events, we can devote part of our meditations to going through a kind of mental checklist. Are we practicing the psychological techniques recommended by the Stoics? Do we, for example, periodically engage in negative visualization? Do we take time to distinguish between those things over which we have complete control, those things over which we have no control at all, and those things over which we have some but not complete control? Are we careful to internalize our goals? Have we refrained from dwelling on the past and instead focused our attention on the future? Have we consciously practiced acts of self-denial? We can also use our Stoic meditations as an opportunity to ask whether, in our daily affairs, we are following the advice offered by the Stoics.
  • “fellowship is the purpose behind our creation.” Thus, a person who performs well the function of man will be both rational and social.
  • The Stoics therefore recommend that we avoid befriending people whose values have been corrupted, for fear that their values will contaminate ours. We should instead seek, as friends, people who share our (proper Stoic) values and in particular, people who are doing a better job than we are of living in accordance with these values.
  • He counsels us, for example, not to waste time speculating about what our neighbors are doing, saying, thinking, or scheming. Nor should we allow our mind to be filled with “sensual imaginings, jealousies, envies, suspicions, or any other sentiments” about them that we would blush to admit.
  • He adds that if we detect anger and hatred within us and wish to seek revenge, one of the best forms of revenge on another person is to refuse to be like him.
  • keep in mind, when insulted, that we ourselves are the source of any sting that accompanies the insult.
  • something external harms me, it is my own fault: I should have adopted different values.
  • in retrospective negative visualization, we imagine never having had something that we have lost.
  • Reason is our best weapon against grief, he maintains, because “unless reason puts an end to our tears, fortune will not do so.”
  • Anger, says Seneca, is “brief insanity,” and the damage done by anger is enormous: “No plague has cost the human race more.”
  • We should, he says, fight our tendency to believe the worst about others and our tendency to jump to conclusions about their motivations.
  • we should also keep in mind that the things that anger us generally don’t do us any real harm;
  • humor can be used to prevent ourselves from becoming angry:
  • when we feel ourselves getting angry about something, we should pause to consider its cosmic (in)significance. Doing this might enable us to nip our anger in the bud.
  • Stoics value their freedom, and they are therefore reluctant to do anything that will give others power over them.
  • Epictetus therefore advises us not to seek social status, since if we make it our goal to please others, we will no longer be free to please ourselves.
  • If we wish to retain our freedom, says Epictetus, we must be careful, while dealing with other people, to be indifferent to what they think of us.
  • Our goal should therefore be to become indifferent to other people’s opinions of us.
  • She must keep firmly in mind that her wealth can be snatched from her; indeed, she should spend time preparing herself for the loss of it—by, for example, periodically practicing poverty.
  • It is therefore unlikely that a Stoic will bask in any fame that comes her way. At the same time, she will not hesitate to use this fame as a tool in the performance of what she takes to be her social duty.
  • Thus, the proximity of death, rather than depressing us, can be turned to our advantage. In our youth, because we assumed that we would live forever, we took our days for granted and as a result wasted many of them. In our old age, however, waking up each morning can be a cause for celebration.
  • The most important reason for adopting a philosophy of life, though, is that if we lack one, there is a danger that we will mislive—that we will spend our life pursuing goals that aren’t worth attaining or will pursue worthwhile goals in a foolish manner and will therefore fail to attain them.
  • the first step in transforming a society into one in which people live a good life is to teach people how to make their happiness depend as little as possible on their external circumstances. The second step in transforming a society is to change people’s external circumstances.
  • Parents do lots of things for their children, but Stoic parents—and, I suspect, good parents in general—don’t think of parenting as a burdensome task requiring endless sacrifice; instead, they think about how wonderful it is that they have children and can make a positive difference in the lives of these children.
  • Stoicism, understood properly, is a cure for a disease. The disease in question is the anxiety, grief, fear, and various other negative emotions that plague humans and prevent them from experiencing a joyful existence. By practicing Stoic techniques, we can cure the disease and thereby gain tranquility. What I am suggesting is that although the ancient Stoics found a “cure” for negative emotions, they were mistaken about why the cure works.
  • The Stoics regarded the principles of Stoicism not as being chiseled into stone but as being molded into clay that could, within limits, be remolded into a form of Stoicism that people would find useful.
  • MY NEXT PIECE OF ADVICE for would-be Stoics is not to try to master all the Stoic techniques at once but to start with one technique and, having become proficient in it, go on to another. And a good technique to start with, I think, is negative visualization. At spare moments in the day, make it a point to contemplate the loss of whatever you value in life.
  • AFTER MASTERING negative visualization, a novice Stoic should move on to become proficient in applying the trichotomy of control, described in chapter 5. According to the Stoics, we should perform a kind of triage in which we distinguish between things we have no control over, things we have complete control over, and things we have some but not complete control over; and having made this distinction, we should focus our attention on the last two categories. In particular, we waste our time and cause ourselves needless anxiety if we concern ourselves with things over which we have no control.
  • “Nothing is worth doing pointlessly.”)

Elm: The Pragmatic Way

This is the first step in my year of functional languages.  I took the course “Elm: The Pragmatic Way” offered by “The Pragmatic Studio”.

The course is an introduction to the Elm language.  It covers the basics:

  • Installation
  • Functions, currying
  • Types
  • Elm architecture
  • REST interactions
  • etc.

The course is based around the creation of a small web application, “Buzzword Bingo”, which allows you to tally up buzz words. From lesson to lesson, features are added to the application.  The code is available for each lesson, you can browse it and/or code it as you go. (I highly recommend you code along, as it is the best way to learn).

There are a total of 22 lessons. The course runs around 3.5 hours.  If you do the exercices, you’ll probably double that time (if you plan on doing it continuously, you probably want to mark down a full day).

When I took the course (January 2017), it lined up with version 0.18 of Elm (the latest version at the time). Elm is a young language, it evolves quickly.  If you are interested in this course, make sure that it corresponds to the version that interests you.

I would recommend the course to people who are interested in Elm but have no prior knowledge of the language.  If you are intermediate or advanced, this course is definitively too simple for you.

As I am new to Elm (and to functional programming in general), I found the course to my liking and would highly recommend it to Elm neophytes.  It’s definitively worth the $39 investment.

I think that the next step for me is to try out the language with a project.  I’m hoping to hit more problems and get a deeper understanding of functional programing and the Elm architecture using this approach.

2017 is my year of functional languages

It’s a brand new year, time to set some goals!   Software wise, my main goal this year is to get familiar with functional programming.

I want to accomplish by learning two languages that I’ve had on my radar for a while: Elixir and Elm.  Not sure if this is “career advancing”, I doubt it, but from the little that I know from both languages, I’m fairly certain that I will learn something that I can bring back to the Java and Javascript worlds.

So, why Elixir and Elm?

First, Elixir is intriguing.  Elixir runs on top of the Erlang VM.  It uses the same VM that powers WhatsApp…. and WhatsApp is VERY performant.  You can find articles and videos on it here:

There seems to be little doubt that a language built on top of the Erlang VM will be performant.

Now, why not learn Erlang instead of Elixir?  Elixir was created by Jose Valim, a key contributor in the Rails world.  He created the “Devise” library in Rails.  I’ve since looked at the Elixir API and it was definitively heavily influenced by the Ruby and Rails APIs.  I’m just hoping to cut some of the API learning time by leveraging some of my Ruby experience and focus on the new stuff: functional programming proper.

One language should be sufficient to learn how functional programming work but I’ve decided to also dig into Elm.

This is an emotional decision, I think.  I listened to a few podcasts that intrigued me:

I’m not crazy about Javascript and I think that I’m just looking for an alternative that I find more pleasing.  It’s not a dynamic vs compiled language decision, I’m fine with Ruby which is dynamic and I’m fine with C++ and Java, which are compiled.  My problems with Javascript are in some of its details. For example, the equality logic (or rather that weird casting it does).  I’m not crazy about the prototype model stuff either.  It’s pretty far from a what a good OO language should be.  Even frameworks like Angular are a bit annoying because they have to piggyback on some of the idiosyncracies of the JS.  (Though ES6 and Angular2 might make me change my appreciation of Javascript, we’ll see).

Elm is a “transpiled” language (Elm -> JS).  Furthermore, it is typed.  It has meaningful error messages and has an intriguing programming model that looks like it might help out with the asynchronous nature of client application.  Everything in an Elm program is message based.  So really, it’s all asynchronous.

So, there you go.  My plate is full.  It’s going to be interesting.

 

Music and stuff in 2016

Finally, 2016 is done.  It was a crappy year.

Yes, the US elections were a downer.  Whomever you were rooting for, you have to be concerned about the level of division, even hatred that was seen on both sides.  Hopefully, now that things are resolved, people will get back to their lives, try to patch things up and move on.

I love music and this was a particularly sad year.

I will miss Leonard Cohen.  I’m from Montreal and always felt some kinship with him.  He’s a product of my parents’ time and though I never lived in those days,  my dad was always a fan of the “man with the golden voice”… and somehow it made an impression on me (so did my parents’ love of Jacques Brel… but that’s another story).

I will miss Prince.  I didn’t love everything he did, but he was PRINCE, man!  The guitar work was amazing, check out his solo on “While my guitar gently weeps” on  this Rock and Roll Hall of Fame rendition, or this accoustic version of “Cream“.

I will miss David Bowie. I became “aware” of him quite young.  I remember being transfixed by the video of “Ashes to Ashes“, which was playing at my cousins’ during New Year’s Eve, many many years ago (close to 40 years ago??? wow!).  It had all those weird sounds and visuals.  That being said, it took a few more years for me to truly get an appreciation of his earlier stuff.

On a more positive side, I saw Pearl Jam live for the first time this year.  They left everything on stage.  Eddie’s voice is still amazing, even after all these years.  My impression is that  PJ never compromised.  Love them.

On a personal side,  my wife and I were blessed by the arrival of our baby daughter. She’s healthy, beautiful, funny.  So basically, life is a-ok.

 

Getting rid of…

Time to clean up the library.  Here’s what going out this year:

  • Integrating Voice and Data Networks:  Nice book but pretty much outdated.  Can find most of this information online nowadays… or with youtube tutorials.
  • Internetworking with TCP/IP (Comer):  Never used it (or volume III).  Obviously still use TCP/IP but there’s tons of libraries shielding me from TCP/IP.  (Don’t know where volume I is, probably loaned it.  It was good and will keep that one).
  • VLSI:  Never used it after university.  Probably totally irrelevant nowadays.
  • SNMPv3:  Actually still working with SNMP once in a while but for some reason, never with v3…  as to RMON, never used it and don’t know anybody who does.
  • Enchanted Objects:  Quite a recent book but disliked it.   I would give it to a friend but he/she would hate me for it.
  • IPAD first generation:  Haven’t used it in years.  Won’t even start anymore.

Review of “Grit, The power of passion and perseverance”

What a nice surprise!  A friend of mine told me “You have to read this book!!!” Indeed, he was right.  I loved it, and recommend reading it.  The premise is simple “Not everything is decided by one’s IQ.  Successful people usually work hard, practice constantly and are relentless about the quality of their work.”

The book is well written, you can read it in a few days.  The author (Angela Duckworth) definitively knows this topic inside out as she’s been studying it for years.  She’s looked at “Westpointers” (cadets from the Westpoint military school), KIPP students, the Seattle Seahawks, etc. From all of these examples of grit, she distilled her work in this rare book.

Some of my notes follow…

Grit Scale

The book defines a grit test that you can self-administer.  Doing the test gives you a score (from 1 to 5) which tells you how gritty you are (1 being the lowest and 5 being the highest).  This is interesting but is actually the weakest part of the book in my opinion.

I did the test and found the questions to be extremely subjective.  The result obtained is based on how you characterize yourself at that particular time and place.  In my case, it was quite easy to go from a 2 to a 4 for any given question, depending on which project or which period of my life I think about.  (e.g. “I worked really hard on project X for 3 years, doing on average 70 hours per week, that’s pretty gritty, I think”  but then you may also have “I worked on project Y, 3 months, hated everything about it and couldn’t leave it soon enough”… so depending on your mindset when you do the test, your results may vary.

Furthermore, I think that your environment (i.e. who you associate with will also affect your perception quite a bit).  If you are surrounded by gritty people who work very hard, you might not feel very gritty… but if you are put with underachievers, suddenly you might feel quite gritty.  Basically, the test is so subjective that I wouldn’t put too much thought in it.  That being said, the author admits that the test is fakeable but that it was also found to be accurate in some contexts where she ran it.  So it might be valid when there is no consequence associated with the test but not as valid when there is something of importance tied to the result (e.g. job interview).

Note that I still believe in the concept of grit and all the information found in the book is extremely valuable.

From talent to achievement

Talent is not the greatest indicator of success. It helps, but it’s far from everything that matters.  Angela Duckworth suggests that hard work and perseverance are actually a better indicator of the success of a person.

The author comes up with the following two equations to illustrate how you go from talent to achievement:

talent x effort = skill

skill x effort = achievement

Her point is that for somebody to accomplish something meaningful, effort counts twice (or at least, is very substantial when it comes to somebody’s accomplishments).

Growth Mindset

Somebody who has a growth mindset believes that it is possible to become more intelligent given the right opportunities, support and effort (i.e. use deliberate practice).

Examples of growth mindset  talk:

  • Say: “You’re a learner, I love that”
    Don’t say: “You’re a natural! I love that.”
  • Say: “Great job! What’s the one thing that could have been even better?”
    Don’t say: “Great job! You’re so talented.”

Basically, you need to emphasize hard work over natural intelligence.  I found this quite interesting and will (hopefully) remember this whenever I’m dealing with my kids.

About deliberate practice:

One of the best things in the book is that I finally found the best description of the characteristics of deliberate practice.  In short, deliberate practice must have the following four characteristics:

  • A clearly defined stretch goal
  • Full concentration and effort
  • Immediate and informative feedback
  • Repetition with reflection and refinement

So basically, you do deliberate practice,  day after day, month after month, year after year and you’ll be good…  Though not stated directly, the use of a coach or mentor is highly recommended (how would you get the necessary feedback without it?).

I would love to find a way to apply this to software engineering (e.g. new framework, languages or concepts).

The Hard Thing Rule

Grit can be encouraged, grown in a family. The author suggests the “hard thing rule”, which she applies in her family’s life.  It goes like this:

  • Everybody in the family does at least one “hard thing”
  • You cannot quit the hard thing before the season is over
  • You choose your own hard thing (usually something you like).

I would love to apply this in my own family.  We’ll see how they feel about it when they grow up 🙂

“Grit” applied to software teams

This is not in the book… just some of my musing about it…

I found the example of the Seahawks (NFL team) to be quite interesting  The Seahawks staff has cultivated consciously a culture of grit.  I was wondering if the same concepts could be applied to a software team.  Can you, in a software group, or a software based company create a “culture” of grit?  If so, how would you do it? Just by recruiting well?  Or is there some other elements that can bring out the grit in a team?  A book on this (by a great team lead or software manager would be awesome)… there’s probably something around, just need to find it.

Reading the book confirmed some stuff I have seen over the years, when interviewing people for software jobs… that is, GPA tells very little about a person’s whole story…

When hiring for a junior position, I would look for grit through the following:

  • I would look at courses where the potential hire excelled and then query them about that particular course.  Why did they like it?  Was it passion?  Can this be brought forward to my company?  (See one of Angela’s YouTube video, she recommends something similar)
  • School projects and personal projects are amazingly important.  It’s not only that they have projects but also how long have they been working on those projects.
  • Open source work.  Wow, github, what an amazing trove of information on a person.  You can see passion and interest right there, through their commits, and through the discussions on issues.
  • I would have them tag along one of my senior designers and work on a problem for a short period of time and see how this problem.  Are they curious?  Do they care more about learning than being let go?

When hiring for a senior positions, things are a little bit different.  Senior software people may be married, may have kids and will generally have a lot less time to have side projects or contribute to open source… So I think that I would try to see passion for the software engineering.  Are they keeping up with technology?  Do still get excited about it? What are the best projects they worked on in their careers?  I don’t think I would ask them about the crappy projects, everybody goes through bad projects… the more you have worked, the more likely you’ll have been on some of those.

An issue with looking for grit in a senior’s resume is that it’s difficult to judge grit by looking on amount of time spent on a given project or company.  A long period might mean grit but it could also mean just being comfortable in a given position.

More information

If you are unsure about buying the book, I would recommend checking out the following presentations by Angela:

Doing semantic with Bootstrap

I use Bootstrap for most of the responsive design work I do nowadays.  It’s not ideal in everything but it gets the job done and it’s so prevalent in the industry that your client will always be able to find somebody to do the maintenance of it after your contract is over.

There are issues with Bootstrap though.  The main issue I have with it is how the documentation promotes the mixing of display logic with content.  This brings you back to pre-CSS times, where the HTML pages were loaded with font weights, font colors, margins, padding, etc.  It makes the content less maintainable for designers, less bandwidth efficient to load and less parseable for computers.  Furthermore, there is absolutely no reuse to be done with the layout logic you define in it.

Here’s an example of what I mean.

The following is one way you could define a page with two rows of data.  The right hand side is dominant (size wise).  An example of this would be a main display area (more dominant) and an “ad” section (less dominant).  The HTML page looks like:


<page>
<div class="row">
<div class="less_important hidden-xs col-sm-4 col-md-4 col-lg-3">
Some less important code</div>
<div class="more_important col-xs-12 col-sm-8 col-md-8 col-lg-9">
Some dominant code</div>
</div>
</page>

I consider this HTML bad practice because it mixes layout information with content information.

There is an alternative though.  Since Bootstrap is designed with SASS, you have access to the SASS mixins that were used to create these classes.  So you can express something similar with the following

In the SCSS file,


class .page {

@include make-row();

}

class .less_important {

@extend .hidden-xs;
@include make-sm-column(4);
@include make-md-column(4);
@include make-lg-column(3);

}

class .more_important {

@include make-xs-column(12);
@include make-sm-column(8);
@include make-md-column(8);
@include make-lg-column(3);

}

In the HTML file,


<page>
<div class="less_important">
Some less important code</div>
<div class="more_important">
Some dominant code</div>
</page>

So you now have something expressed semantically, which is clean and there is even some reuse that can be made… which you didn’t have before.

Addendum:  The approach described here is not supported out of the box.  Take a look here to the best way to do this with Bootstrap 4.0.