Разработка, управляемая данными: data driven во всем жизненном цикле ПО
В мире программного обеспечения новые правила. Времена, когда мы полагались исключительно на интуицию и лучшие практики, прошли
Эксперт по дополненной и виртуальной реальности, развитию стартапов, межкорпоративному взаимодействию и внешним коммуникациям в IT
В мире программного обеспечения новые правила. Мы вступили в эпоху разработки, управляемой данными, — подхода, в котором производственные решения принимаются на основе объективной информации и экспериментов на протяжении всего жизненного цикла продукта. Времена, когда мы полагались исключительно на интуицию и лучшие практики, прошли.
Каждые клик, взаимодействие и строка кода генерируют настоящий кладезь данных. Как организации пользуются ими для улучшения процесса разработки и самих продуктов? От сбора и анализа информации до непрерывных изменений, это путь с курсом на потребности пользователя.
Стратегия управления проектами, однако, не должна учитывать только требования клиентов. Сам софт определяет поведение, задает тон работе, вводит то, о чем человек не мог и подумать. Есть объективные ограничения, есть экономическая целесообразность. Поэтому data driven не только не отрицает, но и поощряет постоянные эксперименты, которые говорят об успехе той или иной идеи.
Интуиция никуда не пропадает. Она получает опору, которая не позволяет продуктам свернуть в неправильном направлении и узнать об этом слишком поздно. Сочетание творчества с постоянным мониторингом повышает качество, удобство ПО, открывает новые конкурентные преимущества. Сегодня мы разберемся, как именно это происходит.
Жизненный цикл ПО: данные встречаются с разработкой
Использование подхода на основе данных может играть ключевую роль на каждом этапе жизненного цикла программного обеспечения и в результате оказывает трансформирующее влияние на весь продукт, от сбора требований до послепродажной поддержки.
Если разработчик на этапе проектирования заложил системный сбор информации по метрикам и поведению, тот, кто принимает продукт, получит массу интересной информации о функционировании ПО и потребностях пользователя. Менеджмент сможет принимать обоснованные решения, в конце концов даже предвосхищая возможные проблемы. Это означает постоянное развитие с минимумом неожиданностей, особенно в запущенной стадии, то есть экономию временных, финансовых и редко учитываемых моральных ресурсов команды.
Стратегии разработки на основе данных позволяют организациям оптимизировать распределение ресурсов, повысить качество программного обеспечения и адаптировать пользовательский опыт. Данные непрерывно поступают в итеративные циклы разработки, повышая ее гибкость и адаптируемость.
Сбор данных должен лечь в основу обоснованных решений. В нем должны быть различные источники, включая взаимодействие с пользователями, системные журналы и показатели производительности. Ключ к этому в определении четких целей, выборе релевантных точек сбора и работе с хорошими инструментами и методиками.
Анализ данных: постоянный поток информации
Анализ данных — это непрерывная нить, проходящая через весь жизненный цикл ПО. Жемчужиной на ней будет интерпретация. Просто получить данные бессмысленно, нужно понимать, о чем они говорят, делать правильные выводы. В процессе разработки это обеспечит контроль качества и производительности кода; после релиза — направления развития; в ходе обслуживания — состав и приоритетность обновлений.
Немаловажно прогнозирование ожиданий пользователей. Чем раньше вы уловите и подтвердите потребности, тем ценнее будет ваше уникальное торговое предложение.
Непрерывная интеграция
Непрерывная интеграция (Continuous Integration, CI) должна составлять тандем с data driven. Это практика, при которой изменения кода автоматически интегрируются в общий репозиторий, постоянно тестируются и проверяются, гарантируя, что программное обеспечение остается стабильным и безошибочным. CI упрощает контроль версий, экономя внимание команды, что позволяет сосредоточиться на полезных вещах вместо слежки за функциями в обновлениях.
Принятие решений на основе данных обеспечивает поток инноваций в ПО, а CI нужна для того, чтобы релизы не становились бутылочным горлышком и не нивелировали все предыдущие усилия, а также для активного решения проблем в коде по мере их идентификации.
CI и data driven способствуют развитию культуры постоянного совершенствования и гибкости в разработке программного обеспечения. А она ведет к созданию более надежных, адаптивных и ориентированных на пользователя приложений.
Курс на пользователя
Казалось бы, любое приложение нацелено на решение проблем пользователя. Но это не так. Разработчики постоянно блуждают в фантазиях о потребностях целевой аудитории или вовсе не знают ее. Поэтому для многих старт проектов только на основе подтвержденных потребностей — трудная перемена.
Напомним, что данные — это не только сигналы по точкам интереса в интерфейсе. Их путь начинается с маркетингового анализа. Вы можете оттолкнуться от собственной гипотезы и проверить ее или начать с маркетинга, чтобы найти свою нишу. Но разработка всегда стоит после маркетинга, а не до него. Он позволяет сосредоточиться на решении задач потребителей вместо собственных галлюцинаций.
Так формируется ценность, которая обеспечит аудиторию. Будет аудитория, будет смысл заниматься продуктом.
Обеспечение качества
Традиционно контроль качества (quality assurance, QA) фокусировался на ручном тестировании и выявлении дефектов. Однако контроль качества на основе данных использует автоматизацию, аналитику и мониторинг в реальном времени для активного обнаружения и предотвращения проблем.
Более того, если инженер обладает знаниями потребностей клиентов, он способен гораздо лучше понять проблемы и дать рекомендации по их устранению разработчикам. Связка информированных разработчиков и QA-инженеров крайне полезна и дает управляющему более автономную команду, в которой надо заниматься не тушением пожаров, а стратегией, как полагается.
У QA есть и собственная территория мониторинга данных. Они собирают информацию о результатах тестирования, качестве кода и отзывах пользователей, расставляя приоритеты в тестировании. А на более высоком уровне выявляют повторяющиеся проблемы и расширяют охват тестирования, если данные нерепрезентативны.
Гибкая методология и аналитика в реальном времени
Сочетание методологий гибкой разработки и интегрированной аналитики в реальном времени меняет способы проектирования, разработки и улучшения софта. Итеративный Agile требует быстрой реакции на поведение пользователей и ПО, здесь нет места долгому ожиданию сбора статистики. С аналитикой в реальном времени команды могут более осознанно расставлять приоритеты при планировании спринтов.
DevOps: оптимизация доставки программного обеспечения
Команда девопсов с богатым потоком данных располагает всеми шансами перебороть усталость от оповещений. Это более важно большим компаниям, в которых пропуск алерта может означать семизначные убытки, но плох тот солдат, который не мечтает стать генералом.
Когда вы демократизируете данные, каждый сможет обратиться к ним, чтобы получить общую картину. Все находятся на одной волне, людям удобно сотрудничать, устранять неадекватные оповещения, корректировать пороговые значения, сортировать алерты по важности и делать связки. Четкая связь между информацией от ПО и алертами дает команде прийти к единому мнению о том, что и как работает.
KPI
Нормальные количественные и качественные ключевые показатели эффективности — это компас, который ведет к успеху. После постановки, которая уже должна базироваться на data-фундаменте, их надо отслеживать.
При подходе data driven показатели представляют собой тщательно отобранные целевые пороги, отражающие конкретные SMART-цели и -задачи. И вы должны иметь возможность следить за динамикой достижений, чтобы обращать внимание на слабые места в тактике до срыва KPI.
Они могут охватывать различные аспекты, такие как качество кода, время безотказной работы, вовлеченность пользователей и интервалы релизов. Команды будут оценивать прогресс, вносить корректировки и согласовывать ресурсы с целями организации.
Подробно и этично
В аналитике данных нельзя забывать о конфиденциальности и этике. Скажем, современным стандартом сбора личных данных является их минимальная трансляция с устройств, обработка на борту и кодирование везде, где это возможно. Это важно потому, что многие устройства, такие как очки виртуальной реальности или смартфоны, собирают так много, что едва не дотягивают до медицинских стандартов.
Понятно, что big data это статистика, но на глубине можно делать выводы о конкретных людях. Большую роль играет возможность ассоциирования данных с людьми — за такой информацией всегда идет охота, даже если она для выведения на личный уровень нуждается в обогащении другими источниками.
Из-за этого нужно следить за несколькими факторами: доступами к информации, защитой от краж на уровне ПО, социального инжиниринга и договоров, а также за тем, чтобы с пользователей собирали лишь то, на что они дают информированное согласие. Разработчик должен уважать право пользователя на конфиденциальность, потому что должен за всем уследить, сам является пользователем и активно влияет на общую информационную культуру в отрасли.
Тренды: искусственный интеллект и машинное обучение
Разработка переплетается с обучаемыми алгоритмами. Это происходит в даже в написании кода, не говоря об аналитике. Искусственный интеллект может давать предварительные выводы, чтобы вы принимали решения сами, или даже решать самостоятельно. В последнем случае следует помнить, что алгоритмы ошибаются и не могут видеть всей картины. Пока это не общий ИИ, как в романах фантастов, а лишь автоматизированная система с потенциалом.
Сегодня алгоритмы ИИ могут автоматизировать проверку кода, выявлять уязвимости и предлагать улучшения, прогнозировать дефекты ПО, распределять ресурсы и персонализировать взаимодействие с пользователем.
***
В условиях скоростного рынка с частыми технологическими прорывами подход data driven повышает ваши шансы совершить такой прорыв, ускорившись раньше конкурентов.
По мере трансформации компания вправе ожидать повышения эффективности, качества программного обеспечения и удовлетворенности пользователей. В некотором смысле это еще и фундаментальный переход к непрерывному поиску улучшений. Все хотят быть лучше, и перед вами не всегда простой, но понятный путь в этом направлении.