Человеческий фактор в программировании
Добавить в закладки К обложке
- Предисловие - Страница 1
- Предисловие к первому изданию - Страница 3
- IГрупповая разработка - Страница 5
- 2Консенсус и компромисс - Страница 7
- 4Скромный и высокопоставленный писарь - Страница 11
- 5Официальное пространство - Страница 14
- 6Раздражающие прерывания - Страница 17
- IIКовбои и ковгерлы - Страница 19
- 8Возвращение блудного ковбоя - Страница 22
- 9Единство в разнообразии - Страница 25
- 10Кодеры-ковбои и программисты-мудрецы - Страница 28
- IIIОрганизация работы - Страница 33
- 12Методы хаоса - Страница 36
- 13Открытая архитектура - Страница 39
- 14Синхронное плавание - Страница 42
- 15Командная политика - Страница 45
- 16Все сразу - Страница 47
- 17Заговор упрямцев - Страница 49
- IVИнструменты, модели и методы - Страница 51
- 19Вопросы моделирования - Страница 54
- 20Свет мой, зеркальце - Страница 56
- 21Методичное сумасшествие - Страница 58
- 22Говоря по существу - Страница 60
- 23Будущие формы - Страница 63
- 24Цели программного обеспечения - Страница 66
- 25Шито белыми нитками - Страница 69
- VСовершенствование процесса - Страница 73
- 27Повторение и вознаграждение - Страница 76
- 28Суперобучение - Страница 79
- 29Вверх по водопаду - Страница 81
- 30Своевременная поставка - Страница 83
- 31Под давлением - Страница 85
- 32Re: Архитектура - Страница 87
- 33Пошаговое улучшение качества - Страница 89
- VIЮзабилити программного обеспечения - Страница 95
- 35Сложность и прогрессирующий функционизм - Страница 98
- 36Назад к истокам - Страница 101
- 37Цветной язык - Страница 104
- 38Совершенствующиеся середнячки - Страница 107
- 39Пригодны ли вы - Страница 110
- 40Редактирование интерфейсов - Страница 113
- 41Сервис - Страница 115
- VIIУдобные объекты - Страница 117
- 43Глубокое понимание - Страница 121
- 44Абстрактные объекты - Страница 125
- 45Новая среда - Страница 128
- 46Полезные ситуации - Страница 132
- 47Эффективные объекты - Страница 136
- 48Связанные объекты - Страница 140
- VIIIЭто превосходное новое программное обеспечение - Страница 143
- 50Интерфейсы разнообразные - Страница 146
- 51Мастеры - Страница 148
- 52Образы будущего - Страница 150
- IXКультура и качество - Страница 152
- 54Агенты изменения - Страница 154
- 55Встроено самое лучшее - Страница 156
- 56Заметки из итальянского ресторана - Страница 159
- 57Наставничество - Страница 162
- 58На обучение - Страница 164
- 59Одаренные программисты - Страница 166
- 60Иконы отрасли - Страница 168
- 61Импресарио - Страница 170
- Приложение - Страница 172
- Библиография - Страница 174
Однако так было не всегда. В начале автомобильной эволюции было испробовано множество других механизмов поворота. В ранних моделях использовались рычаги — отчасти потому, что механическая часть тогда была проще. Но в результате естественного отбора, производимого инженерами и водителями, в конце концов победили круглые рули. Эта эволюция стала возможна именно потому, что конструкторы автомобилей не были ограничены непродуманными стандартами. Кроме того, их ничто не вынуждало отличаться ради различий — просто из-за того, что какая-то компания заявила об интеллектуальном праве собственности на общий вид круглых рулевых механизмов.
Для большинства действительно важных аспектов пользовательских интерфейсов стандарты не нужны. Более совершенные устройства и механизмы постепенно вытеснят все остальные на рынке продуктов и идей. Рулевые рычаги, как и рули управления, довольно просто преобразуют управляющее движение в изменение направления, но они имеют существенные ограничения. Если бы группа лидеров индустрии или государственных чиновников, занимающихся стандартами, из самых лучших побуждений разработала стандарт рулевого управления в тот момент, когда рулевые рычаги были более распространены, автомобили остались бы только локальным средством перемещения на небольших скоростях.
Четверть века назад К. Д. МакКензи удачно сформулировал Первый Закон Условностей (К. D. Mackenzie, 1966 [50]). Если есть больше одного способа сделать что-либо, а выбор между вариантами может быть произвольным, то выбирайте какой-нибудь один способ и всегда применяйте только его. Если же способы неравнозначны, то важно выбрать хороший вариант.
П. Дж. Плоджер (P. J. Plauger), принципиальный и убежденный разработчик стандартов, посвящающий их созданию значительное время, говорит о Принципе Достаточного Блага (P. J. Plauger, 1993 [58]). Стандарт для информационного обмена или для языка программирования, или для; телефонного интерфейса не обязательно должен быть идеальным или совершенным; он даже не должен быть «правильным». На практике идеальные стандарты так или иначе оказываются политически или технически невозможными. Все, что нужно, — это «достаточно хороший» стандарт. Как правило, человеческая смекалка и развивающаяся технология преодолевают большинство ограничений или недостатков.
Вопрос заключается в том, что считать «достаточно хорошим» в отношении таких широко применяемых средств, как графические пользовательские интерфейсы. Самый важный вид согласованности — это согласованность способов мышления и действий людей, когда программное обеспечение не вынуждает их выбирать те или иные методы. Кора человеческого мозга обладает поразительной гибкостью. Люди способны учиться. Они могут подстраиваться под самые сложные интерфейсы, однако у всего этого есть своя цена.
Большая часть знаний и действий людей не связана с компьютерами (как это ни печально для программистов, но это суровая реальность!). Хотя некоторые механизмы действительно «зашиты» в человеческий мозг, большая часть действий, которые люди считают интуитивными, на самом деле являются обусловленными. Сегодня психологи определяют интуицию в терминах комплексных ассоциаций и процессов обработки информации, которые настолько известны мозгу, что перестали быть полностью осознаваемыми.
Противореча разумуКогда вы вынуждаете пользователей взаимодействовать с системой способами, которые противоречат соглашениям, запрограммированным на практике или полученным в результате эволюции, вы увеличиваете недовольство и усталость, а также создаете дополнительный и постоянный источник ошибок. Даже небольшое увеличение вероятности ошибки из-за пользовательского интерфейса может быть значительным. Представьте, к чему может привести даже малейшее увеличение частоты ошибок в процессе ввода информации в современные гигабайтные базы данных. Или представьте последствия неполадок в интерфейсах тех инструментов, с помощью которых проектируется и создается само компьютерное программное обеспечение.
К сожалению, большинство современных графических пользовательских инструментов просто-напросто не являются хорошими. Они противоречивы, чрезмерно сложны и изобилуют условностями, которые объективно и субъективно неверны. Публичное признание Microsoft в том, что Windows не представляет собой идеальную платформу для управления домашними устройствами и другими потребительскими продуктами, — это довольно сдержанное высказывание. Проблема не в тонкостях стиля, а в принципиальных изъянах базовых механизмов.
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176