В Confirmation.com самой большой проблемой была унаследованная система. Она работала хорошо. Но с годами она медленно обрастала новыми функциями, нужными потребителям, исправлениями и расширениями элементов. Каждая часть добавлялась без раздумий об архитектуре и структуре системы. И естественно, последняя превратилась в такой беспорядок, что на исправление старых ошибок ушло больше времени, чем потребовалось бы на создание новой системы. Со временем компания поняла: несмотря на загруженность сотрудников, значительного прогресса нет. Работники не могли эффективно доводить дела до конца. Сосредоточившись на занятости, то есть результатах работы, руководители не обращали внимание на результаты деятельности. Нужна была новая, более современная система, позволяющая обеспечить клиентам сервис даже лучший, чем те хотели. Но все продолжали работать над старой системой, результатами работы, а не деятельности.
Критерии готовности и сущность архитектуры
Ключ к тому, чтобы довести что-то до готовности, – заранее определить, что означает «готово». Когда команда выбирает элемент из бэклога продукта, она должны знать, какова природа готовности этого элемента. Отчасти здесь дело в том, как элемент встраивается в систему других элементов. Почему? Потому что – и это важно – архитектура вашего продукта определяет критерии готовности.
Приведу пару примеров. Один касается аппаратного обеспечения, другой – программного, но мышление в основе примеров идентично.
Существует некая частная космическая компания, которую я назову Stealth Space Company (Незаметная космическая компания). Так они называют себя на своей странице в LinkedIn, в любой нежелательной публикации в СМИ и постоянно всем повторяют: «Мы не хвалимся, мы не говорим – мы делаем». Они располагаются на заброшенной морской авиационной станции на краю залива Сан-Франциско у побережья США. Военные базы вроде этой отличаются в зависимости от расположения и основавшей их службы, но у них есть одна общая черта – жесткая, бескомпромиссная архитектура, в которой функциональность доминирует над формой.
Крис Кемп – СЕО этой компании. У него светлые волосы, он обычно носит черные футболки, пиджаки и брюки. Его мантра – скорость. Приведу отрывок из его письма, в котором он анонсировал первую попытку запуска.
В воскресенье мы планируем запуск ракеты. Ее с нуля спроектировала команда, которой 18 месяцев назад не существовало. Мы сделали работу в пять раз быстрее, в пять раз дешевле, чем кто-либо до нас. Это первый тестовый запуск серии, и он позволит нам достичь земной орбиты, поскольку мы создаем команду и меняем свои действия на основании того, что узнали из каждой попытки.
Он смотрит на компанию SpaceX Илона Маска и видит цель, которую не просто превзойдет, но превзойдет громко: в пять раз быстрее и в пять раз дешевле. И он использует Scrum, чтобы добиться того, чего хочет. Его цель – стать космическим FedEx[17]
, ежедневно отправляя небольшие целевые нагрузки на низкую орбиту. Армии необходим комплекс разведывательных спутников над новой проблемной зоной? Без проблем; спутники будут там через 30 минут, а не через три года.Беседуя с его сотрудниками, вы чувствуете их стремление к успеху. Один из его лидеров всю свою карьеру посвятил космическому бизнесу: SpaceX, Virgin Galactic, Boeing. Он сказал, что некоторые члены его команды полагали, будто фреймворк Scrum подходит только для программного обеспечения.
«Для меня это все в новинку, – сказал он мне. – Но я увидел, насколько плохи старые способы работы. Я говорю новым инженерам, что они пока не знают, как им повезло, и я полностью вовлечен в общее дело. Я ясно дал им понять: либо они тоже вовлечены, либо им нужно искать другую работу».
Ракета, как я узнал здесь, включает три системы: двигатель, который превращает топливо в силу; авионику, которая управляет движением ракеты, и структурные компоненты, оболочку, которая держит все вместе. Поначалу все они были плотно связаны и в рамках каждой отдельной системы, и между системами. Так разработчики пытались избавиться от лишнего веса. Именно поэтому каждый интерфейс разработан индивидуально, у него свои детали и соединения. Это имеет смысл, если думать только о весе. Проблемы начинаются тогда, когда что-то нужно починить.