Метод утёнка
Метод утёнка (англ. Rubber duck debugging) — психологический метод решения задачи, делегирующий её мысленному помощнику. Метод описан в книге «Программист-прагматик»[1].
Суть метода заключается в том, что тестируемый ставит на рабочем столе игрушечного утёнка (или представляет его мысленно, на самом деле уточка — это условно, предмет может быть любым), и когда у него возникает вопрос, на который трудно ответить, то он задаёт его игрушке, как живому человеку, словно она действительно может ответить. Считается, что правильная формулировка вопроса содержит как минимум половину ответа, а также это даёт толчок мыслям, направляя их в нужное русло, переводя «поток сознания», фактически — «кашу в голове», в вид формальных терминов..
Метод также используется при отладке. Если определённая часть программы не работает, программист пытается объяснить утёнку, что делает каждая строка программы, и в процессе этого сам находит ошибку.
Интересные факты
1 апреля 2018 года Stack Exchange представила на своих сайтах новую функцию — Quack Overflow, утку, появляющуюся в правом нижнем углу окна просмотра браузера и пытающуюся помочь посетителю, слушая его проблему и отвечая. После «выслушивания» вопроса и его «обработки», утка просто производит звук «кряканья» и ссылается на статью о методе утёнка, как о мощном методе решения проблем. Смущённые посетители, увидев утку впервые, подумали, что на их компьютерах установлено вредоносное программное обеспечение прежде, чем осознать, что это первоапрельская шутка.[значимость факта?]
В художественной литературе
Я имел возможность поразмыслить и поговорить с тобою. Правда, я подозреваю, что ты не все понял из моих слов. Но благодаря твоему вниманию я сумел сформулировать свою мысль. А это не так уж мало.
— Александр Немировский «Разговор с ослом»
Примечания
- The Pragmatic Programmer: From Journeyman to Master (англ.). — Addison Wesley. — ISBN 978-0201616224. p. 95, footnote.
Литература
- Andrew Hunt. The Pragmatic Programmer: From Journeyman to Master (англ.). — ISBN 0-201-61622-X.