Гибридных продуктов становится все больше, и потребность в целеориентированном проектировании растет, потому что в смысле способов реализации оно агностично.
Продукт PalmPilot компании 3Соm – хороший пример гибридного продукта, в котором проектирование позволило гладко сшить программную и аппаратную части. Достаточно коснуться экрана, чтобы машина проснулась точно в том состоянии, в каком была выключена. Мгновенная реакция устройства на действия пользователя четко показывает, что при проектировании аппаратной части были учтены потребности программной части. А вот контрпример: моя фотокамера Nikon CoolPix 900, при каждом включении которой на загрузку, при отсутствии жесткого диска, уходит семь длинных секунд. Когда устройство настолько медлительно, становится ясно, что шоу режиссировали разработчики аппаратной части.
Разумеется, в реальном мире проектирования продуктов большинство программных компаний не заходит на территорию аппаратного обеспечения. Аппаратные проектировщики поддерживают такую линию поведения даже в случаях, когда специальное устройство приобрело бы значительные преимущества в результате сотрудничества.
Однако если бюджет проекта позволяет, проектировщики могут без колебаний давать рекомендации относительно аппаратной части. Система P@ssport IFE, описанная в главе 9 «Проектирование для удовольствия», работала на выделенных компьютерах, и поставщик решения имел абсолютную власть над всеми устройствами и программами. Мои проектировщики дали некоторые рекомендации.
Продукт Elemental Drumbeat, описанный в главе 10 «Проектирование ради результата» должен был работать на любом нормальном настольном компьютере Wintel. В данном случае мои проектировщики о рекомендациях даже и не думали.
В нескольких случаях, в частности при работе над продуктом Logitech Peacock, моим проектировщикам предоставилась счастливая возможность повысить ценность аппаратного обеспечения. У каждой компании была возможность ступить на путь гибридных решений, соглашаясь со всеми потенциальными опасностями и возможностями.
Помешанные на технике, влюбленные в контроль программисты обожают фаршировать продукты всевозможными финтифлюшками и лишними функциями, но такое стремление противоречит фундаментальному тезису о качественном проектировании. Меньше, значит больше.
Если проектировщик взаимодействия выполнил работу очень хорошо, то пользователь вряд ли догадается о его участии. Хороший интерфейс, как обслуживание в первоклассном ресторане, не привлекает внимания. Если проектировщику взаимодействия удалось сделать что-то особенно удачное, пользователи этого даже не заметят.
«Классные» интерфейсы провозглашены целью проектирования в индустрии создания программных продуктов, и теперь артефакты взаимодействия, очевидно, отнявшие у какого-то несчастного программиста много времени и усилий, по-настоящему утомляют. Жаль, что его усилия не пошли на создание чего-то эффективного. Многие дизайнеры считают, что качественный дизайн – это классный дизайн. Часто так оно и бывает, однако независимо от того, насколько интерфейс классный, чем его меньше, тем лучше. Идея заключается в том, что чем меньше видит пользователь постороннего, тем лучше свою работу выполнил проектировщик. Представьте, что при просмотре фильма вам видны софиты на границах кадра, а в конце сцены вы слышите, как режиссер кричит: «Снято!» Представьте, насколько назойливы будут такие эффекты, как они разрушат очарование фильма.
Гениальный программист и дизайнер Кай Краузе (Kai Krause) прославился своими уникальными интерфейсами. Кай создал некоторые из самых мощных и интересных программ для работы с графикой. Его продукты всегда имели захватывающе красивые интерфейсы, в то же время весьма загадочные, похожие на игры. Кай не только программист, но и дизайнер, и его продукты отражают стремление дизайнера делать вещи малопонятными, как в современном искусстве – чтобы произвести впечатление. Такой подход эффективен потому, что пользователи его продуктов – такие же дизайнеры и увлеченные люди. За рамки этого мира продукты Кая пробиваются с трудом.
* * *
В программировании всегда существует бесконечное количество способов решить любую поставленную задачу. Опытные программисты знают, что в поиске вариантов, оптимальных решений, рано или поздно наталкиваешься на метод, позволяющий выбросить сотни и даже тысячи строк кода. Это происходит, когда программист совершает качественный скачок. Если он может выбросить много кода, программа становится лучше. Меньше кода – значит, меньше и сложность, меньше дефектов, меньше возможностей для некорректного взаимодействия, кроме того, упрощается сопровождение.
Читать дальше
Конец ознакомительного отрывка
Купить книгу