jason_
Jason Poindexter / PortfolioDesign leadership + production AIStart a conversation
JASONPOINDEXTER
Menu
Case study

Apple ran hundreds of tests a week on software it did not control.

Apple brought me in to lead the design of the in-house platform that replaced it. I was the only designer on the project.

Client
Apple
Role
UX research and design
Scope
Internal A/B and multivariate platform
Outcome
Shipped internally across four device classes

Case study details

The product

Dashboard, rebuilt

Dashboard / real month grid, click bars and rows to inspect

October 20264 active2 paused1 draft
Sun
Mon
Tue
Wed
Thu
Fri
Sat
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
activeiPhone Launch · Country TestOct 1 to Oct 9, 2026
Active Experiments3 experiments
FollowNameVisitorsStoreStart DateEnd DateCreator
Holiday Pricing · US Store Front10,203USOct 1, 2026Oct 29, 2026John AppleseedRemove
iPhone Launch · Country Test84,591UKOct 1, 2026Nov 5, 2026Jane AppleseedRemove
Holiday Gift Guide · Store Front39,974FROct 8, 2026Oct 22, 2026Mark AppleseedEdit
Paused Experiments2 experiments
FollowNameVisitorsGoalsStart DateEnd DateCreator
App Store Search Ranking · MVT4,5983Oct 1, 2026Oct 15, 2026Jane AppleseedRemove
Retail Store Locator · A/B12,8471Oct 20, 2026Nov 3, 2026John AppleseedEdit
Stopped Experiments2 experiments
FollowNameVisitorsGoalsStop DateExpiredCreator
App Store Pricing · Country Test6,2151Oct 17, 2026NoMark AppleseedRemove
Apple Music Onboarding · A/B21,3402Sep 30, 2026YesJohn AppleseedEdit
Completed Experiments2 experiments
FollowNameVisitorsGoalsDate CompletedCreator
Back to School Bundle · Store Front58,1021Sep 22, 2026Jane AppleseedRemove
iOS Update Prompt Copy · A/B91,4472Sep 10, 2026Mark AppleseedRemove
Experiment calendar dashboard
01 / The brief

Problem

Apple’s marketing teams ran hundreds of A/B and multivariate tests a week across the Apple ecosystem, all on third-party software. Running those tools meant embedding a vendor’s JavaScript library directly in Apple’s own pages. Every test call went out to a server Apple did not own, and the vendor’s script was injecting into pages before release.

For a company built on secrecy that is two problems at once: an attack surface inside its own front end, and unreleased material visible to an outside party. Bringing testing in-house closed both, and stopped Apple paying a vendor for the privilege.

Solution

Truth Serum brought testing inside the firewall. No third-party script in Apple pages, no test traffic leaving to a server Apple did not run. Access flows through Apple Directory, so managers control who can do what and every request has a traceable owner. Approval happens inside the flow itself.

A calendar dashboard answers the three questions a tester actually has: what is running, for how long, and where.

02 / Setup

Tools

  • Figma
  • FigJam
  • Miro
  • Whiteboarding

My role

  • UX researcher
  • UX designer

Timeline

  • One year
The process

The phases overlapped. I kept testing the work.

03 / Method

I started at the end. Before drawing anything I worked backwards from what a finished test had to produce, until the system satisfied both the business and the person running it.

01Discovery
02Define
03Ideate
04Prototype
05Implement
04 / Research goal

Find out how Apple’s marketing teams actually run tests today, what the third-party dependency costs them, and what an in-house replacement has to do before anyone will switch to it.

05 / Research

What I needed to know

How Apple’s marketing teams actually run tests today, what the third-party dependency costs them, and what the in-house replacement has to do before anyone will switch to it.

  • A/B testing compares two versions and measures the performance difference.
  • Multivariate testing compares more than two, or uses more controls.
  • Reference products reviewed: Adobe Test & Target, Optimizely.
  • Responsive framework derived from Apple device sizes on a Material grid.
100sof tests run every week across the Apple ecosystem, on software Apple did not control.
06 / Method

Access, and its limits

I was embedded with the team that would use the tool, so I had unrestricted access to the end user. I could ask questions, show work, and get answers the same day.

Being the only designer, with limited resources and real secrecy constraints, the method was guerrilla research rather than a formal study.

Constraints

  • One designer, no research team.
  • Project secrecy limited who could be shown what.
  • Nothing built yet, so the structure had to be right first.
07 / The category

Every product in the category worked the same way. You embedded the vendor’s script in your page, the page called out to the vendor’s server, and the vendor saw your unreleased material. That model is fine for most companies. For one built on secrecy it is the central flaw.

So the comparison came down to whose script runs in the page and where the call goes.

Reviewed

Adobe Test & Target, Optimizely.

How they ran

Hosted, third party, script embedded in the page.

What that cost

A vendor inside the front end, and a per-seat bill.

08 / Competitive

Two products defined what testers already expected. The teardown asked one question: what does an internal tool have to do that a bought one structurally cannot?

Competitor comparison

Adobe Test & TargetOptimizelyTruth Serum
DeploymentHosted, third partyHosted, third partyInternal, behind the firewall
IdentityOwn account systemOwn account systemApple Directory
ApprovalProcess outside the toolProcess outside the toolGate inside the flow
Ownership trailPer accountPer accountPer request, traceable to a manager
Page integrationVendor JavaScript embedded in the pageVendor JavaScript embedded in the pageNo third-party script
Where test calls goVendor serversVendor serversStays inside Apple
Unreleased materialVisible to the vendorVisible to the vendorNever leaves
Recurring costLicence per seatLicence per seatInternal build and upkeep
Test typesA/B, MVTA/B, MVTA/B, MVT
Ramp for a new testerVendor trainingVendor trainingMatches internal tooling
Compared on where the script runs and where the call goes.
09 / SWOT

Built after the fact from what the project record shows, to make the bet explicit: the internal build wins on control and loses on maintenance.

SWOT

Strengths

Internal · helpful
  • Runs on Apple Directory, so permissions already exist
  • No vendor JavaScript in Apple pages, no calls to outside servers
  • Designer embedded with the users who would run it
  • Approval can be a step in the flow, not a side process

Weaknesses

Internal · harmful
  • One designer, no research team
  • Secrecy limited who could be shown work
  • Every feature a vendor gives free must now be built

Opportunities

External · helpful
  • Testing volume high enough to justify owning the tool
  • Removes a recurring vendor cost
  • Two mature reference products to learn the domain from
  • A permission model competitors structurally cannot offer

Threats

External · harmful
  • Vendors iterate faster than an internal team can
  • Adoption fails if the tool is worse than what it replaces
  • Maintenance becomes a permanent internal cost
Analysis, reconstructed. No SWOT was produced at the time.
10 / Interviews
“Picking the right messaging can be the difference between thousands and millions.”
Marketing team member
11 / What the research said

There was no recruitment and no screener. There was also no research team, so this was guerrilla work: whiteboards, notes, and competitor applications pulled apart one at a time.

Three questions, every time

Before running a test a tester wants to know what is currently running, how long it runs for, and where it runs. Those three surfaced in every conversation, and they are the reason the dashboard became a calendar rather than a list.

Nobody knew who owned a task

The team kept losing work to the same gap: with no permission model, no one could say whose test it was. That is structural, so permissions ended up inside the flow instead of on a settings page.

12 / Who it is for

The tester

Primary
Needs
Responsive access, easy setup, user and project tracking, reporting, user management, market and segment targeting.
Pain points
Multiple programs to run one test, long ramp for new employees, security risk from third-party software.

The manager

Approver
Needs
Control over who can run what, and a traceable owner for every request.
Pain points
Missed work, because with no permission model nobody knew who owned a task.
13 / How might we

How might we let a marketing team run hundreds of tests a week without any of it leaving Apple?

How might we make ownership of a test obvious, so work stops falling through the gap between people?

14 / What else it could have been

Three decisions had a real alternative on the table. Recording what was rejected matters more than recording what shipped. Without the alternative on record you cannot tell a decision from a default.

The dashboard

CalendarAnswers what is running, for how long, and where, in one view.Taken, after several rounds
ListThe category default. Answers what exists, not what is running now.Rejected

Traffic allocation

A single sliderAllocation is the main control in a test, so it stays visual and immediate.Taken
Full controlsMore precise, and more complicated than the job needs.Rejected

Building an audience

Drag and dropWith an advanced path underneath, granular down to an IP address.Taken
Rules as a formSimpler to build, and slower for the people running tests daily.Rejected
15 / Structure

From requirements to structure

Requirements were written one on one with the marketing team: whiteboarding, note-taking, competitor review, workshops. The sitemap was built alongside the requirements document rather than after it, so the scale of the system and the way a user would move through it were understood together.

16 / Sitemap

The sitemap as it was actually drawn. Three parallel tracks, proof of concepts, proposals and projects, each running the same chain: experiments, setup, validation, then QA, staging and production. The dashed boxes are gates, not pages.

Sitemap

01

Apple Connect branches into test, proposal, project, and support routes

39 nodes8 levels4 gates
  • Apple Connect
    • Dashboard
      • Proof of Concepts
        • Experiments
          • Experiment Setup
            • Validation
              • QA
              • Staging
              • Production
          • Activity Log
        • Activity Log
      • Activity Log
      • Analytics
      • Archives
      • Proposals
        • Process Checklist
          • Experiment Setup
            • Validation
              • QA
              • Staging
              • Production
        • Activity Log
      • Projects
        • Experiments
          • Process Checklist
            • Experiment Setup
              • Validation
                • QA
                • Staging
                • Production
          • Analytics
          • Activity Log
        • Activity Log
        • Analytics
      • Search
        • Search Results
      • Settings
      • Help
      • Notifications
  • Destination
  • Gate, not a page
Node-for-node transcription of the surviving sitemap. Dashed nodes are system gates rather than destinations.
17 / Four dashboards

Four versions of the dashboard, drawn at the time and rebuilt here from those files. The organising idea moves each time: name the sections, then lead with the result, then organise by store, then compress the states. The calendar came out of this run, not before it.

The navigation moves with it, which is why these four do not match the screens further down. Dashboard, Projects, Archives becomes Stores and Experiment Request, and only then settles into the seven sections the finished platform shipped with. It took four rounds to work out that the store tree was the organising structure and everything else hung off it.

Four dashboards

  1. 01 Names the sections
    MetrolineSearchWelcome Back, John

    Overview

    Six sections and a search field. Nothing below it yet, because what the page holds was still an open question.

    The shell only. Navigation decided, content not yet.

  2. 02 Leads with the result
    MetrolineSearchWelcome Back, John

    Experiments

    StatusNameStore
    RunningMaecenas vehicula enim in tempor maximusUK

    Visitors

    Flow A, B and C plotted October to December, 0 to 100K.

    60%Significance, 21,555 visitors
    ExperimentVisitorsConversionSignificance
    Lorem ipsum dolor sit amet26kA 10%, B 20%, C 70%A 10%, B 20%, C 70%
    Lorem ipsum dolor sit amet26kA 10%, B 20%, C 70%A 10%, B 20%, C 70%

    Analytics first. Conversion and significance are the whole page.

  3. 03 Organises by store
    MetrolineSearchWelcome Back, John
    StoresFR

    Active experiments

    NameVisitorsGoalsUser
    Lorem ipsum dolor sit amet10,2031John Appleseed
    Nunc vel orci volutpat4,5983Jane Appleseed
    Mauris venenatis quam sed urna39,9741Mark Appleseed

    Paused experiments

    NameVisitorsGoalsUser
    Lorem ipsum dolor sit amet4,5981John Appleseed

    Draft experiments

    NameVisitorsGoalsUser
    Nunc vel orci volutpat02Jane Appleseed

    Stopped experiments

    NameVisitorsGoalsUser
    Mauris venenatis quam sed urna39,9741Mark Appleseed

    Completed repeats below, same four columns. Five stacks on one page.

    The store tree arrives. Experiments hang off a locale, grouped by state.

  4. 04 Compresses the states
    MetrolineSearchWelcome Back, John

    Active experiments

    NameVisitorsGoals
    Lorem ipsum dolor sit amet10,2031
    Nunc vel orci volutpat4,5983

    Stopped experiments

    NameVisitorsExpired
    Lorem ipsum dolor sit amet10,203No
    Nunc vel orci volutpat4,598Yes

    Two stacks instead of five tabs. The states a reader checks daily are both on screen at once.

    The tree expands and the states collapse into one scannable stack.

Rebuilt from Truth_Dashboard_Vr_1 to 4. Labels, locales, column headers and figures are what those files show.
18 / The story of one test

Before any screen existed, the shape of the work was already fixed by what a test is. Five steps, in this order, every time. The platform’s job was to make each one obvious and none of them leave the building.

Design base

Start with the design or offer that becomes the control.

Get creative

Create a variation of the thing being tested.

Plan it out

Define what the test is meant to learn, before it runs.

Read the numbers

Collect the data and evaluate which version performed.

Launch the best

Ship the winner, then use what the team learned in the next test.

19 / Flows

Navigation and task flow

Two factors drove the navigation: the type of test, and where it runs. The system also had to separate tools and roles, because not every user had access to every part of it.

User flows

02

Three tasks carry ownership, approval, and recovery through the system

01
Run a multivariate test

Move an approved idea from setup to a live experiment without losing ownership or store context.

  1. TesterStart a new experiment01
  2. SystemCheck experiment permission02
  3. TesterBuild the audience and variants03
  4. TesterSubmit the experiment04
  5. ManagerReview the setup05
  6. SystemPublish to the selected store fronts06

ContinuePermission confirmed, then approval publishes the test.

RecoverRequest access or return to setup with the review notes.

02
Pause setup and resume later

Preserve unfinished work so a tester can leave the setup flow without starting over.

  1. TesterWork through experiment setup01
  2. TesterLeave before submission02
  3. SystemSave the experiment as a draft03
  4. TesterReturn to Draft Experiments04
  5. SystemRestore completed fields and selections05
  6. TesterResume from the saved step06

ContinueThe saved draft reopens at the last completed setup step.

RecoverAn incomplete required field is identified without clearing the draft.

03
Grant experiment access

Give a collaborator read or write access while preserving an accountable owner.

  1. TesterRequest access to an experiment01
  2. SystemRoute the request to its owner02
  3. ManagerReview the requested role03
  4. ManagerChoose read or write access04
  5. SystemWrite the role to Apple Directory05
  6. SystemRecord the decision in the activity log06

ContinueThe approved role is applied and becomes auditable.

RecoverA declined request returns with the owner’s reason.

Reconstructed from the surviving screen set, sitemap, and documented permission model. Continue and recovery paths are stated for every task.
20 / Screen map

The flows above show one task in order. The map below covers every screen in the platform, what it holds, and where it goes next.

The inbound list is derived by inverting the graph rather than written down, so a screen nothing reaches shows up as one.

Screen map

03

Every screen names its documented outbound transition

12 screens8 sections14 transitions
01
Dashboard
  1. Archived screenExperiments

    Open the full reportResults

    Filter by storeStore tree

02
Draft Experiments
  1. Archived screenIn progress and rejected

    Edit a draftExperiment Details, empty

  2. Archived screenExperiment Details, empty

    Fill it inExperiment Details, filled

  3. Archived screenAdd User

    Back to the experimentExperiment Details, filled

  4. Archived screenExperiment Details, filled

    Submit for approvalLaunchpad

03
Launchpad
  1. Archived screenLaunchpad

    Approved, goes liveStore tree

    Rejected, back to draftsIn progress and rejected

04
Live Experiments
  1. Archived screenStore tree

    Open a rowResults

    When it endsArchives

05
Analytics
  1. Rebuilt from filesResults

    Archive itArchives

06
Concepts
  1. Named onlyConcepts

    Promote to a draftExperiment Details, empty

07
Archives
  1. Named onlyArchives

    Reopen the numbersResults

08
Admin
  1. Named onlyManage Users

    Who can approveLaunchpad

  2. Named onlyActivity Log

    Terminal stateNo documented exit

The screen inventory distinguishes archived, rebuilt, and named-only surfaces. Counts and transitions are derived from the same source data.
21 / Wireframes

Structure first, blocked out coarse enough that nobody could mistake it for a design. These are redrawn: the originals were not preserved.

Wireframes

Nav
Search
Calendar
Active

Dashboard

Month grid on top, experiment tables by state underneath.

Stepper
Approval gate
Fields
Summary
Save draft / continue

Experiment setup

Gateway first: no approval, no test.

Stepper
Rules
Reach
Continue

Audience

Segment rules on the left, reach on the right.

Stepper
Control
Variant A
Variant B
Split

Variants

Control against variants, side by side.

Four screens on the primary path. Blocked, not drawn.
22 / The platform

The three questions a tester has before running a test.

Every screen below is a live recreation, not a screenshot.

The platform

Main

Dashboard
Draft Experiments
Launchpad
Live Experiments
Concepts
Archives
Analytics

Admin

Manage Users
Activity Log
Settings
Help
John

Dashboard / real month grid, click bars and rows to inspect

October 20264 active2 paused1 draft
Sun
Mon
Tue
Wed
Thu
Fri
Sat
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
activeiPhone Launch · Country TestOct 1 to Oct 9, 2026
Active Experiments3 experiments
FollowNameVisitorsStoreStart DateEnd DateCreator
Holiday Pricing · US Store Front10,203USOct 1, 2026Oct 29, 2026John AppleseedRemove
iPhone Launch · Country Test84,591UKOct 1, 2026Nov 5, 2026Jane AppleseedRemove
Holiday Gift Guide · Store Front39,974FROct 8, 2026Oct 22, 2026Mark AppleseedEdit
Paused Experiments2 experiments
FollowNameVisitorsGoalsStart DateEnd DateCreator
App Store Search Ranking · MVT4,5983Oct 1, 2026Oct 15, 2026Jane AppleseedRemove
Retail Store Locator · A/B12,8471Oct 20, 2026Nov 3, 2026John AppleseedEdit
Stopped Experiments2 experiments
FollowNameVisitorsGoalsStop DateExpiredCreator
App Store Pricing · Country Test6,2151Oct 17, 2026NoMark AppleseedRemove
Apple Music Onboarding · A/B21,3402Sep 30, 2026YesJohn AppleseedEdit
Completed Experiments2 experiments
FollowNameVisitorsGoalsDate CompletedCreator
Back to School Bundle · Store Front58,1021Sep 22, 2026Jane AppleseedRemove
iOS Update Prompt Copy · A/B91,4472Sep 10, 2026Mark AppleseedRemove
Platform shell

Experiment audiences / targeting rule builder

Opens over the experiment form

To target your experiment to specific visitors, add a saved audience or create a new one below.

Visitors in any of these audiences will see the experiment:

  • EveryoneBy default, all visitors will see this experiment.
  • US Retail ReturningReturning visitors, US storefront, retail channel.
  • Holiday Hi-CartCart value over $99 during the holiday campaign window.
Audience builder

Variant editor / inline editing with browser simulator

StoreMaciPhoneWatchiPadiPodiTunesSupport
MacBook Air
MacBook Pro
iMac
iMac with Retina 5K display
Mac Pro
Mac mini
OS X Yosemite
MacAppsPro AppsAccessoriesServer

Mac mini

It's mini in a massive way. Now starting at $499.

MacBook Air

All the power you want. All day long.

From one gift come many.

Shop now >
Variant 1·Page 1·Safari 8.0.3MVT
Variant editor

Experiment details / read-and-edit summary

Toggle view mode top right · edit URLs below

Experiment Details

Experiment detail
23 / Decisions

Drafts

Tests are sometimes small and sometimes large, and a user often needs to pause setup and come back. A draft section lets any test be started, stopped, and edited without losing work.

Approval as design

Experiment setup works in two parts, and the first is a management gateway: it stops a user without prior approval from running a test at all.

24 / Testing

Tested while designing

Because I sat with the team that would use the tool, testing was not a phase at the end. I could build a prototype, put it in front of a tester the same day, and fold what came back into the next version. The design moved as we worked rather than waiting on a formal round.

No formal test report survives from the project, so what is shown here is the design those sessions produced rather than the sessions themselves.

25 / Learnings

What this project taught me.

  • Working backwards from the finished outcome was faster than designing forwards from a feature list.
  • Being embedded with the users removed most of the research overhead a team of one could not otherwise afford.
  • The security problem was solved by an org decision, routing through Apple Directory, not by an interface. Knowing which problems are not design problems mattered more than any screen.
  • I left at detailed visual design, so I did not see the built product ship.