Learning is a critical skill in software development. Engineers have to learn new technologies, master existing ones, and get familiar with APIs and codebases.
It is crucial to have a proper strategy for skill acquisition and overall professional development. There is a high chance of getting stuck at the same level or wasting a lot of time on things that do not matter much.
The Dreyfus brothers looked at highly skilled professionals, including airline pilots, chess players, and military commanders. Their research showed that as we move from novice to expert in any field, we do not just "know more" but experience fundamental changes in our world's perception and mental models. They introduced the concept of the Dreyfus Model which describes such changes.
According to research, the model got a practical appliance in the nursing field and proved effective.
This article will summarize the stages of the Dreyfus Model and how it can be applied in software engineering.
The 5 Dreyfus Model Stages
The Dreyfus Model is applied per skill. We are neither "experts" nor "novices" at all things. We are at one of these stages in some particular skill.
Stage 1: Novices
Novices have little or no previous experience by definition.
Experience is an act of performing the skill, resulting in a change of thinking. If we complete the same action without any difference in our minds many times, it is just one experience repeated much.
With little or no experience to guide them, they need step-by-step guides and rules to follow to accomplish a particular goal.
They do not know how to respond to mistakes and are relatively vulnerable to confusion when things are not described in guides.
Fixed rules can give novices some measure of capability, but there’s a practical limit to how much we can effectively specify in guides and regulations. At some point, we have to stop defining explicitly.
Rules can get novices started, but they won’t carry any further.
Stage 2: Advanced Beginners
Advanced Beginners want to accomplish a specific task.
They can break away from the fixed rule set a little bit. They can try tasks on their own, but they still have difficulty.
They want information fast. They don’t want to be bogged down with lengthy theories.
They solve tasks based on similar situations they’ve experienced in the recent past but just barely.
And although they can start formulating some general principles, there is no "big picture." They have no holistic understanding and don’t want it yet. They do not care about the larger context; they want immediate results.
Advanced beginners don’t want the big picture.
Stage 3: Competent
Competent professionals can figure out how to solve problems that they haven’t faced before without guidance.
They can develop mental concepts of the problem and work with those concepts effectively.
They can begin to seek out and apply the advice from experts and use it effectively.
They can mentor the novices and don’t annoy the experts overly much.
To make breakthroughs to the next level, they need enough ability for reflection and self-correction.
Stage 4: Proficient
Proficient professionals reflect on how they’ve done and revise their approach to performing better the next time. They need the big picture.
They can learn from the experience of others. They are interested in case studies and histories of failed projects. They see what others have done and learn effectively from the story, even though they didn’t participate firsthand.
They also understand and define maxims (fundamental truth) used in the situation. Maxims are not rules, and they must be applied within a specific context.
For example, "use microservice architecture" is a maxim - fundamental truth that is applicable only within a specific context.
A proficient practitioner has the experience and judgment to evaluate a maxim within a context, knowing what is likely to fail.
For novices, maxims defined by proficient and expert practitioners become a rule.
Experience to understand the context more deeply and understand what is likely to happen next is the key to becoming an expert.
Stage 5: Expert
Experts are the ones who continually look for better methods and better ways of doing things. They have a vast body of experience and apply it in the proper context.
Experts are the primary sources of knowledge and information in any field. They work from intuition, not from reason. Experts can be amazingly intuitive - to the point that it just "felt right."
The expert knows the difference between irrelevant details and essential details, perhaps not on a conscious level. Still, the expert knows which details to focus on and which can be safely ignored.
The Dreyfus Model in Practice
Studies indicate that most people, for most skills, for most of their lives, never get any higher than the second stage, advanced beginner. At this level, practitioners only do the tasks they need at work while learning how to do new ones as the need arises without a deep understanding of the context.
We must acquire a conceptual understanding of the task environment to move to the level beyond advanced beginners.
Know What You Don’t Know
According to a study, professionals at lower skill levels tend to overestimate their abilities. Being self-aware tends to be possible only at the higher skill levels - proficient and expert.
The only path to a correct self-assessment is to improve skill level to proficient or expert.
The beginner is confident despite the odds. Experts will show much more self-doubt.
This is referred to as second-order incompetence, not knowing just how much it is that you don’t know.
Deliberately Gain Experience
Task needs to be appropriately tricky—challenging but doable. The task environment needs to supply informative feedback so that we have opportunities for repetition and correction of errors.
Consider the Context
One of the most critical lessons from the Dreyfus model is realizing that several lower stages are not skilled enough to evaluate context properly. So we should always keep in mind that at higher levels of the skills hierarchy, "it all depends." and try to climb the Dreyfus ladder.
Use Intuition For Experts
In one of the Dreyfus studies, the researchers took seasoned airline pilots and had them draw up a set of rules for the novices, representing their best practices. They did, and the novices improved their performance based on those rules.
But then they made the experts follow their own rules. It degraded their measured performance significantly.
Any development methodology or corporate culture that dictates iron-clad rules will drag the performance of experts down to the level of the novice. And all competitive advantage of their expertise is lost.
Novices Need Guides
On the other hand, throwing novices into the deep end of the development pool is not an effective way to use beginners. Agile development is an effective tool, but it won’t work on a team composed solely of novices and advanced beginners.
Expert != Teacher
Teaching is an expertise in its own right. Experts aren’t always the best teachers. Just because you are an expert in some subject is no guarantee that you can teach it to others. Someone on a competent level or above might be in an excellent position to teach others.
Value Creativity and Problem-solving
Intuition and creativity are hard to measure but are very important in every industry, especially engineering. Empower yourself and your colleagues to use your imagination in any environment!
The most important conclusion from the Dreyfus model is professionals at different levels need different learning strategies. Understanding your current skill level and taking appropriate deliberate action to advance your knowledge is critical. Focus more on guides at starter levels, and rely more on intuition on higher levels. Practice deliberately somewhat complex tasks to grow as a professional. Focus on the big picture to advance from advanced beginner to competent. Learn from your experience and the experience of others to grow from competent to proficient. Focus on context to grow from proficient to expert.