Skip to main content

drift

A five-question terminal reading of the gap between what your organisation says it does and what it does in practice. Companion utility to Leading Agile When No One Agrees by Kyle Hauslaib.

The score is for the person scoring. The tool never sends data anywhere.

  DRIFT CHECK
  Five questions. Score 1 to 5. The score is for you.
  Reflect on the past three months,
  not your best week or your worst sprint.

  1 = rarely true   3 = sometimes true   5 = consistently true

  01  Information
      The information reaching strategic decision-makers matches
      what teams privately discuss about the same work.
      Score (1-5): 3
  ...

Install

Requires Python 3.10 or later. No third-party dependencies.

pip install drift-check

Or run from a clone without installing:

git clone https://github.com/hauslaib/drift-cli
cd drift-cli
python3 -m drift

Use

Run the five-question check interactively:

drift

Save the result as a local JSON file under ~/.drift/scores/:

drift --save
drift --save --label "alpha team Q2"

Show your saved scores over time:

drift --history

Get a JSON object on stdout (for scripting):

echo "3 4 2 5 3" | drift --json

What this tool does, and does not do

It walks the five-question Drift Check from the front matter of the book, collects scores, computes the total, and prints the interpretation. If you ask it to save, it writes a dated JSON file under your home directory.

It does not send data anywhere. It does not phone home. It does not call any network API. There is no analytics, no telemetry, no opt-in or opt-out because there is nothing to opt out of. The score is yours and stays on the machine you ran the tool from.

This is a design choice, not an oversight. The book argues that the moment the Drift Check becomes a metric reported upward, it stops measuring the Drift and starts producing it. The tool enforces this in code.

How to use the check in a team

The practical pattern from the book:

  1. Each person on the team scores independently.
  2. The team compares scores in retrospective.
  3. The team decides which low-scoring dimension to attend to in the next sprint.

Do not roll the scores up beyond the team. The check is a prompt for a more honest conversation, not a number for someone above you to track.

Reading your score

21 to 25   Low Drift
14 to 20   Moderate Drift
13 or below  Significant Drift

The book covers each band in detail. The companion site at https://kylehauslaib.com/companion/ has a printable version of the check plus six related practical-tool worksheets.

Development

git clone https://github.com/hauslaib/drift-cli
cd drift-cli
python3 -m drift                  # run interactively
python3 -m pytest tests/          # run the tests

The package has no runtime dependencies. The test suite uses pytest.

File layout

drift-cli/
├── drift/
│   ├── __init__.py
│   ├── __main__.py        CLI entry point
│   ├── check.py           Domain model (Question, Reading, Check)
│   ├── interface.py       Terminal interaction
│   └── storage.py         Local-only score storage
├── tests/
│   ├── test_check.py
│   └── test_storage.py
├── README.md
├── LICENSE
├── LICENSE-CODE.md
├── LICENSE-CONTENT.md
├── CONTRIBUTING.md
└── pyproject.toml

Licences

Code under MIT (LICENSE-CODE.md). The question text, reading bands, and prose are under Creative Commons Attribution-ShareAlike 4.0 International (LICENSE-CONTENT.md), matching the companion repository at https://github.com/hauslaib/leading-agile-companion.


Kyle Hauslaib, 2026.

Metadata

Release files for drift-check 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for drift-check 1.0.0
File Size Uploaded
drift_check-1.0.0.tar.gz 13.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for drift-check 1.0.0
File Interpreter ABI Platform
drift_check-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 27.2 kB

Release files / drift_check-1.0.0.tar.gz

Download URL drift_check-1.0.0.tar.gz
Size 13.6 kB
Tags Source
SHA-256 checksum
How to use checksums
3b362fd6d6a9a6ae5890e05a39ede4fc4e0314b60bc4e7b859293273bf235778
BLAKE2b-256 checksum
How to use checksums
e85a2e2df5096e356ed435476c2ee667810c3b45dc14df232825dcf176e61d29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Release files / drift_check-1.0.0-py3-none-any.whl

Download URL drift_check-1.0.0-py3-none-any.whl
Size 13.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
91be2a983169bc502a5a57f3f7e92c041c6db9777cb69305fc913474802b5526
BLAKE2b-256 checksum
How to use checksums
0edbf9ba4a050d8b609ebcb0ce2be263d99e84d097da4c520f1a5208d788f280
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page