K
klizardin
Это достаточно известная задача при тестировании кандидата на работу программиста. Но все же, слишком часто приходиться повторять "В НАЧАЛЕ ЧТО а потом КАК". Очень часто убеждаемые "не верят" этому принципу и мыслят в духе: ну это же не всегда, вот можно поступить так и так, или но ведь всегда же разрабатывали так и все было хорошо. И оказывается очень полезным проиллюстрировать это убеждение -- дать возможность некоторому программисту заняться разработкой в миниатюре и почувствовать некоторые "абстрактные принципы".
И так в начале берем чистый лист бумаги (один), шариковую(!) ручку (обязательно, ну во всяком случае не карандаш (поймете дальше почему)) и говорим: "Твое задание нарисовать дом. Нарисуй дом."
Очень хорошие вариант, когда испытуемый начинает спрашивать о том, какой дом нужно нарисовать. Но чаще, скорее всего, сразу же он рисует некоторый дом. В зависимости от художественных способностей он может выглядеть по разному. Пусть он выглядит так.
Тогда переворачиваем лист бумаги на 90 градусов и спрашиваем: "Разве это дом?"
Пока испытуемый разработчик не понимает или же даже нападает на вас со словами "но ведь это же дом", разворачивая листок в обратную сторону, вы говорите, что для вас дом это то, вертикальная линия чего проходит именно так как вы показали положением листа.
Далее, вы соглашаетесь, что можно было бы принять и такой дом, хотя вы все же хотели чтобы дом был и другой. Но и это нарисованный дом не отвечает вашим требованиям. Вы хотели экологический дом -- дом который бы стоял прямо на земле, т.е. дом, у которого не было бы нижней линии. И просите стереть линию "пол". Вот так:
Ну и пока программист пытается стереть то, что было нарисовано шариковой ручкой тем же обычным ластиком, вы можете напомнить о важности этапа проектирования ДО начала кодирования. Так как затраты на изменение того, что уже реализовано намного больше возможных затрат на детальное выяснение требований на этапе разработки.
И так в начале берем чистый лист бумаги (один), шариковую(!) ручку (обязательно, ну во всяком случае не карандаш (поймете дальше почему)) и говорим: "Твое задание нарисовать дом. Нарисуй дом."
Очень хорошие вариант, когда испытуемый начинает спрашивать о том, какой дом нужно нарисовать. Но чаще, скорее всего, сразу же он рисует некоторый дом. В зависимости от художественных способностей он может выглядеть по разному. Пусть он выглядит так.
Тогда переворачиваем лист бумаги на 90 градусов и спрашиваем: "Разве это дом?"
Пока испытуемый разработчик не понимает или же даже нападает на вас со словами "но ведь это же дом", разворачивая листок в обратную сторону, вы говорите, что для вас дом это то, вертикальная линия чего проходит именно так как вы показали положением листа.
Далее, вы соглашаетесь, что можно было бы принять и такой дом, хотя вы все же хотели чтобы дом был и другой. Но и это нарисованный дом не отвечает вашим требованиям. Вы хотели экологический дом -- дом который бы стоял прямо на земле, т.е. дом, у которого не было бы нижней линии. И просите стереть линию "пол". Вот так:
Ну и пока программист пытается стереть то, что было нарисовано шариковой ручкой тем же обычным ластиком, вы можете напомнить о важности этапа проектирования ДО начала кодирования. Так как затраты на изменение того, что уже реализовано намного больше возможных затрат на детальное выяснение требований на этапе разработки.