Человеческий фактор в программировании
Добавить в закладки К обложке
- Предисловие - Страница 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
43Глубокое понимание
На что похож объект? Кто его применяет и как? Какую пользу он приносит?
В известном смысле пользователи и обращенные к ним пользовательские интерфейсы есть raison d'etre[39] объектной технологии. Именно для решения задач, связанных с графическим представлением информации и взаимодействием пользователя с устройствами, позднее названными электронно-лучевыми дисплеями, Айвен Сазерленд (Ivan Sutherland) первым сформулировал многие базовые понятия объектно-ориентированного программирования. Действительно, мой коллега-преподаватель однажды заметил, что почти все, что есть в современной объектной технологии, можно найти в диссертации по Sketchpad, представленной Сазерлендом в 1963 году (Sutherland, 1963 [61]).
С тех первобытных времен список книг, посвященных объектно-ориенти-рованным методам, вырос до огромных размеров, однако едва ли мы сказали что-то новое о пользователях и пользовательских интерфейсах. Мы хвалимся нашим чудесным бесшовным проектированием и привносим в него термины из прикладных задач, однако наши методы почти не способствуют пониманию пользователей, их языка, а также обучению систем говорить на этом языке.
Где пользователь?Будучи преподавателем в Сиднейском технологическом университете, я проанализировал некоторые из самых известных и успешных книг по объектно-ориентированному анализу и проектированию. Это была высококлассная выборка. Сначала я проверил каждую книгу по этой теме в моем офисе, потом прошел по коридору к профессору Брайану Хендерсон-Селлерзу (Brian Henderson-Sellers) и пробежался по его книжным полкам. Конечно, я не удивился, что у него много таких же книг, как у меня, но все же нашел 15 других, недавно вышедших книг по объектно-ориентированной разработке, включая почти все из самых известных и цитируемых. В целом, в книгах было около 6000 страниц. И лишь 161 страница относилась к обсуждению аспектов, связанных с пользователями, пользовательскими требованиями, юзабилити или пользовательскими интерфейсами. Почти три четверти из этих страниц принадлежали трем книгам. Больше половины книг содержали три или меньше страниц, посвященных пользователям и применению продуктов. Треть книг не содержали никаких подходящих упоминаний в предметном указателе. В одной книге нашлась целая страница, посвященная полезности программного обеспечения, но она не попала в указатель. Наверное, сейчас ситуация меняется, что подтверждается появлением нескольких книг, в том числе: «Designing Object-Oriented User Interfaces» (Разработка объектно-ориентированных пользовательских интерфейсов) (Collins, 1995 [9]) и «Object Modeling and User Interface Design» (Объектное моделирование и разработка пользовательских интерфейсов) (van Harmelen, 2000 [63]). Согласитесь, выход этих книг нисколько не преждевременен, и ни одна страница этих книг не является лишней.
Для многих разработчиков, применяющих объекты, все еще не ясно, какую лепту объектная технология может внести в пользовательские интерфейсы. В конце концов, объектная технология — это технология «под капотом». Это технология реализации, а не технология взаимодействия. Эволюция объектно-ориентированных методов, как и остальных методов разработки программного обеспечения, происходила в направлении усовершенствования механизмов, находящихся «под капотом». Мало кто обращал внимание на такие мелочи, как удобное расположение замка капота.
Мы не должны чересчур винить себя за эти упущения. В них повторяется история многих новых технологий, которые при появлении зачастую ориентировались на задачи реализации и функционирования, и только потом в них проявлялось более пристальное внимание к внешним деталям. Так было и в первых проектах по выпуску автомобилей, в которых разработка надежных двигателей и решение проблем трансмиссий оправ-данно имели больший приоритет, чем создание комфортных кресел и удобных средств управления. Конечно, этот подход изменился. Возможно, и в объектной технологии пришло время подумать о комфорте и удобстве пользователей.
Большинству пользователей не интересно, что находится «под капотом» тех систем, которые они применяют. Дон Норман (Don Norman), эксперт по юзабилити и защитник удобства применения технологий с точки зрения пользователя, говорит просто: для потребителя пользовательский интерфейс и есть система (Norman, 1988 [53]). Но бывают исключения. При определенных обстоятельствах технология, спрятанная «под капотом», становится важной для пользователя. Она становится важной, если легковой автомобиль не может разогнаться и безопасно обойти грузовик. Или когда компилятор не может выдавать качественный код. Технология приобретает значение, если двигатель нужно ремонтировать или регулировать через каждые 5000 км. Она важна, если 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