Pipelines as the only path
A scikit-learn Pipeline wraps preprocessing and the estimator into a single fittable, predictable, and serializable object. The discipline is to make the pipeline the only path from raw rows to predictions. No notebook cell preprocessing, no hand-applied transformations, no "oh I forgot to scale at predict time".
Why this saves you
The pipeline serializes correctly with joblib, ships to production as one artifact, and applies identical transformations at predict time. Cross-validation runs the entire pipeline per fold, so leakage from preprocessing is prevented automatically. GridSearchCV can tune across both the preprocessing and the estimator at once.
The discipline
Treat the pipeline as the contract between training and serving. If you cannot reproduce a prediction with pipeline.predict(raw_row), the pipeline is incomplete and you have a bug waiting to ship.