Facebook опубликовала исходные коды фреймворка PlanOut, который был разработан и применяется этой компанией для проведения A/B-тестирований. Он включает в себя специализированный язык программирования, упрощающий организацию сложных экспериментов, средство автоматической фиксации результатов и инструменты, помогающие проводить серии взаимосвязанных экспериментов.

A/B-тестирование – метод проверки действенности тех или иных интерфейсных решений, который нередко применяют интернет-компании. Для того чтобы выяснить, какой эффект произведут изменения на сайте, его посетителей случайным образом делят на несколько групп. Участники каждой из них видят различные версии сайта. Чтобы выбрать оптимальную версию, достаточно сравнить показатели этих групп.

В некоторых случаях это позволяет предотвратить изменения, которые могли бы привести к катастрофическим последствиям – скажем, сократить доходы интернет-магазина или ускорить отток пользователей. В других – наоборот, улучшить, причём за счёт незначительных на первый взгляд изменений. Влияние мелочей – например, правильного оттенка или подходящих слов – зачастую оказывается очень серьёзным.

Facebook ежедневно проводит тысячи подобных экспериментов. Инженеры компании хорошо знакомы с подводными камнями, которые подстерегают тех, кто берётся за A/B-тестирование без должного умения. Допустить ошибку, которая полностью лишит смысла полученные во время эксперимента результаты, проще простого.

Приставить к каждому программисту эксперта по статистике, который будет следить, чтобы к тестам было невозможно придраться, – слишком дорого даже по меркам Facebook. Но к проблеме можно подойти с другой стороны – заложить знания экспертов в программный продукт.

PlanOut является реализацией именно этой идеи. Он даёт готовую платформу для проведения A/B-тестирований, которая позволяет избежать если не всех, то многих распространённых ошибок. При этом он спроектирован таким образом, чтобы поощрять подход к экспериментам, принятый у психологов и когнитивистов. Кроме того, в него заложена возможность проведения не одного, а серии последовательных опытов.

Код PlanOut опубликован на GitHub, а краткое объяснение можно найти в блоге Facebook. Тех, кого интересуют подробности, направляют к научной работе “Планирование и внедрение онлайновых полевых экспериментов“. Создатели PlanOut намерены представить её на конференции WWW 2014, которую проводит авторитетная международная организация Ассоциация вычислительной техники (ACM).