{"id":812380,"date":"2022-01-28T10:53:32","date_gmt":"2022-01-28T18:53:32","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/research\/?post_type=msr-blog-post&#038;p=812380"},"modified":"2022-01-28T10:54:48","modified_gmt":"2022-01-28T18:54:48","slug":"microsofts-experimentation-platform-how-we-build-a-world-class-product","status":"publish","type":"msr-blog-post","link":"https:\/\/www.microsoft.com\/en-us\/research\/articles\/microsofts-experimentation-platform-how-we-build-a-world-class-product\/","title":{"rendered":"Microsoft\u2019s Experimentation Platform: How We Build a World Class Product"},"content":{"rendered":"<p><span class=\"TextRun SCXW11513924 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW11513924 BCX8\">Microsoft\u2019s Experimentation Platform (<\/span><span class=\"NormalTextRun SpellingErrorV2 SCXW11513924 BCX8\">ExP<\/span><span class=\"NormalTextRun SCXW11513924 BCX8\">) provides a platform<\/span> <span class=\"NormalTextRun SCXW11513924 BCX8\">used by product teams across <\/span><span class=\"NormalTextRun SCXW11513924 BCX8\">Microsoft <\/span><span class=\"NormalTextRun SCXW11513924 BCX8\">to run 1,000s of A\/B test<\/span><span class=\"NormalTextRun SCXW11513924 BCX8\">s<\/span><span class=\"NormalTextRun SCXW11513924 BCX8\"> every month<\/span><span class=\"NormalTextRun SCXW11513924 BCX8\">. From a product perspective this means that we have<\/span><span class=\"NormalTextRun SCXW11513924 BCX8\"> a big responsibility both as a steward for data-driven decision-making and as an <\/span><span class=\"NormalTextRun SCXW11513924 BCX8\">innovative center<\/span><span class=\"NormalTextRun SCXW11513924 BCX8\"> of excellence.<\/span> <span class=\"NormalTextRun SCXW11513924 BCX8\">As a <\/span><span class=\"NormalTextRun ContextualSpellingAndGrammarErrorV2 SCXW11513924 BCX8\">result<\/span> <span class=\"NormalTextRun CommentStart SpellingErrorV2 SCXW11513924 BCX8\">ExP\u2019s<\/span><span class=\"NormalTextRun SCXW11513924 BCX8\"> product team <\/span><span class=\"NormalTextRun SCXW11513924 BCX8\">must prioritize effectively <\/span><span class=\"NormalTextRun ContextualSpellingAndGrammarErrorV2 SCXW11513924 BCX8\">to maximize<\/span><span class=\"NormalTextRun SCXW11513924 BCX8\"> the impact of investments,<\/span><span class=\"NormalTextRun SCXW11513924 BCX8\"> b<\/span><span class=\"NormalTextRun SCXW11513924 BCX8\">alancing long-term goals <\/span><span class=\"NormalTextRun SCXW11513924 BCX8\">with <\/span><span class=\"NormalTextRun SCXW11513924 BCX8\">ongoing <\/span><span class=\"NormalTextRun SCXW11513924 BCX8\">customer feedback<\/span><span class=\"NormalTextRun SCXW11513924 BCX8\">.<\/span> <span class=\"NormalTextRun SCXW11513924 BCX8\">In this <\/span><span class=\"NormalTextRun SCXW11513924 BCX8\">post we describe<\/span> <span class=\"NormalTextRun SCXW11513924 BCX8\">some of the strategies and processes that we use to <\/span><span class=\"NormalTextRun SCXW11513924 BCX8\">build<\/span> <span class=\"NormalTextRun SCXW11513924 BCX8\">a world<\/span><span class=\"NormalTextRun SCXW11513924 BCX8\">&#8211;<\/span><span class=\"NormalTextRun SCXW11513924 BCX8\">class scalable <\/span><span class=\"NormalTextRun SCXW11513924 BCX8\">experimentation platform<\/span> <span class=\"NormalTextRun SCXW11513924 BCX8\">with <\/span><span class=\"NormalTextRun SCXW11513924 BCX8\">a<\/span><span class=\"NormalTextRun SCXW11513924 BCX8\"> core<\/span> <span class=\"NormalTextRun SCXW11513924 BCX8\">focus on<\/span><span class=\"NormalTextRun SCXW11513924 BCX8\"> trustworthy A\/B testing<\/span><span class=\"NormalTextRun SCXW11513924 BCX8\">.<\/span><\/span><span class=\"EOP SCXW11513924 BCX8\" data-ccp-props=\"{\"201341983\":0,\"335559739\":160,\"335559740\":240}\">\u00a0<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-812383\" src=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2022\/01\/worldclassproduct.png\" alt=\"diagram that shows our process for building a world class product\" width=\"1552\" height=\"717\" srcset=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2022\/01\/worldclassproduct.png 1552w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2022\/01\/worldclassproduct-300x139.png 300w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2022\/01\/worldclassproduct-1024x473.png 1024w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2022\/01\/worldclassproduct-768x355.png 768w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2022\/01\/worldclassproduct-1536x710.png 1536w, https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2022\/01\/worldclassproduct-240x111.png 240w\" sizes=\"auto, (max-width: 1552px) 100vw, 1552px\" \/><\/p>\n<h3>Set your sights on a long-term vision and measure your progress<\/h3>\n<p><span data-contrast=\"auto\">ExP\u2019s mission is to accelerate innovation through trustworthy analysis and A\/B testing. Trustworthiness is at the core of our platform, in terms of both giving users the ability to run successful A\/B tests and empowering them to make high quality decisions. To align our investments with long-term priorities for our customers including product teams throughout Microsoft such as Office, Bing, xBox, and Azure, we revisit our product vision and strategy on an annual basis. This includes using the OKR (objectives and key results) framework to set new goals that measure our impact which includes tracking adoption, engagement, and experiment quality. As a product team we also invest in testing our product by running our own A\/B tests to protect the customer experience by assessing the impact of new features on the end-user experience.<\/span><span data-ccp-props=\"{\"201341983\":0,\"335559739\":160,\"335559740\":240}\">\u00a0<\/span><\/p>\n<h3>Keep a pulse on your customers<\/h3>\n<p><span data-contrast=\"auto\">A key component of our product development process is to stay in touch with our customers to track their success, collect targeted feedback, and triage new asks. This requires a multi-faceted approach as outlined here:<\/span><\/p>\n<ol>\n<li data-leveltext=\"%1.\" data-font=\"\" data-listid=\"1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Regularly engage to accelerate the A\/B testing flywheel<\/span><\/b><span data-contrast=\"auto\">: As a platform team we have several ways to engage with our customers to accelerate <\/span><a href=\"https:\/\/www.microsoft.com\/en-us\/research\/group\/experimentation-platform-exp\/articles\/it-takes-a-flywheel-to-fly-kickstarting-and-keeping-the-a-b-testing-momentum\/\"><span data-contrast=\"none\">their A\/B testing flywheel journey<\/span><\/a><span data-contrast=\"auto\"> [1]. To ensure that our customers are successful at ramping up A\/B testing for their products, we support their continuous and iterative development process by organizing periodic joint initiative reviews that include participants from product, data science, and engineering. To prepare for each initiative review, we collaborate with our customers to write a document that summarizes highlights and lowlights, checks in on progress, and captures opportunities for improvement and new feature requests [2]. These documents are reviewed in a meeting with dedicated reading and commenting time during the first half followed by discussion of any feedback, comments, and decision in the second half to encourage a high-quality conversation.<\/span><span data-ccp-props=\"{\"134233279\":true,\"201341983\":0,\"335559739\":160,\"335559740\":240}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"%1.\" data-font=\"\" data-listid=\"1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Create opportunities to collect continuous feedback<\/span><\/b><span data-contrast=\"auto\">: In addition to holding regular business reviews, our product team also organizes a monthly customer council meeting in which we present prototypes and get product feedback on new or existing features. The customer council meetings help us get feedback to quickly iterate and serve to supplement other avenues of feedback including focus groups, cognitive design walkthroughs, and one-on-one usability studies. These additional feedback mechanisms are scheduled on an as-needed basis to get more focused feedback that goes beyond in-app feedback surveys and quantitative results from A\/B tests.<\/span><span data-ccp-props=\"{\"134233279\":true,\"201341983\":0,\"335559739\":160,\"335559740\":240}\">\u00a0<\/span><\/li>\n<li data-leveltext=\"%1.\" data-font=\"\" data-listid=\"1\" data-aria-posinset=\"1\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Prioritize and triage customer asks<\/span><\/b><span data-contrast=\"auto\">: To ensure that customer feature requests are prioritized appropriately we hold a weekly triage meeting in which feature asks are discussed and the team decides on a priority relative to our existing roadmap and customer commitments. Regardless of the outcome, a key component of this process is to close the loop with the customer to ensure alignment and maintain trust.<\/span><span data-ccp-props=\"{\"134233279\":true,\"201341983\":0,\"335559739\":160,\"335559740\":240}\">\u00a0<\/span><\/li>\n<\/ol>\n<h3>Create a culture that fosters cross-team alignment and collaboration<\/h3>\n<p><span data-contrast=\"auto\">In addition to having a fantastic team, one of the keys to successfully building a world class product is to have the right process. For our product team, this means carefully balancing roadmap prioritization by considering the return on investment of each project before we make a commitment to our customers. To manage our backlog, ExP Product Managers work within a trio that includes Data Scientist and Engineering representation. In collaboration with their trios, ExP Product Managers spend approximately 50% of their time on project management and execution and the remaining 50% on forward-looking planning which includes focusing on the product vision for their product area, maintaining a long-term backlog, and developing new design prototypes. This gives the team the right balance and ensures that everyone stays aligned.<\/span><span data-ccp-props=\"{\"201341983\":0,\"335559739\":160,\"335559740\":240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">From a planning and execution perspective, we\u2019ve created a continuous planning process in partnership with our engineering and data science teams that starts with backlog grooming within each product area and culminates in a cross-team backlog grooming exercise to set priorities and determine alignment across all teams. By revisiting prioritization on regular basis using an agile Kanban-like process that considers return on investment, we can react quickly to shift resources to address changes in scope and priorities and stay focused on the highest impact deliverables for our customers.<\/span><span data-ccp-props=\"{\"201341983\":0,\"335559739\":160,\"335559740\":240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">To manage specific projects, we use <\/span><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/azure.microsoft.com\/en-us\/services\/devops\/\"><span data-contrast=\"none\">Azure DevOps<\/span><span class=\"sr-only\"> (opens in new tab)<\/span><\/a><span data-contrast=\"auto\"> to track ideas and feature requests from their inception until launch. We follow a lightweight process with variable detail depending on the size of the project which includes the following steps: (1) product spec with job stories and UX mocks, (2) dev design with work item breakdown, (3) detailed UX design, (4) implementation, and (5) A\/B testing and customer feedback. Following this sequencing enables us to collect customer feedback and ensures that everyone is aligned and can review each other\u2019s work. Before a feature is ready to be launched, we schedule a bug bash and work directly with pilot customers to get feedback with an initial Beta release before rolling out the feature more broadly with an A\/B test using our own platform. To monitor progress across the team and learn whether we are on-track, we use <\/span><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/powerbi.microsoft.com\/en-us\/\"><span data-contrast=\"none\">Power BI<\/span><span class=\"sr-only\"> (opens in new tab)<\/span><\/a><span data-contrast=\"auto\"> to visualize the status of work. Looking beyond the launch of specific features, we also use Power BI to report on feature usage and product engagement, leverage the customer feedback process outline above and come up with our own innovative ideas to help us determine where to invest next.<\/span><span data-ccp-props=\"{\"201341983\":0,\"335559739\":160,\"335559740\":240}\">\u00a0<\/span><\/p>\n<h3>Continuously invest in a world class product that powers trustworthy A\/B testing<\/h3>\n<p><span data-contrast=\"auto\">If you are a frequent reader of our blog, you have probably noticed some of our posts which highlight investments in trustworthy A\/B testing such as <\/span><a href=\"https:\/\/www.microsoft.com\/en-us\/research\/group\/experimentation-platform-exp\/articles\/diagnosing-sample-ratio-mismatch-in-a-b-testing\/\"><span data-contrast=\"none\">diagnosing sample ratio mismatch<\/span><\/a><span data-contrast=\"auto\"> [3] and <\/span><a href=\"https:\/\/www.microsoft.com\/en-us\/research\/group\/experimentation-platform-exp\/articles\/alerting-in-microsofts-experimentation-platform-exp\/\"><span data-contrast=\"none\">alerting<\/span><\/a><span data-contrast=\"auto\"> [4]. We take pride in our product development process to continuously invest in a world class product and we will continue to share new and interesting A\/B testing features on this blog as we advance our mission to accelerate innovation through trustworthy analysis and A\/B testing.<\/span><span data-ccp-props=\"{\"201341983\":0,\"335559739\":160,\"335559740\":240}\">\u00a0<\/span><\/p>\n<p>\u2013<em> Sebastian Kohlmeier, Microsoft Experimentation Platform<\/em><\/p>\n<p><b><span data-contrast=\"auto\">References<\/span><\/b><span data-ccp-props=\"{\"201341983\":0,\"335559739\":160,\"335559740\":240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">[1] A. Fabijan, B. Arai, P. Dmitriev, and L. Vermeer, \u201cIt takes a Flywheel to Fly: Kickstarting and Keeping the A\/B testing Momentum.\u201d <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/group\/experimentation-platform-exp\/articles\/it-takes-a-flywheel-to-fly-kickstarting-and-keeping-the-a-b-testing-momentum\/\">https:\/\/www.microsoft.com\/en-us\/research\/group\/experimentation-platform-exp\/articles\/it-takes-a-flywheel-to-fly-kickstarting-and-keeping-the-a-b-testing-momentum\/<\/a>.<\/span><span data-ccp-props=\"{\"201341983\":0,\"335559739\":160,\"335559740\":240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">[2] B. Porter, \u201cThe Beauty of Amazon&#8217;s 6-Pager.&#8221; <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/www.linkedin.com\/pulse\/beauty-amazons-6-pager-brad-porter\/\">https:\/\/www.linkedin.com\/pulse\/beauty-amazons-6-pager-brad-porter\/<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>. <\/span><span data-ccp-props=\"{\"201341983\":0,\"335559739\":160,\"335559740\":259}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">[3] A. Fabijan, T. Blanarik, M. Caughron, K. Chen, R. Zhang, A. Gustafson, V. Kavitha Budumuri, and S. Hunt, \u201cDiagnosing Sample Ratio Mismatch in A\/B Testing.\u201d <\/span><a href=\"https:\/\/www.microsoft.com\/en-us\/research\/group\/experimentation-platform-exp\/articles\/diagnosing-sample-ratio-mismatch-in-a-b-testing\/\"><span data-contrast=\"none\">https:\/\/www.microsoft.com\/en-us\/research\/group\/experimentation-platform-exp\/articles\/diagnosing-sample-ratio-mismatch-in-a-b-testing\/<\/span><\/a><span data-contrast=\"auto\">.<\/span><span data-ccp-props=\"{\"201341983\":0,\"335559739\":160,\"335559740\":240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">[4] A. Agrawal, and J. Lu, \u201cAlerting in Microsoft\u2019s Experimentation Platform (ExP).\u201d <\/span><a href=\"https:\/\/www.microsoft.com\/en-us\/research\/group\/experimentation-platform-exp\/articles\/alerting-in-microsofts-experimentation-platform-exp\/\"><span data-contrast=\"none\">https:\/\/www.microsoft.com\/en-us\/research\/group\/experimentation-platform-exp\/articles\/alerting-in-microsofts-experimentation-platform-exp\/<\/span><\/a><span data-contrast=\"auto\">.<\/span><span data-ccp-props=\"{\"201341983\":0,\"335559739\":160,\"335559740\":240}\">\u00a0<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Microsoft\u2019s Experimentation Platform (ExP) provides a platform used by product teams across Microsoft to run 1,000s of A\/B tests every month. From a product perspective this means that we have a big responsibility both as a steward for data-driven decision-making and as an innovative center of excellence. As a result ExP\u2019s product team must prioritize [&hellip;]<\/p>\n","protected":false},"author":40825,"featured_media":0,"template":"","meta":{"msr-url-field":"","msr-podcast-episode":"","msrModifiedDate":"","msrModifiedDateEnabled":false,"ep_exclude_from_search":false,"_classifai_error":"","msr-content-parent":651963,"msr_hide_image_in_river":0,"footnotes":""},"research-area":[],"msr-locale":[268875],"msr-post-option":[],"class_list":["post-812380","msr-blog-post","type-msr-blog-post","status-publish","hentry","msr-locale-en_us"],"msr_assoc_parent":{"id":651963,"type":"group"},"_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-blog-post\/812380","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-blog-post"}],"about":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/types\/msr-blog-post"}],"author":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/users\/40825"}],"version-history":[{"count":8,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-blog-post\/812380\/revisions"}],"predecessor-version":[{"id":816493,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-blog-post\/812380\/revisions\/816493"}],"wp:attachment":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media?parent=812380"}],"wp:term":[{"taxonomy":"msr-research-area","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/research-area?post=812380"},{"taxonomy":"msr-locale","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-locale?post=812380"},{"taxonomy":"msr-post-option","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-post-option?post=812380"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}