The character of Socrates has come up frequently while I’ve been researching coaching and mentoring. I have also noticed that the technique of asking students leading questions is a commonly-recommended coaching technique.
It just so happens that this technique is typically associated with Socrates; consequently, this led me to read up about the famed “Socratic Method” itself.
In the process, I learned some surprising facts. I thought I’d share these with you, and apply them to learning software engineering in a mentorship context.
The Socratic Method, or Elenchus
Socrates is considered to be one of the most influential mentors in the western world. He was Plato’s mentor, who in turn mentored Aristotle.
Socrates’ foremost method of instruction is colloquially known as “the Socratic method”. The precise term, however, is “elenchus” (or elenctic method).
This method is commonly characterized as a teacher asking questions to their student. Exclusively through this activity, the teacher exposes gaps in their student’s understanding. A more detailed breakdown is covered here:
While the Socratic method is commonly referred to as a means to instruct, Socrates himself claimed that this was never the intent of the technique. He in fact stated himself that elenchus was not teaching:
I have never become anyone's teacher. But if anyone ever wanted to hear me speaking and doing my own things, whether he was younger or older, I have never begrudged it to him. — Plato, Apology (33a1 -b8)
Instead, Socrates adopts the elenctic method as a means to expose ignorance. In fact, he claims this is his ultimate and divine purpose:
But why then do certain people enjoy spending considerable time with me? You have heard it, men of Athens, I have told you the whole truth. It is because they enjoy hearing men being examined who think they are wise but are not. For this is not unpleasant. I have been ordered to practice this, as I say, by the god through oracles and through dreams and in every other way that divine providence ever ordered a human being to practice anything at all. — Plato, Apology (33b9- c7)
Further, achieving its purpose is far from guaranteed, even when the technique is applied skillfully. Its effectiveness ultimately depends on the student:
Adeimantus said: […] They think because of their inexperience in the game of question and answer, they are at every question led astray a little bit by the argument and that, when these little bits are added together at the end of the discussion, a big false step appears which is the opposite of what they said at the outset, yet [their view about] what is the truth of the matter is not affected by this outcome. — Plato, Republic (487b1-4)
Moreover, elenchus can be just as effective in propagating falsities as truths. It is argued in The Clouds (a Greek comedy play used against Socrates at his trial), that one skilled in the elenctic method can persuade others towards “unjust logic”:
The competition between just and unjust logic, for example, which is the centerpiece of the play, looks something like an elenchus of the former by the latter. Unjust logic argues from things conceded by his opponent, in order to refute his opponent, he puts forward few substantive views of his own. […] In fact, as we saw, Pheidippides learns both logics and can “argue down justice” with either one.
The implication is that, whether it is Socrates’ aim to teach it to them for this purpose or not, his young followers learn a skill from watching elenctic arguments which, like the unjust logic, enables them to make the weaker argument the stronger. — C. D. C Reeve, Socrates in the Apology: an essay on Plato's Apology of Socrates
To summarize, Socrates did not consider elenchus alone as a teaching method, as it is only effective at exposing what is not known. Further, it can only be effective if the subject of the technique is open to having their ignorance exposed. Conversely, when elenchus is indeed effective, the technique may have a detrimental effect to understanding if it is misused by a skillful interlocutor.
Modern Application
Best practices in software engineering are often vaguely-defined, ephemeral, and contentious. Critical thinking and reasoned argumentation is therefore especially crucial in this field of practice.
As junior engineers turn to mentors for advice, they may do so with skepticism. As change happens quickly in technology, how can a mentee know that their mentor’s advice is relevant?
Elenchus requires an openness to being proven wrong
Adopting Socratic ignorance can serve as a guide for both mentor and mentee. Both can accept or even invite an opportunity to be proven wrong.
For example, a mentee assumes that they have a good grasp of Object-Oriented Programming. During a code review, a mentor points out that they should use a factory and multiple classes to reduce branching logic. If the mentee is only open to feedback in the context of the code review, they simply make the recommended code change and move on. On the other hand, if they are also open to having their ignorance exposed, they may ask the mentor for further guidance and in turn receive a refresher on polymorphism.
Conversely, mentors can also embrace their ignorance in pursuit of excellence in their role. It’s common and expected for mentors to recommend strategies and practices that worked for them. However, that should mark the beginning of a conversation, not the end. Why did it work for them? What were the tradeoffs? Are there better approaches today? For example, a mentor may recommend the use of Git Flow initially, but upon discussion with their mentee cede (with reservations) that trunk-based development is the better choice. Without an openness to being proven wrong, the mentor also loses an opportunity to learn and more importantly, compromises their effectiveness as mentor.
Elenchus is an incomplete teaching method
If elenchus is the sledgehammer that smashes a construction of incorrect understanding, then the mentor still needs other tools to rebuild what was destroyed. We see this in action by Socrates’ protégé Plato in his middle dialogues (e.g. Meno, Phaedo, and Republic) where he builds upon elenchus with the Maieutic method. But we can also see it in action whenever a senior software engineer pairs with a more junior one on a code kata, for example. Fortunately, software engineers learn primarily through constructivist approaches, so deconstructing and rebuilding understanding is a routine part of a software engineer’s learning process.
Elenchus can lead to false conclusions
Elechus undermines an existing understanding by positing one or more other claims. It is these claims that must be questioned carefully to avoid derailment into false conclusions.
For example, a team may have an understanding of estimation — this understanding is embodied in regular estimation sessions where a numerical scale is used, and these numbers are then used to determine what can be completed by the team in the next work iteration.
Questioning and deconstructing this understanding of estimation can go one of two ways, depending on which of these two claims is taken to be true:
Predictability of work completion is most important
Frequency of customer value delivery is most important
The former may steer the team to improving estimate accuracy, where the latter may direct the team to simplify estimation (so as to only determine what must be broken down into smaller tasks), or abandon it altogether.
Wrap-up
There is more (and less) to “The Socratic Method” than initially meets the eye. It is an incomplete method, if one’s goal is to teach. It’s only effective if the student is willing to be proven wrong. Lastly, it does not guarantee sound conclusions.
I advise use of elenchus with care and caution, and never on its own.