Записки о софтверном бизнесе

FAQ к вопросу о парикмахерских

August 14th, 2008 Posted in Бизнес

Вопрос о парикмахерских вызвал неожиданный для меня интерес у читателей. Считаю необходимым уточнить некоторые моменты.

Этот вопрос не является единственным на интервью. Решение принимается по результатам всех вопросов и тестов, а умение программировать никто не отменял. Более того, мы взяли на работу человека, который не смог найти даже приблизительной оценки, но показал нацеленность на поиск решения.

Ответы на некоторые вопросы в комментариях к оригинальному посту.

Я бы ответил - “Что за СТРАННЫЙ вопрос?”
И вы бы завернули хорошего специалиста.

Недостаточно быть хорошим специалистом, нужно еще уметь свои знания применять на пользу дела. Правильный кандидат должен утончнить, что именно имеется в виду.

Мне кажется, если после вопроса “Сколько настройщиков роялей в Сиэтле?” не уточнить, что это просто тест на его логическое мышление и хочется услышать ход его мыслей - пользы будет мало.

Правильно. На самом деле на интервью этот вопрос так и озвучивается, как просьба придумать оценку эвристическим путем. Интервью - это живой процесс, где обе стороны могут задавать вопросы и уточнять. Не все задания в реальной жизни будут интуитивно понятны и умение работника задать уточняющий вопрос является полезным качеством.

Есть еще некоторые минусы в этом тесте. Я, например, осведомлен о его существовании уже несколько лет, потому имею на него несколько не слишком типичных ответов.

Ничего страшного в том, что кандидат знаком с подобными тестами. В конце концов нетрудно придумать индивидуальный тест для каждого интервьюируемого. В каждом вопросе может быть своя изюминка.

Быстрый ответ “не знаю” или “что за идиотский вопрос” наоборот отлично характеризует кандидата, и его надо брать. Если же кандидат пустится в рассуждения, то его надо гнать немедленно.

Например:
1. я не знаю, сколько жителей в Ростове
2. я не хожу в парикмахерскую, меня стрижет жена.
...

Этот комментарий наиболее полно выражает точку зрения "дурацкий вопрос. программист должен уметь писать код и ничего больше". Попробую ответить более развернуто.

Любой здравомыслящий человек понимает, что спрашивающего не интересует само количество парикмахерских. Точно так же очевидно, что у живущего в Ростове никто не будет спрашивать, сколько парикмахерских в Нижневартовске или булочных в Мухосранске.

Если соискатель пытается ответить на вопрос "Каково точное число парикмахерских?", это говорит о том, что он зациклен на частностях. У него могут быть сложности с видением общей картины проекта. В случае возникновения ошибки или узкого места он наложит заплатку, чтобы через месяц столкнуться с решением схожей проблемы.

Пример из реальной жизни. Есть приложение, которому требуется в процессе работы много запрашивать у базы данных структуру выбранных пользователем таблиц. Если база данных удаленная и работа с ней идет через HTTP прокси, операция получения списка полей может занять несколько секунд и пользователи начнут жаловаться.

"Быстрый" программист решит задачу в лоб, получив структуру всех таблиц сразу после соединения с базой данных. Это работает хорошо, до тех пор пока число таблиц меньше нескольких десятков или сотен. Поняв, что этот метод не работает, программист сделает два разветвления: для маленьких баз данных он получит всю структуру разом, а для больших вернется к старой схеме получения структуры по требованию. 50% пользователей будут довольны.

Потом он подумает еще немного и зазипует трафик между прокси и программой, что даст ему еще 10% выигрыша в скорости.

Умный программист реализует систему кэширования структуры БД. Это потребует больше усилий, по переделывать систему уже не придется.

Какого из этих специалистов вы бы взяли на работу?

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

  1. 15 Responses to “FAQ к вопросу о парикмахерских”

  2. By Капитан Аляска on Aug 14, 2008

    Конечно, умного :) Только вот не может ли получиться так, что умным окажется тот программист, который с ходу не сообразил про парикмахерские (в отличие от “быстрого”). А может, у него с детства нелюбовь к парикмахерским:)

    Но поскольку “этот вопрос не является единственным на интервью. Решение принимается по результатам всех вопросов и тестов, а умение программировать никто не отменял. “, вопрос про парикмахерские не отсеит “умного”. Поэтому согласен – такие вопросы могут дать дополнительную информацию. А не дадут – ничего страшного, есть другие вопросы, которые сформируют общую картину.

  3. By Аркадий on Aug 14, 2008

    В данном случае, быстрый программист определенно лучше. Т.к. не факт, что число таблиц будет в сотнях исчисляться, а задача будет решена быстро и о ней через 5 минут можно будет уже забыть. В конечном счете, спроектировать сотни таблиц неимоверно трудозатратнее, чем решить задачу о оптимальном способе получение метаданных, в случае если такая потребность действительно возникнет.

    >Поняв, что этот метод не работает, программист сделает два разветвления: для маленьких баз данных он получит всю структуру разом, а для больших вернется к старой схеме получения структуры по требованию. 50% пользователей будут довольны.

    Вовсе и не обязательно он так поступит, после того как оценит суть проблемы с которой столкнулся. Он вполне может придти к решению “медленного программиста”. Существует некоторый процент задач, который бы и хотелось сделать “красиво”, но вариант “быстро и в лоб” все же для них предпочтительней. Т.к. в 95% случаев этот “некрасивый″ код, так и не потребуется исправлять. Он будет тупо выполнять свою функцию, с приемлемым удобством и достаточной производительностью.

  4. By Kenzo on Aug 14, 2008

    Если хотите понять человек думает, то надо задавать вопросы, при размышлении надо которыми у человека будет достаточно информации. А что человек знает или не знает вы сами не знаете. И какая ему потребуется информация для выяснения ответа тоже неизвестно. Иначе получится следующее – сколько настройщиков роялей в москве? Ни одного! Почему? У меня нет рояля. У знакомых нет рояля. Магазинов с роялями я не знаю. Значит роялей нет и они никому не нужны.

  5. By Alexander Trofimov on Aug 14, 2008

    Нет ничего страшного в том случае, если Вы не сформулировали себе формальных параметров. Как только появляются формальные параметры, такие тесты обречены на отсев всех, кто ммыслит хоть чуть на своей волне. Если это задача – тогда цель достигнута. Иначе – грош цена всем этим головоломкам.
    Если же формальных показателей нет, а цель просто “свести слона с носорогом и посмотреть как они будут себя держать”… Тогда да, выбор вариантов великий. Но достичь его можо хоть таким тестом, хоть просто беседой.
    ИМХО.

  6. By Eric on Aug 14, 2008

    ))ЧТо то прочитал всю статью, так и не понял, что от меня хотят

  7. By Oleg on Aug 14, 2008

    На мой взгляд ответы на подобные вопросы довольно хорошо харакеризуют человека.
    Так один претендент на вопрос сколько в городе заправок, в принципе ответил, посчитал, но на решение пятиминутной задачи у него ушло минут 30…
    А ответы “дурацкий вопрос” – сообщают, что человек, скорее всего в будущем, откажется от выполнения нужной задачи, которую посчитает дурацкой, по его мнению не соответствуюшей его знаниям/квалификации.

  8. By Juda on Aug 14, 2008

    пример из реальной жизни какой то он, ну не такой, он скорее пример для ленивых школьников либо альтернативно-одаренных. Он больше говорит не о том, что человек вообще способен мыслить, а о том что опыта и знаний нет. Лучше был бы пример, когда все известные на данный момент способы что-то сделать уже применены, но использование како-либо фигни из абсолютно другой области дало потрясающий результат.

  9. By Dima on Aug 15, 2008

    “Я рад, что многие разглядели еще один важный момент – этот тест помогает найти единомышленников. Нам нужны люди, которые разделят видение и цели компании.”

    Это работает максимум пол года. Потом все зажираются и денег мало.

  10. By Max Folder on Aug 15, 2008

    Ребят, ваше тестирование напоминает тюремную “прописку”.
    Например, на стене рисуют тигра и говорят “Победи!”
    Действие неверное – бить, пока кулаки в кровь не разобьешь.
    Действие верное – сказать “Пусть он первый ударит”.
    Остальное ищите в интернетах – ваш рекрутерский арсенал заметно расширится;-)

  11. By helio on Aug 20, 2008

    выбор конечно сложный. тут более бы рассматривал профессиональные качества

  12. By monitor777 on Aug 22, 2008

    В любом случае зачастую необходим специалист, способный своевременно и качественно решать стоящие перед ним задачи. Из этого стоит и исходить

  13. By Сергей Косолапов on Aug 22, 2008

    Я бы взял того, который начинает уточнять. А вообще, конечно, зависит от специфики работы. В Микрософте (см. How to mount Fuji?) этот вопрос использутся, чтобы отделить ищущих решение от тупо исполняющих приказы. Но вам-то могут быть нужны как раз исполнители :)

    В общем, фильтр хороший, а вот каков результат – зависит от вас.

  14. By Flash on Aug 24, 2008

    Согласен с Мax Folder, но если бы так просто было у программистов и тюремщиков. Это распространено при любом тестировании на работу

  15. By Иван aka Gerg on Sep 1, 2008

    В данном случае соглашусь с Аркадием, мне его точка зрения импонирует (второй каммент).

    “В данном случае, быстрый программист определенно лучше. Т.к. не факт, что число таблиц будет в сотнях исчисляться, а задача будет решена быстро и о ней через 5 минут можно будет уже забыть.”

    Всё абсолютно верно.

  16. By NRozina on Sep 7, 2008

    Любые тесты — интересны и полезны. Но любой тест дпускает возможность иного ответа, который трудно трактовать.

    К примеру: что лишнее в наборе: стол, стул, чашка, шкаф?

    Классика: Чашка лишняя, поскольку остальное — это предметы мебели.

    Иной ответ: Я сижу за столом на стуле и пью чай из чашки — шкаф лишний.
    :)

    Или вот такой пример: на нескольких картинках изображены часы: будильник, настенные, наручные. Вопрос: Что их объединяет?

    Классика — это часы, они показывают время.

    Иной ответ (такой ответ скорее даст ребенок-аудиал) — все они тикают. :)

    Тесты почти всегда субъективны, хотя, конечно, все они проверяются на релевантность.

    Поэтому в разных ситуациях вполне вероятно, что разные варианты теста будут трактоваться и оцениваться по разному.
    Не хуже-лучше, а именно по разному.
    Вы выбрали свою систему. Это здорово!

Post a Comment