Даже небольшой проект содержит в себе множество требующих решения вопросов, которым не было уделено внимание на этапе проектирования. Это может быть наличие актуальной документации на внешние сервисы, проверка технической возможности реализовать дизайн интерфейса, особенности архитектуры для работы под высокой нагрузкой и прочее. Неудивительно, что по мере приближения проекта к завершению в нем накапливаются неочевидные и неожиданные особенности, которые всплывают на этапе тестирования или, что хуже, у пользователей. Когда разработчики не могут найти решение и откладывают задачи, ситуация может стать критической.
Этим объясняется распространенная проблема, когда после активного периода разработки начинается долгая и непредсказуемая по срокам стабилизация продукта. Исправление одних ошибок приводит к появлению других, и иногда кажется невозможным привести все в работающее состояние. Так проявляется скрытая неопределенность из-за отсутствия проектирования и концептуальной целостности системы.
Я пишу эти строки в момент, когда мир ошарашенно пытается понять, что же происходит и какой образ жизни выбрать в условиях глобального карантина. В первую очередь это сказывается на бизнесе, ведь большинство процессов в компаниях остановились и не могут продолжаться в привычном режиме. То, что раньше казалось простым и легким, теперь практически недостижимо. Становится понятно, что методы управления компаниями строились на множестве неформальных действий, которые без возможности непрерывного личного общения не работают.
Простой пример – постановка и отслеживание задач. Если раньше руководитель мог пройти по офису, увидеть, насколько активно идет работа, и, глядя на конкретного человека, вспомнить о давно порученной задаче, то сейчас контроль утерян. Чтобы понимать, как продвигается работа, необходимо уделять больше внимания описанию задач, чтобы потом проверить качество их выполнения.
Подобный подход требует иной профессиональной культуры и другого формата взаимодействия. Постоянный присмотр за коллективом через веб-камеры точно не является кандидатом на роль нового способа работы. Это еще одна точка конфликта между административными методами управления и требованиями к высокой компетенции всех участников рабочих процессов, включая руководителей.
Аналогичные проблемы испытывают и команды, работающие над проектами. Если проектированию не уделяется достаточно внимания и у участников проекта нет общего видения продукта, основанного на документации, то знания обо всех принятых решениях фрагментарны и распределены между отдельными специалистами. Каждый из них, будучи обычным человеком, склонен их забывать или ошибочно интерпретировать. Если кто-то покидает проект, вместе с ним пропадают и уникальные знания, о которых больше никто не имеет ни малейшего представления. Сложно представить, как такой проект сможет нормально развиваться, поддерживая архитектурные принципы и сохраняя целостность в новых версиях.
Управление такими проектами – непростая задача. Без полного понимания всех частей будущего продукта менеджеры не могут оперативно отслеживать ход работ и быть уверенными в качестве результата. Такой проект напоминает коробку с котом Шредингера – ее нужно открыть, чтобы узнать, все ли в порядке с животным. Так и здесь, чтобы понять, что происходит в проекте, надо пообщаться с каждым участником, собрать всю информацию и на ее основе дать оценку. Затрудняюсь представить, как это делать на ежедневной основе и сколько усилий потребуется от всей команды.
Совсем иначе обстоят дела в проектах, где документация используется как средство общения. Можно сказать, что проектирование и созданные в результате артефакты являются способом коллективного мышления проектной группы. На практике это означает, что технический архитектор и интерфейсный проектировщик обсуждают вопросы, опираясь на конкретные части документации. В дальнейшем такое же взаимодействие строится между разработчиками и техническим руководителем проекта. Изначальные знания и история обсуждения отдельных задач накапливаются структурированно и могут быть использованы при работе над следующими версиями продукта.
Проектирование в руках профессионалов – это инструмент, который позволяет точно целиться в бизнес-цели проекта и решительно действовать. Возможно, это кажется странным, но проектирование сокращает бюджет и сроки проекта. Вместо поиска в темноте наугад, проектирование, как фары автомобиля, освещает дорогу для проектной команды. Но важно помнить, что проектированию предшествует этап анализа бизнес-задачи клиента. Проектирование – это поиск наиболее подходящего способа реализации системы, которая решает задачи бизнеса. Если задачи не сформулированы, проектирование не даст результата.
Качественное проектирование включает в себя три аспекта: функциональный, интерфейсный и технический. В этой главе я только упоминаю их, в следующих главах рассмотрю подробнее.