[Pragmatic Thinking & Learning Notes] Chapter 2 Summary (Journey from Novice to Expert)

'Introduction:

Looking at what it means to be a novice, and an expert, as well as the stages in between.
Dreyfus model of skill aquisition - 5 stages through one must pass to go from a novice to an expert.

2.1 Dreyfus Model

When moving from novice to expert, you don't just "know more" or gain skill, rather, you have a different experience in the way you view the world, the way you approach a problem, the way you think.

2.1.1 Stage 1 - Novices

  • Definition: No previous experience in this skill area.
  • Very concerned about their ability to succeed.
  • Don't particularly want to learn; they just want to accomplish an immediate goal.
  • Don't know how to respond to mistakes, and so are vulnerable to confusion when things go awry.
  • Good at following rules: "When X happens, do Y".

2.1.2 Stage 2 - Advanced Beginners


  • More flexibility than Novices, but still have difficulties troubleshooting.
  • Can start to use advice in correct context.
  • Although can start to piece things together, they are not ready for the "big picture".

2.1.3 Stage 3 - Competent

  • Can troubleshoot problems, and figure out how to solve never-seen-before problems.
  • Sometimes described as 'initiative' or being 'resourceful'.
  • Can mentor novices, and won't annoy experts too much.

2.1.4 Stage 4 - Proficient

  • They need the bigger picture.
  • Will seek out and understand teh bigger conceptual framework.
  • Frustrated by oversimplified information.
  • Can self-correct/reflect.
  • have experience and knowledge to predict what'll happen next.

2.1.5 Stage 5 - Expert

  • Primary sources of knowledge and information at any field.
  • One who continuously look for better ways of doing things.
  • Vast body of experience that they can tap into and apply in just the right context.
  • These are the folks who write books, write articles and do lecture circuits; modern wizards.
  • Statistically, probably 1 to 5% of the population.
  • Work from intuition; not from reason.
  • May be inarticulate as to how they arrived at a conclusion; they just know; it just 'feels right'.
  • Of course, this 'feels right' comes from a vast array of experiences, distilled judgement, memories.
  • The expert knows the difference between irrelevant details and very important details; perhaps not in conscious level.
  • Very good at targeted, focused pattern matching.

Tip #2: Use rules for novices, use intuition for experts

2.2 Rules ruin Experts


  • Research have shown that the performance of experts degrades significantly when they have rules to follow.
  • Intuition is the tool of the expert in all fields, but organizations tend to discount it because they mistakenly feel that intuition isn't scientific or isn't repeatable. So we tend to throw out he baby with the bathwater and don't listen to the experts to whom we pay so much.

2.3 Moving from novice to expert

  1. Moving away from reliance on rules, to intuition
  2. A change in perception, where a problem is no longer a collection of equally relevant bits but a complete and unique whole where only certain bits are relevant.
  3. Finally, a change from being a detached observer of the probably to an involved part of the system itself. 


Self awareness

More possible at high skill levels - meaning people with lower skill level tends to overestimate their ability (50% of test subject did)

Second-order incompetence, not knowing just how much it is that you don't know.
The beginner is confident because he doesn't know he doesn't know much.
But the expert will show much self-doubt and cautiousness.

Tip #3: Know what you don't know.

Problems with current SE industry

  • Coders are often disregarded as a mere commodity; just follow analysts' orders and weren't expected to have any input on the design and architecture of the project.
  • Pay-scale inequities, expert programmers were leaving hands-on coding in doves; there was more money made in management, teaching or lecture circuit.
  • SE education relied heavily on formal models of practice; which might not be the best way to teach.
  • Lost of sign of real goal - project outcomes. 
  • One way to train Advanced beginners is to let them learn by example; people are natural mimics.

3 Phases of Learning

Trumpeter Clark Terry said the secret to learning music is to go through 3 phases:
Imitate, Assimilate, Innovate

Keeping Expertise in Practice

Better to ask - "What is the value they bring to the organization?".

In context of a worship team:
A group is only as good as the weakest link.
Keep a steady group with same performers every week; rotating players are counter-productive.
Make your group a safe place for talented musicians, and watch what happens.

Given the highest-skilled developers are orders of magnitude more productive than the least-skilled developers, the current common salary structures for developers is simply inadequate - will face risk of losing mass expertise to management, competitors or other fields.

This is made worse by outsourcing and offshoring development to cheaper countries.
It's unfortunate that people think coding is a mechanical activity and can be sent to the lowest bidder 

Setting a pay scale and a career ladder that reflects a top coder's value to the organization is the first step toward making this a reality.

Tip #5 Keep Practicing in order to remain expert.

Beware of the Tool Trap

Models/Rules are there to guide and probably a good tool to use for beginners, but eventually, you should consider the context and adapt/change accordingly.

Dangers of over reliance on formal models

Devaluing traits that cannot be formalized


  • Good problem solving skills are critical as developers, but a very hard one to formalize. 
  • Can't be measured by time nor a metric.
  • Eventually, you'll find that management will stop valuing them simply because they can't be formalized.

Focusing on novice over advanced workers


  • Focusing too much on novice, will create a poor working environment for experienced team members, and they'll simply leave your team. 

Mystification


  • Speech becomes so sloganized that it just loses meaning (eg. We're a customer-focused organization)
  • Agile methods too have this problem

Context Matters!


The stereotype high-priced consultant's favorite answer is - "It depends.." It's true, the answer can vary greatly depending on the context.
In Systems thinking, it's the relationship between components that makes the whole system interesting; not the individual components . 

Conclusion

Formal methods may be advantageous to establish baseline rules for lower skill levels, but there is no substitute for judgement.
As ability to judge increases, reliance on rules must be relaxed.

Tip # 6: Avoid formal methods if you need creativity, intuition or inventiveness. 

Tip # 7: Learn the skill of learning. 

Moving On


  • Cultivate more intuition
  • Realize the increasing importance of context and of observing situational patterns. 
  • Better harness our own experience




Comments

Popular posts from this blog

[Redis] Redis Cluster vs Redis Sentinel

[Unit Testing] Test Doubles (Stubs, Mocks....etc)

[Node.js] Pending HTTP requests lead to unresponsive nodeJS