Software Development Discovery Skills

What are your discovery skills?

One of the most dynamic aspects of software development is discovery. Discovery is the act of learning as you go.

Discovery entails asking questions, trial & error, and collaboration with teammates.

Jeffrey Dyer, professor at BYU’s Marriott School, surveyed 3,000 creative executives and conducted 500 individual interviews over 6 years to see what makes innovators tick (see How Do Innovators Think? for an HBR interview with Jeffrey Dyer).

What do Apple’s Steve Jobs and Amazon’s Jeff Bezos have in common? Curious about the defining characteristics of visionary entrepreneurs, Jeffrey Dyer identified 5 discovery skills:

  • Associating – Associating is a cognitive skill that enables people to make associations and parallels between seemingly unrelated concepts or problems.
  • Questioning – Questioning is the ability to confidently ask questions that defy the status quo and open up mental vistas to possibilities.
  • Observing – Observing is the ability to recognize people’s behavior. 
  • Experimenting – Experimenting is the ability, and confidence, to be experimental (i.e, try new experiences and confront unknowns). 
  • Connecting – Connecting is the ability to connect with inquisitive and informative people from whom one can learn.
Jeffrey Dyer’s discovery skills reminds me of Sho Shin or Beginner’s Mind.

Sho is the Beginner. It denotes a starting point.
Shin is Heart or Mind as in put your heart into it!

Sho Shin is cultivating an attitude of openness and eagerness. A beginner listens. A beginner is full of enthusiastic questions and purposeful energy. A beginner wants to know. In Zen Mind, Beginner’s Mind, Shunryu Suzuki says,

In the beginner’s mind there are many possibilities, in the expert’s there are few.

Beware the expert

I said that an expert was a fella who was afraid to learn anything new because then he wouldn’t be an expert any more.
~ Harry S. Truman

Beware the authority

To punish me for my contempt of authority, fate has made me an authority myself.
Albert Einstein

Sho Shin is the seed of discovery.

Our challenge as software developers using discovery is to integrate Sho Shin into our daily lives. A step towards Sho Shin is to consider Jeffrey Dyer’s discovery skills

  1. Search for metaphors that help you better understand concepts and behavior.
    Try associating.
  2. Challenge the status quo. Welcome and consider dissenting opinions. Be wary of convenient and comforting patterns.
    Try questioning.
  3. Sensitize yourself to the details of your culture. Be a sponge for behavioral nuance.
    Try observing.
  4. Find the joy in trial and error. Avoid the natural tendency to summarize and simplify.
    Try experimenting.
  5. Cultivate connections with others. Seek inquisitive minds.
    Try connecting.

5 thoughts on “Software Development Discovery Skills

  1. Dyer also includes, at no. 3, “the ability to closely observe details, particularly the details of people's behavior.” To write great software you need to observe the detail that's not included in the written version of the requirements.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s