Эффект плато. Как преодолеть застой и двигаться дальше - Боб Салливан
Шрифт:
Интервал:
Закладка:
«Прямо сейчас все эти устройства постоянно пищат, на экране выскакивают сообщения, на которые невозможно не обращать внимания, – жаловался Вайзер. – Все эти интерфейсы были спроектированы просто ужасно – они крали у людей их ценное внимание». Вайзер бегал по офису Xerox (месту, в котором родилась компьютерная мышь и целый ряд других важнейших компьютерных технологий) и требовал от своих коллег, чтобы они занимались изобретением лишь таких устройств, которые позволили бы сделать наш мир более тихим и спокойным местом для жизни.
Спокойные вычисления, с точки зрения Вайзера, могли бы вернуть людям человеческий облик. Даже повсеместные вычисления при условии правильного дизайна не будут казаться чем-то пугающим. Напротив, они могли бы способствовать расслаблению. С его точки зрения, эпоха отвлечения представляла собой всего лишь временную фазу, через которую должно было пройти человечество. Если бы вы слышали Вайзера, произносящего эти слова, то не могли бы не поверить ему и ушли после разговора с ощущением полного спокойствия (по крайней мере, до тех пор, пока не открыли свою электронную почту).
В 1999 году, когда Вайзеру было 46 лет, ему диагностировали рак желудка, и врачи отвели ему всего шесть месяцев. Xerox PARC разработала специальную технологию диктовки, чтобы он смог написать книгу, на которую ему раньше не хватало времени, однако он не успел закончить ни единого абзаца. Рак прогрессировал с невероятной скоростью, и он умер три недели спустя, оставив без ответа вопрос о том, как нам обрести покой внутри технологической бури.
8. Гибкость
Второе действие,
или Медленные падения и едва заметные отличия
Кент Бек жил вне законов. Кое-кто мог бы даже назвать его анархистом.
Живи он в XVI веке, не исключено, что именно он, а не Коперник, заявил бы, что Земля вращается вокруг Солнца. Когда Хью впервые услышал выступление Бека, эскапизм его философии и наглость его утверждений были настолько резкими, что показались заслуживающими внимания. Этот человек мог вполне серьезно утверждать, что мосты нужно строить не по готовым проектам, а ориентируясь на текущие обстоятельства. Он говорил множество столь же странных вещей, однако самым удивительным было то, что люди ему верили.
Как и все успешные революционеры, он искал союзников. Они встречались и обменивались планами свержения устоявшихся порядков. Во время одного из таких собраний в Сноуберде Бек вместе с шестнадцатью другими людьми подписал Манифест гибкости{138}. Это был один из самых еретических документов в области разработки программ. На дворе стоял 2001 год.
Бек – создатель подхода под названием «экстремальное программирование», и начало его книги Extreme Programming Explained («Экстремальное программирование в деталях») напоминает скорее политическую доктрину, а не технический текст для разработчиков программ{139}:
«Extreme Programming (XP) напрямую связано с социальными изменениями. Оно помогает нам отказаться от привычек и методов, которые были полезны в прошлом, однако теперь не позволяют нам сделать свою работу в наилучшем виде. Все дело в том, чтобы отказаться от того, что защищает нас, однако при этом мешает нашей производительности».
И что же еретического в этих словах? Что можно придумать радикального в процессе создания программных продуктов? На самом деле Бек перевернул основы компьютерных технологий с ног на голову, и при этом его методы – а точнее, новый образ мышления – могут применяться во всех сферах жизни.
До появления Манифеста гибкости крупные проекты по разработке программных продуктов были жестко структурированы и следовали модели под названием «водопад»{140}. В этой системе разработка разбивается на несколько монолитных этапов, один из которых последовательно переходит в другой. Этот же крайне структурированный и методичный подход используют инженеры при проектировании и строительстве небоскребов (проект, строительство, тестирование). И, как и при строительстве небоскреба, разработка программы могла занимать до нескольких лет. Рабочие комитеты устраивали встречи, на которых согласовывались все детали программы, после чего программисты суеверно стучали по дереву. После завершения работы над набором основных свойств они принимались за дело, выполняя одно задание за другим. В это время тестеры готовились перехватить у них работу, а члены руководящего комитета пытались справиться с прыгавшим от напряжения кровяным давлением. Когда результаты передавались тестерам для поиска ошибок, все опять принимались стучать по дереву. В это время, когда после первого заседания комитета уже проходило около 18 месяцев, кто-то мог рассказать команде о выходе на рынок Netscape или изобретении Facebook, после чего все начальные планы комитета уже оказывались полностью устаревшими. Разумеется, при наличии согласованного и утвержденного набора свойств о пути назад не могло быть и речи. И тогда часть разочарованных программистов уходила из компании, а маркетинговая команда принималась размышлять и обсуждать, как получше солгать о том, на что действительно способна программа.
Требования к программному продукту быстро меняются. Появляются новые технологии, и вчерашние конструкции крайне быстро становятся устаревшими. Требования, которые когда-то были необходимы пользователям, устаревают еще до того, как продукт отгружен. Наличие таких динамических систем, в которых все постоянно меняется, означает, что стабильный курс, заложенный дизайнерами в самом начале, ведет программы прямой дорогой к ненужности и забвению.
К этому времени большинство проектов, созданных по модели водопада, достигали стадии завершения – они были либо уже не нужны, либо требовали полной перестройки. Результат – задержки, рост бюджетов. Короче говоря, возникали некоторые из самых дорогостоящих плато в современном бизнесе. Проведенный в то время опрос работников сферы ИТ показал, что треть проектов в области разработки программ для бизнеса была прекращена до момента окончания, а у половины завершенных затраты на завершение превысили бюджет в два раза{141}. Отрасль должна была измениться.
Модель, использовавшаяся для создания программ, была жесткой, а потребности, связанные с ней, – динамичными. Когда у нас имеется жесткая модель для чего-то, меняющегося часто (и быстро), дело заканчивается хаосом.
Подход Бека состоял в том, чтобы отказаться от структуры и связанной с ней видимости стабильности. Его мантра состояла всего из двух слов – приветствуйте изменения. Манифест гибкости предполагает высокую степень проворства. Если вам когда-нибудь доводилось работать над созданием программ или хотя бы работать в рамках какого-нибудь большого проекта, вы поймете, насколько бунтарскими были идеи Бека. Благодаря гибкой разработке новые программы создаются небольшими и изолированными блоками. Разработчики должны создавать черновые проекты, которыми могут поделиться с заинтересованными лицами (только представьте себе!), не за годы, не за месяцы, а за недели! В сущности, временны́е требования Манифеста гибкости предполагают, что программисты проектируют и кодируют рабочую модель своих подпроектов, а также предоставляют к ней доступ в течение периода от одной до четырех недель. Более того, Манифест гибкости включает в себя совершенно невероятный прежде принцип, согласно которому «требования к изменениям приветствуются даже на поздних этапах разработки». Иными словами, Манифест позволяет менеджерам и торговому персоналу оценить рынок и произвести корректировки курса. Если что-то движется к неудаче, он заставляет эти неудачи возникнуть как можно быстрее и не откладывать неизбежное.
Вот как Бек описывает процесс вождения машины:
«Я отлично помню первый день, когда сел за руль. Мы с мамой ехали на автомобиле по шоссе около города Чико в Калифорнии. Прямая дорога тянулась прямо до горизонта. Мама разрешила мне дотянуться до руля с пассажирского сиденья. Она дала мне почувствовать, как движение руля влияет на направление автомобиля. Затем она сказала мне: “Вот как нужно ехать. Направляй машину вдоль полосы движения прямо до горизонта”.
Я очень осторожно взялся за руль и повел машину. Она держалась прямо на середине полосы. Все шло отлично, и я даже начал думать о чем-то другом…
Мои мысли вновь вернулись к вождению, как только машина наехала на кучку гравия и резко вильнула. Мама, смелость которой поражает меня до сих пор, мягко вернула машину на нужную траекторию. Мое сердце затрепетало. Затем она преподала мне еще один урок вождения: “Вождение – это не движение в нужном направлении. Вождение связано с постоянным вниманием и небольшими корректировками то в одну, то в другую сторону”.