Sign in to create and edit playbooks. Sign In Register

Present Findings with Jupyter

Analytics Communication Jupyter, Plotly

Delivery Constraint & Opportunity Analysis · Updated 1 month, 2 weeks ago

Content

Skill: Present Findings with Jupyter

Capability Domain: Analytics Communication
Technology Stack: Jupyter, Plotly

When to use

Insights Communicator picked Jupyter as the story surface.

Template

Open starter (and live lake) notebooks/published-findings.ipynb. Kernel: repo .venv via python -m ipykernel install --user --name opsdl --display-name "Python (opsdl .venv)". Select Python (opsdl .venv). Notebook root = lake repo so streamlit/data resolves. Restart & Run All. Do not start a blank notebook.

Recipe (this order)

  1. Delivery cycle — all BizDevTestSecOps stages. Each card shows effort (people_in_role × touch_time), wall-clock (touch + wait), and impact (effort + people_downstream × wait). Measured vs assumed labels. YAML: streamlit/data/cost_of_delay.yaml + role_capacity.yaml. Renderer: streamlit/story_visuals.py → cycle_figure.
  2. Opportunity quadrant — expected efficiency gain vs implementation effort S–XL. Low hanging fruit = high impact AND AI-yes AND low effort. Cells are opportunity names, not agents. YAML: streamlit/data/ai_opportunities.yaml → quadrant_figure.
  3. Deficiency register — Action Register table plus overlapping dE / dK / dI (multi-tag) and routes. Copy CAS triage; do not re-classify.
    - dE + eliminate → drop
    - dE + process/tooling → process/tooling owners (not AI SDLC)
    - dE + automate or delegate → AI SDLC candidate only
    - dK → Team Upskill Engine input (stage, clock, unit, n, role). Do not author modules.
    - dI → staffing / selection
    YAML: streamlit/data/action_register.yaml. Skill Eliminate/Automate/Delegate Triage → Cause tags / Routes.
  4. Promoted stage detail — only streamlit/data/promoted_eda.yaml rows. Empty file (rows: []) is still correct until activity Look until Trusted promotes survivors. The two opening visuals plus the register still satisfy the TSY floor. Do not dump Metric Render Catalog. Do not treat empty promoted-eda as a bug.
  5. Starter mart tabs (drill-down, never first). Skip-when is for missing views; if the view exists, run Athena (shared streamlit/tab_athena.py), pin QueryExecutionId, empty cohort names the window. Do not leave print("Instantiate: …") as the tab body. Compute notes live on skill Present Findings with Streamlit → Starter mart tabs — do not invent a second formula. Order: Commits, Work items, Changes, Pipelines, Load, Defects, Sprints. Median + n. Never mix issue lead/cycle (business days) with MR hours. Live GitHub-only lake (opsdl): instantiate Commits, Work items (volume only — omit lead/cycle without jira_status_segments), Changes (MR hours, not issue days), Pipelines (top failing = workflow name; job-level extract is not in the lake), Load (risk signal). Skip Defects and Sprints unless those views exist.
  6. Pin Athena QueryExecutionId in markdown for any measured number. Numbers come from ranking YAML, not a fresh extract.

Pitfalls

  • AWS login refresh is not Athena AccessDenied. Local Jupyter/awswrangler can fail with AccessDeniedException on CreateOAuth2Token, then LoginRefreshRequired: "The refresh token has expired" / "Please reauthenticate using aws login". Wrangler never reached StartQueryExecution. This is credential session expiry, not lake IAM / workgroup deny. Procedure: (1) terminal aws login (or this org's equivalent aws sso login); (2) confirm aws sts get-caller-identity matches docs/lake-scope-contract.yaml aws_account (live opsdl: 411113550285); (3) Restart the Jupyter kernel, then Restart & Run All — boto3 clients in a running kernel keep the dead token; (4) the login credential provider also needs pip install 'botocore[crt]' (opsdl requirements-eda.txt).
  • Mart tabs must query Athena when contract views exist. Skip-when is for missing views. If the view exists, run Athena (shared streamlit/tab_athena.py), pin QueryExecutionId, empty cohort names the window. Do not leave print("Instantiate: …") as the tab body.
  • streamlit/data/promoted_eda.yaml rows: [] is still correct until activity 398 promotes Look-until-Trusted survivors. TSY floor is still cycle + quadrant + deficiency register. Do not dump Metric Render Catalog. Do not treat empty promoted-eda as a bug in activity 254.
  • Opening with a tab, Feature Cycle Time, or a contributor leaderboard.
  • Exclusive pie of causes (tags overlap).
  • Turning dK rows into a curriculum.
  • Agent / Copilot product names on the quadrant.
Details
Capability Domain:
Analytics Communication
Technology Stack:
Jupyter, Plotly
Created:
1 month, 3 weeks ago
Updated:
1 month, 2 weeks ago
Playbook
Delivery Constraint & Opportunity Analysis

v25.1

View Playbook
Activities Using This Skill 1