Для
Программисты обменяют успех на понимание
Есть старый анекдот об инженерах, дающий некоторое представление о потребности понимать.
Три человека приговорены к казни: священник, адвокат, инженер. Первым на эшафот вступает священник. Палач дергает за рычаг, открывающий люк, но ничего не происходит. Священник заявляет, что это божественное вмешательство, и требует, чтобы его освободили, что и происходит. Выводят адвоката. Палач дергает за рычаг, и снова осечка. Адвокат заявляет, что еще одна попытка будет расценена как повторное привлечение к ответственности за то же преступление, и требует, чтобы его отпустили, – что и происходит. Наступает очередь инженера, который приступает к внимательному изучению механизма виселицы. Прежде чем палач успевает дернуть за рычаг, инженер поднимает взгляд и говорит: «А я понял, почему она не работает».
Понимание механизма работы виселицы оказалось интереснее собственной жизни.
Читая лекции компьютерным программистам, я прошу поднять руки тех, кто в детстве разбирал часы, чтобы посмотреть, как они работают. Как правило, две трети присутствующих поднимают руки. Затем я спрашиваю, скольким из них удалось в конечном итоге собрать часы, и большая часть рук опускается. Мой следующий вопрос таков: кто из вас считает этот эксперимент неудавшимся? Большая часть присутствующих смеется, осознав, что получили удовольствие от разрушения часового механизма.
Проектировщик Джонатан Корман отмечает:
Большинство людей не понимают, до какой степени компьютеры захватывают программистов. Сложности изучения компьютеров лишь усиливают в программистах чувство удовлетворения. Их интерес настолько искренний и глубокий, что им никогда и в голову не приходит, что другие могут чувствовать что-то иное, а потому причиной раздражения других людей они считают неспособность к обучению, но никак не отсутствие интереса.
Тяга программистов к пониманию заставляет их инстинктивно создавать взаимодействие, приближенное к внутренним механизмам продукта. Вместо того, чтобы делать программы, отражающие конечные цели пользователей, они отражают работу внутреннего механизма программы. Естественно, что программисты не испытывают неудобств, пользуясь такими программами, поскольку, понимая принцип работы программы, они способны понять и способы ее применения. Мы называем этот распространенный стиль взаимодействий «моделью реализации». К примеру, компьютерные документы постоянно хранятся на дисках, однако программы способны модифицировать только документы, временно загруженные в оперативную память. Программистам весьма комфортно с такими техническими нюансами, поэтому интерфейсы их программ отражают оба типа присутствующей в компьютере памяти. Для пользователя же подобные вещи аналогичны абсолютно неуместному на приборной доске автомобиля переключателю, заставляющему выбирать между шинами с радиальным и диагональным кордом.