Психбольница в руках пациентов
Шрифт:
Возможности, предоставляемые Интернетом по мере его развития, росли очень быстро, и с такой же скоростью увеличивалась сложность создания сайтов. Сайты становились все мощнее, обретали дополнительную функциональность; появился прямой доступ к базам данных. Бетси уже не могла работать на столь низком уровне программирования. Кроме того, для нее программирование было совсем не столь привлекательным, и учиться она не хотела. Тогда она и встретила Эрни, способного решать за нее все технические проблемы. Он просто обожал все эти специальные штуки.
Но Бетси также обнаружила, что выполнение ею заказа теперь зависит и от Эрни. В каждом новом веб-проекте обязательно наступал момент, когда приходилось обратиться к Эрни, чтобы он обеспечил доступ к базе данных
Бетси по-прежнему желала создавать классные, мощные, динамические сайты, но самая важная цель для нее стала иной. То, что было целью гигиенической и воспринималось Бетси как данность, но вскоре исчезло, получило теперь фокус внимания. Главной целью Бетси снова стала независимость, освобождение от Эрни. Она хотела иметь возможность начать отношения с клиентом, спроектировать, создать мощный, красивый, динамический сайт, функционирующий на основе базы данных, и при этом не ждать, когда Эрни, наконец, разгадает какую-нибудь техническую головоломку.
Изначально мы намеревались сделать инструменты Бетси более мощными, при этом сохранив простоту применения. Оставаясь весьма привлекательным, такой продукт всего лишь давал Бетси отсрочку в общении с Эрни, не позволяя ей достичь самой важной цели. Чтобы добиться успеха с Бетси, мы должны были спроектировать Drumbeat, позволяющий вовремя и самостоятельно завершать все проекты.
Эрни тоже не был абсолютно счастлив, работая с Бетси. Все, что он делал, требовало одобрения Бетси, и она постоянно придиралась по поводу пиксела там, пиксела здесь – к тому, что, по его мнению, никакой роли не играло. Она требовала переделывать уже сделанное по пять-шесть раз, вносить ненужные, как он считал, изменения, прежде чем согласиться, что работа готова. Он хотел получить независимость от Бетси не меньше, чем она желала получить независимость от него.
Проектирование
На этом этапе мы смогли обосновать свою точку зрения. Вместо того, чтобы давать Бетси отсрочку в общении с Эрни, мы должны были возвести между ними непроницаемую стену и дать независимость обоим. Бетси по-прежнему будут нужны функции, которыми ранее ведал Эрни, и, в конце концов, Бетси для Эрни была неплохим источником дохода, поэтому их коммерческие отношения необходимо сохранить, тогда как их деятельность необходимо четко разграничить.
Строить стену между ними было необходимо на основе стандарта – интерфейса, позволяющего создавать и использовать функциональные модули. Эрни следует дать интерфейс программиста, позволяющий работать кодом, а Бетси – интерфейс дизайнера сайтов. Общей и нейтральной территорией стала бы программа Drumbeat. Эрни сможет писать мощные, гибкие модули и публиковать их при помощи функционального интерфейса Drumbeat. Бетси будет применять эти модули посредством интерфейса визуального программирования Drumbeat.
Теперь Бетси сможет создавать динамические сайты, работающие с базами данных, посредством опубликованных модулей, никогда не встречая автора этих модулей. Эрни сможет создавать, публиковать и продавать функциональный код, никогда больше не трогая цвет фона. Освободив эти два персонажа, мы помогли Бетси в области дизайна и производства, а Эрни – в области программирования.
Теперь Эрни выступает в роли автора инструментов, а не программиста, выполняющего заказы. Он создает подключаемые модули, которые могут становиться частью инструментария Бетси. У его модулей более широкая аудитория, поскольку он может продавать их многим другим Бетси, которые, в свою очередь, будут применять эти модули для многочисленных сайтов.
Случай
Откат
Разработчики Elemental поначалу решили, что наше решение не сработает, поскольку сразу представили себе ряд вырожденных случаев, когда Бетси все равно понадобятся особые таланты Эрни. «Нельзя совсем исключать Эрни из цикла, – заявили они, – поскольку Бетси может понадобиться решить какую-то особую или сложную задачу».
Что ж, подумали мы, это справедливо, однако лишь в редких случаях. В большинстве же случаев она работает независимо, тогда как при текущем положении дел о независимости и мечтать не приходится. В этих редких вырожденных случаях она просто будет возвращаться в прежнюю ситуацию зависимости от Эрни. Это определенно не ухудшает состояние дел, а в большинстве случаев заметно улучшает.
Независимость важна для Бетси, и ради ее достижения она готова на соразмерные жертвы. Drumbeat позволяет ей создавать полноценные сайты без помощи Эрни, и это примиряет ее с небольшими компромиссами в дизайне, открывающими доступ к готовым программам Эрни 34 . Жертва невелика, поскольку запросы большинства клиентов укладываются в стандартные схемы. Если она получит контракт на создание корпоративной сети для универмагов Wal-Mart или системы оперативного резервирования для отелей Hilton, то определенно задействует человека, обладающего талантами разработчика, чтобы он помог справиться с этими монументальными задачами, но в большинстве случаев это не требуется.
34
Создание сайтов – это программирование, и Бетси точно так же не способна сопротивляться очарованию повторного использования кода.
Прочие моменты
Изначально в программе было множество плавающих панелей с разнообразными инструментами для рисования, и каждая заслоняла часть макета создаваемого сайта. В Elemental все свыклись с идеей, что пользователям нравится гонять панельки по экрану в процессе работы. При каждой демонстрации продукта разработчики гордо хвастались этими панелями.
Участники нашей команды проектировщиков в один голос заявили, что панели назойливы, сложны и совершенно излишни. Разумеется, необходимо обеспечивать доступ к инструментам, но мы знали и более привлекательные способы. Однако каждый раз, когда мы отрицательно отзывались о панелях, программисты (и руководители разработки) тут же заявляли, что панели всем очень нужны.
Наблюдая, как реальные Бетси работают с продуктом, мы скоро поняли, почему плавающие панели были настолько популярны. Изначально программа была спроектирована так, что без панелей было не обойтись. Большинство инструментов каждой панели редко находили применение, но при этом на каждой панели было по меньшей мере два очень полезных и востребованных инструмента. То есть Бетси нужны были все панели для решения самых простых задач. Из-за лишних инструментов каждая панель была чересчур велика, и все панели плавали поверх изображения сайта, находящегося в разработке, поэтому, работая над сайтом, Бетси постоянно приходилось перемещать панели. Альтернативный режим позволял зафиксировать панели вдоль одной из границ экрана, но это означало лишь, что Бетси придется постоянно прокручивать изображение сайта. Бетси попала в безвыходное взаимодействие. Она могла терять время на ненужную прокрутку или на перемещение панелей. Такие ненужные для пользователя действия мы называем «акцизами», и изначально программа была ими насыщена.