воскресенье, 13 марта 2011 г.

Про аналогии и метафоры

Аналогии очень здорово помогают объяснить сложные понятия другим людям, поэтому важно запоминать удачные вполне вероятно это потом здорово поможет.

Я раньше недооценивал силу аналогий и, наверное, многие тоже недооценивают, поэтому приведу пару примеров из личного опыта.

Например, technical debt мне казался всего лишь красивым словосочетанием, однако выяснилось, что эта аналогия очень близка западному миру. Однажды мы сделали хорошее дело и успели сделать фичу X к демо на 2 дня раньше срока. Правда, после демо заказчик все никак не мог понять, почему мы сразу же не можем приступить к фиче Y. В итоге кто-то случайно сказал, что эти два дня это technical debt, который мы получили, сделав X раньше срока. Заказчик просиял, и все стало на свои места.

Броское analysis-paralysis (пусть и не совсем аналогия, но у многих эта фраза мгновенно вызывает в голове вполне четкую картинку) когда-то мне здорово помогло достичь понимания с коллегой, а спустя год или около того, та же фраза помогла уже этому коллеге объяснить беспокойство по поводу затягивающейся подготовительной фазы заказчику.

На тренинге по коучингу я пытался объяснить тренеру (не айтишнику) проблему рефакторинга почему программисты все время недовольны своим кодом. Я рассказывал про "качество кода", и было видно, что основная идея куда-то постоянно ускользала. Я понял, что низкое "качество кода" понималось как наличие ошибок в коде. Тогда я сравнил код с книгой книга может быть написана без ошибок, тем не менее, текст может быть низкого качества, то есть трудночитаемым, плохо структурированным или попросту не интересным. Понимание было достигнуто мгновенно.

Последней аналогией я горжусь, потому что я к ней пришел спонтанно и сам, хотя, вероятно, и не первый. Что мне нравится в этой аналогии, так это её глубина. Из неё постоянно можно вытягивать что-то новенькое, как, впрочем, и из других аналогий. К примеру, при помощи такой аналогии легко объяснить, зачем важно давать понятные имена классам и методам, достаточно сравнить их с названиями глав в книге (названия глав используются в содержании, поэтому удачные названия позволяют лучше ориентироваться в материале).

Надеюсь, теперь стало понятнее, чем так полезны метафоры:
  1. Вместо того, чтобы долго чесать языком, всего лишь парой-другой слов можно вскрыть целый пласт проблемы
  2. Аналогии с понятиями из бытового мира помогают объяснить сложные вещи даже не специалистам
  3. Аналогии помогают взглянуть по-другому на избитую проблему и прийти к новым оригинальным идеям
Напоследок, хотелось бы, чтобы вы поделились своими любимыми метафорами. Если же с этим тяжело, то попробуйте все же сравнить код и книгу, что еще интересненького можно выудить из этой аналогии?

6 комментариев:

  1. У меня есть привычка сравнивать рабочие отношения с семейными. Иногда мне даже кажется, что я злоупотребляю :)

    ОтветитьУдалить
  2. Хаха :) А я делаю наоборот - сравниваю семейные с рабочими.

    ОтветитьУдалить
  3. Хех, а у меня болезнь - приводить аналогии еще более абстрактные, чем объясняемое понятие, в результате у собеседника едет крыша... так что находить правильные, простые иллюстрации - это супер, да!

    ОтветитьУдалить
  4. С такой стороны я как-то не смотрел на проблему :) Действительно, надо поаккуратнее.

    ОтветитьУдалить
  5. Мне всегда приходят аналогии в голову из книг или фильмов, которые кроме меня, кажется, никто не смотрел и не читал, поэтому они остаются невостребоваными.... Горе от ума.
    Юля

    ОтветитьУдалить
  6. Надо тогда выбрать какой-нибудь популярный фильм и его растаскивать на аналогии.. мм.. например, "с легким паром"

    ОтветитьУдалить