5.10.2 Slow CI Consultant Practicum

This practicum asks you to investigate an unfamiliar slow CI workload without a guided sequence. You receive a synthetic dossier, a limited probe budget, and a deliverable contract. Your job is not to name every possible Bazel problem. It is to choose evidence that separates this dossier's competing explanations and write a diagnosis no broader than that evidence.

Complete the case before opening the reveal. 5.10.1 Unexpected Rebuild Walkthrough provides the integrated method, but this dossier deliberately changes the symptom and withholds a ready-made path through the tools.

Synthetic dossier: Atlas presubmit

All names, durations, counts, and observations below are synthetic teaching data, not captured Bazel output or performance baselines.

The Atlas repository runs this presubmit workload:

bazel test //services/payments/... //services/orders/...

The CI team reports that median elapsed time increased after a repository reorganization. Test results remain green. The same pinned Bazel version and worker image are used before and after the change.

You receive these records:

EvidenceBeforeAfter
revisionbefore the repository reorganizationafter the repository reorganization
repository structurebaseline shared BUILD macros and package boundariesthose macros and boundaries reorganized
elapsed time9 min15 min
loading + analysis70 s72 s
execution7.5 min13.5 min
remote action-cache hit rate84%83%
actions reported11,80018,900
longest single action48 s49 s

An engineer also supplies three notes:

  • A controlled rerun of the same after revision on the same worker class remains near 15 minutes.
  • CI command and rc provenance match across the comparison.
  • No execution logs or narrowed graph queries have yet been collected.

These records make several explanations plausible: the reorganization may have expanded the target or action graph; it may have shifted work onto a broad dependency path; cache misses may have become more expensive despite a similar rate; or a small critical bottleneck may dominate the added time. A sandbox or undeclared-input problem is possible in the abstract, but the dossier contains no isolation symptom yet.

Constraints

You may request two additional probes before writing your first memo. Each probe must state:

  1. the exact question it answers;
  2. the comparison cohort or universe it uses;
  3. the observation that would support one hypothesis over another;
  4. the observation that would make you change branches.

Choose from the following, or propose an equally bounded Bazel probe:

  • a scoped target-graph comparison;
  • an action-plan comparison;
  • paired execution logs;
  • a matched timing-profile comparison;
  • BEP-derived invocation data;
  • focused remote-cache diagnostics;
  • a sandbox or undeclared-input reproduction.

The optional branches described in 5.3.2 Practical Graph Analysis, 5.4.2 Critical Path, 5.5.3 Remote Cache Diagnostics, and 5.8.2 Diagnosing Sandbox Issues can deepen particular investigations. They are not hidden prerequisites: the dossier and the probe descriptions above contain enough information to select and justify two probes.

Deliverable

Write a one-page diagnosis memo with these headings:

  • Incident boundary — workload, revisions, environment, and what “slow” means.
  • Competing hypotheses — at least two explanations that predict different observations.
  • Probe choices — two probes, in order, including why each is more discriminating than the alternatives.
  • Evidence table — observation, inference, and rejected interpretation in separate columns.
  • Bounded diagnosis — the strongest claim the supplied and requested evidence would justify.
  • Evidence limits and next action — what remains unknown and the next falsifiable test or repair experiment.

Do not prescribe a fleet policy, shared-service SLO, worker-capacity program, or telemetry platform. This is one bounded workload across controlled invocations.

Rubric

Score each dimension from 0 to 2:

Dimension012
Comparison controlmixes incomparable runsrecords some controlsstates workload, revision, configuration, worker, server, and cache boundaries
Hypotheseslists causes without predictionsgives one discriminating predictionkeeps multiple falsifiable explanations and branch conditions
Probe economychooses tools by familiarityone probe discriminatesboth probes are sequenced by information gain
Interpretationtreats metrics as causesseparates some observationsdistinguishes observation, inference, cascade, and absence of evidence
Diagnosis scopemakes a universal claimadds a caveatmatches the exact cohort and states evidence limits
Next actionsays “investigate more”names a toolpredicts how a controlled repair or follow-up should change evidence

A strong submission scores at least 10 of 12 and has no zero in comparison control or diagnosis scope. There is no single mandatory tool pair. A scoped graph comparison followed by aquery, or an action-plan comparison followed by paired execution logs, can both be defensible if their branch conditions are explicit.

think

Decide: Select your first two probes and write the diagnosis sentence you expect each possible outcome to support. Do this before opening the reveal.

Reveal

A defensible first probe compares the scoped target or action plan before and after the reorganization. The near-constant loading/analysis time and single- action maximum weaken, but do not eliminate, the “one new bottleneck” story; the large increase in reported actions makes graph breadth a useful early discriminator. Bound the target universe to the two service subtrees and keep the configuration equal.

If the plan gained many actions, follow their first new dependency paths or producer boundary rather than collecting generic cache statistics. If the plans are materially equal, paired execution logs can distinguish changed recorded inputs, arguments, platforms, cache outcomes, and output differences. A matched profile becomes preferable when the plans agree and the unresolved question is where execution time accumulates. Similar aggregate cache-hit rates do not prove equivalent cache behavior, but they also do not justify declaring a cache cause without more discriminating evidence.1

The reveal supplies branch criteria, not a final diagnosis. The dossier omits the two requested probe results, so any memo that states the root cause as fact has exceeded its evidence.

key takeaway

Consulting transfer means choosing the next observation under uncertainty, not recognizing the tool used in a previous walkthrough. Define a comparable cohort, write hypotheses with different predictions, spend a limited probe budget on information gain, and keep aggregate timing or cache metrics in their proper role as observations.

A correct practicum memo may end without a root cause. It succeeds when its diagnosis is exactly as strong as the evidence, its limits are explicit, and its next experiment would falsify or strengthen the leading explanation.

Check your understanding · 3 questions

1.What is the best first response to the increase in reported actions?

Select one answer

2.Which features belong in a strong practicum memo?

Select all that apply

3.Classify these claims about the synthetic dossier:

Choose True or False for each sentence

A similar aggregate cache-hit rate proves cache behavior was unchanged.
A longer execution phase alone identifies the responsible Bazel mechanism.
Two different probe pairs can both be defensible when their questions and branch conditions are explicit.
It is valid to stop with a bounded inconclusive memo when the requested probe results are unavailable.
0 of 3 answered

Footnotes

  1. JSON Trace Profile — profiles expose phase, action, critical-path, and remote-work observations that must be interpreted in a controlled workload