28 September 2009

Software Development Discovery Skills


What are your discovery skills?

One of the most appealing aspects of agile 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.
Share/Save/Bookmark

5 comments:

  1. Inspiring post and handy tips Bob. I promptly quoted your post in our intranet. Many thanks.

    ReplyDelete
  2. 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.

    ReplyDelete
  3. Thanks @jockielugs. I'm with you bro. How do developers get closer to the people who'll be using our software?

    ReplyDelete
  4. Thanks Bob,
    I agree with you, and have echoed your comments on our blog as well.
    Paul

    ReplyDelete
  5. @Paul - As you pointed out in your blog (http://bit.ly/4fDR83), I omitted Dyer's 3rd discovery skill - observation. Yikes! Many thanks. Omitting observation by not observing - a delicious irony. :-) Cheers.

    ReplyDelete