I've been reading the Software Craftsmanship mailing list where they were discussing whether software is a craft. Someone brought up the concept of what makes a “Master Craftsman” in software and I started thinking about how to determine if someone is an expert or master.
There are a few concepts out there including these:
- Someone who has read at least 3 books on a subject.
- Someone who knows more about a subject than someone else.
- Someone who has published something on a topic.
- As discussed in Pragmatic Thinking and Learning: Refactor Your Wetware (Pragmatic Programmers)