Компьютер! Недавно я поставил в своей спальне новый дорогой будильник со встроенным радио марки JVC FS-2000. Внутри устройства кроется довольно сложная компьютерная начинка, обещающая высокую точность. Кроме того, оно обладает цифровым звуком и еще множеством функций. Теперь я могу просыпаться в точно заданное время под мелодию с компакт-диска и, более того, будильник настолько умен и деликатен, что звук этой мелодии не взорвет барабанные перепонки в шесть утра, а будет нарастать постепенно. Эта редкая в будильниках опция действительно приходится весьма кстати, и только мысль о ней усмиряет мое желание вышвырнуть это дьявольское изобретение из окна.
Понять, на какой день недели установлен звонок будильника, чертовски сложно, так что периодически он не будит меня в понедельник и нагло врывается в мой мирный сон ранним субботним утром. Конечно, в этом устройстве имеется индикатор активности будильника, но это вовсе не значит, что он пригоден для использования. Встроенный алфавитно-цифровой LCD-дисплей запутанно отображает всяческие обозначения функций в часах. Например, маленький значок часов в левом верхнем углу LCD-дисплея сообщает о том, что будильник активен. Только в полутемной спальне опознать этот значок весьма затруднительно. У дисплея имеется функция подсветки, благодаря которой значок часов становится заметным, но включается она лишь в том случае, когда работает радио или играет компакт-диск. При этом есть один нюанс: будильник, даже если его установить, не прозвенит при включенном проигрывателе компакт-дисков. Именно такое противоречивое поведение часто ставит меня в тупик.
Отключить будильник проще простого: для этого нужно только один раз нажать кнопку Alarm, и значок часов пропадет с дисплея. А вот чтобы включить будильник, потребуется нажать эту кнопку не меньше пяти раз. Когда нажимаешь ее первый раз, на дисплее появляется время, в которое должен прозвенеть будильник. На второй раз отображается время, когда звук будильника должен выключиться. На третьем нажатии нужно выбрать, зазвучит ли радио или же компакт-диск. А на четвертом – определить желаемый уровень громкости. Завершающее пятое нажатие закрывает меню установки будильника и приводит часы к обычному режиму. Здесь главное – не нажать еще один, лишний раз, ведь тогда будильник вовсе отключится. Однако полусонному человеку в темноте спальни безошибочно исполнить этот маленький цифровой кордебалет бывает весьма затруднительно.
В силу своей упрямой симпатии к подобного рода гаджетам я не оставляю попыток разобраться в этом устройстве, надеясь однажды победить. Чего не скажешь о моей супруге – она уже давно перестала пытаться найти подход к этому дьявольскому агрегату. Она восхищается сглаженными линиями в его современном дизайне и качеством звучания, но экзамен в качестве будильника он не прошел, потому что требуется слишком много усилий, чтобы заставить устройство делать то, что нужно. Эти часы хотя и могут разбудить меня, но ведут себя как компьютер.
В отличие от него, мой древний 11-долларовый некомпьютеризированный будильник разливался внезапным жутким дребезжанием, когда требовалось меня разбудить. О том, что он включен, можно было узнать по яркой красной лампочке. А когда он выключался, лампочка гасла. Тот старый будильник не нравился мне по ряду причин, но по меньшей мере мне было ясно, собирается он меня будить или нет.
По той причине, что производителям намного выгоднее применять для контроля внутренних процессов устройств компьютеры, нежели механизмы старого образца, компьютеризация устройств и процессов оказания услуг в нашей жизни экономически неотвратима. Это значит, что все существующие устройства скоро начнут вести себя как самые несносные компьютеры, если только мы не попробуем подойти к этому иначе.
Продуктами для конечного потребителя описанное выше явление не ограничивается. Устройства, снабженные компьютерной начинкой, и компьютеризированные сервисы отличаются от своих простых собратьев с ручным управлением широтой вариантов применения и количеством опций. Но в реальности люди чаще склонны использовать именно механические устройства и делать это более гибко, искусно и осознанно, нежели при обращении с их современными версиями, работающими на кремниевых микросхемах.
Высокотехнологичные компании, в стремлении улучшить свои разработки, сводят этот процесс к наполнению их сложным и часто ненужным функционалом. Но такой некорректный процесс не помогает повысить качество продуктов, а только добавляет новые функции, так что это именно то, чем в действительности и занимаются его создатели. Далее в этой книге я продемонстрирую, как совершенствование процесса разработки приносит больше счастья пользователям, без лишних затрат на никому не нужные дополнительные функции.
Компьютер! Роскошный высокотехнологичный спортивный автомобиль Boxster от Porsche оснащен семью компьютерами, посредством которых управляются его сложные подсистемы. Один из них целиком предназначен для управления двигателем. В память этого компьютера заложены специальные программы, которые помогают преодолевать критические ситуации. К несчастью, эти программы сами периодически становятся причиной странных сбоев в работе автомобиля. Некоторые ранние модели отличались такой особенностью: когда уровень топлива в баке доходил до предельно низкой отметки – где-то около четырех литров, – бензин скапливался у стенки бака под действием центробежной силы при крутых поворотах. Это приводило к попаданию воздуха в топливную систему. Компьютер определял, что в топливной смеси произошли серьезные изменения, и интерпретировал это как фатальный сбой системы топливного впрыска. Для предотвращения критических последствий компьютер отключал зажигание, и автомобиль останавливался. Более того, во избежание тех же последствий компьютер не позволял заново запустить двигатель до тех пор, пока не будет произведена буксировка машины в автомастерскую для устранения неисправностей.
Все, что могла посоветовать тогда компания Porsche владельцам ранних Boxster, столкнувшихся с этой проблемой, – это открыть капот и отсоединить аккумулятор минимум на пять минут, тогда компьютер удалил бы из памяти сведения об инциденте. Несмотря на то что спортивные автомобили позволяют разъезжать по двухполосным асфальтированным дорогам на предельной скорости, в крутых поворотах они начинают вести себя в точности как компьютер.
В похвальном стремлении уберечь владельцев Boxster от всяческих бед разработчики программ для автомобиля только унизили их и заставили страдать. Каждый, кто любит гоночные автомобили, знает, что клиентская политика компании Porsche направлена на выражение уважения своим клиентам и предоставление большого количества привилегий. А случаи, подобные описанному выше, показывают, что программное обеспечение для автомобиля создавалось не той же самой Porsche, что выпускает другие его компоненты. Его создала компания внутри компании: программисты, а не легендарные немецкие инженеры автомобилестроения. По какой-то причине внедрение новых технологий привело к тому, что солидная компания с долгой историей пренебрегла своими ключевыми ценностями. Стандарты качества для проектировщиков программного обеспечения намного ниже, чем для более традиционных инженерных дисциплин.