I think that teaching-by-examples is an awesome and empowering method. Instead of a universal principle given by some authority a way to solve a problem is suggested.
Example for an Example (meta, yey!):
While the interface design principle »Visibility of the system status« may be a great advice for interface designers, the statement can be interpreted in many ways (what is this "status" actually? How can it be shown?). But by showing examples of the principle in action, it becomes clear what is meant by the principle.
Image: A progressbar shows status of the system
Image: A text "In progress" does not show the current status of the system well (or at least less detailed)
The solution seen in the example can be applied to one’s own work. Thus the learner has a sense of achievement (since one can easily make one’s own example-derived solution work). If the suggested method works, the learner can start to experiment and find other or better solutions and can compare to the method that was taught in the example.
In particular in design where much of the knowledge that should be acquired by future designers is tacit and thus can’t be just learned by heart from books. Teaching by example makes much sense and is already practiced. However, often this is done by dissecting and and discussing great, finished designs: A particular chair, a building etc. This has advantages over only discussing abstract principles of good design but for teaching how to design it has a major shortcoming: Great designs don’t just fall from the sky. They are created in a process (as messy as such a process might be). Such a process is can’t be (easily) reconstructed by looking at a final product.
To learn »how« to design it makes sense to show how other people design not just what in particular they came up with.
Building upon the »show system status« example above: It is not only interesting to see an example of the principle itself but of the context in which such knowledge may be important. Let’s say, an interface is tested an a certain function is not found, in which case it could be worth a try to check if there is visibility of the system’s status.
Image:Users forget which file exactly they uploaded. How should they name it then?
Image: As a possible solution, a thumbnail of the uploaded image as an application of the "visibility of system status" principle
While finished designs are shared in great number and on several platforms, work-in-progress examples are rare. Often it is only stated that this-and-that process works great; In-progress-designs, visual examples, solutions developed in parallel or discarded ideas remain hidden.
There are some reasons why we have few examples in design which show work in progress and explain the decisions and actions involved in progressing in the design process:
1) The Genius Designer
Design is sometimes framed like art and presented as a mythical process consisting mainly of incubation of ingenious thought, thus there is no process to present, at least not one from which non-geniuses may learn.
2) Portfolio culture and perfectionism
Caring for every detail is sometimes said to be the hallmark of great design. But in progress work is not work has perfect details yet.
3) Investments and Benefits
While sharing a great example may benefit many, the benefits for the one who shares it are small: A design- in progress does not look great and it does not make a great page in the portfolio.
However, depending on the area one wants to work on, these obstacles may be overcome. Partly by a culture in which designers are no longer associated with supernatural genius-powers and working always perfectly; partly by employers who care for the awareness of process, the reflection of ones work process and the peer-to-peer education among designers.
I think that the advantages of sharing examples are to big and the available material to few to ignore the unused potential in sharing more of our designs and thus educating each other in a way which is instructive as well as empowering for the learners.