> ## Documentation Index
> Fetch the complete documentation index at: https://site.aspect.build/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Overview of Aspect's Bazel 203 training on the human side of Bazel migrations - sequencing rollouts, operating CI, and making Bazel a seamless DX.

{!user.loggedIn ? (
<Tip>
<a href="https://auth.aspect.build/oauth/account/sign-up">Sign up</a> for a free Aspect account to access the full training course. Already have one? <a href="/login?redirect=%2Flearning%2Fbazel-203">Log in</a>.
</Tip>
) : null}

**Goal**: Make Bazel a seamless part of the developer experience.

## Migrating to Bazel

Now that we've learned the hard technical concepts, we'll switch gears and begin
discussing the human side of effectively migrating from a legacy build setup to Bazel.

We find this is the hardest part of using Bazel.
As Google leader Bill Coughran [used to say](https://library.gv.com/engineering-is-easy-people-are-hard-1496614e5fc0), "Engineering is easy, People are hard"

This can apply both when creating a new Bazel monorepo, but also over time as teams bring their code from their other repository.

By the end of this section, you'll have a high-level sense for sequencing a migration that's less
disruptive and risky, and gives early benefits.

<Note>
  Want help with your Bazel migration effort?
  We offer [consulting and support services](/services)
</Note>

[Incubate Net Promoters](/learning/bazel-203/net-promoters)

[Don’t disrupt workflows](/learning/bazel-203/leave-workflows)

[Change one thing at a time](/learning/bazel-203/change-one-thing)

[Ratchet Mechanism](/learning/bazel-203/ratchet)

[Gradient Ascent](/learning/bazel-203/gradient-ascent)

[Closing the Loop](/learning/bazel-203/close-loop)

[Patching external libraries and Bazel modules](/learning/bazel-203/patching)

[Leaving code alone](/learning/bazel-203/leave-code-alone)

## Continuous Integration

We expect Bazel to give us a fast red/green signal for Pull Requests, and deliver artifacts from
the `main` branch.

By the end of this section, you'll have run a PR with your changes against a simple GitHub Actions CI.

[Bazel enables the “integration” in CI](/learning/bazel-203/ci-integration)

[Operating an efficient Continuous Integration system](/learning/bazel-203/operate-ci)

[Shared green vs. per-project pipelines](/learning/bazel-203/shared-green)

## Continuous Delivery

The “D” in “CD” can stand for either Delivery or Deployment depending on who you ask. We believe Bazel’s job should be Delivery: built and tested artifacts should be pushed to a registry automatically. A system for deploying artifacts into a dev environment is coupled with promoting them to staging or production, so we believe that’s downstream of Bazel.

[Versioning artifacts in a monorepo](/learning/bazel-203/versioning)

[Stamping VCS info into artifacts](/learning/bazel-203/stamping)

[Selective Delivery of changed artifacts](/learning/bazel-203/selective-delivery)

## Formatting and Linting

Presenting Lint results to developers is key to how well it’s adopted.

We wrote [https://github.com/aspect-build/rules\_lint](https://github.com/aspect-build/rules_lint) to unify formatting and linting across all languages. Watch Alex’s BazelCon talk for more details.

<iframe className="w-full aspect-video rounded-xl" src="https://www.youtube.com/embed/CnK-RAdfrpI" title="YouTube video player" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen />

## Preserving the economy of scale

Once you've deployed Bazel to a large monorepo with hundreds of developers, you'll have to keep things fast and support product engineers who do not care about build systems and want to Just Work™️

By the end of this section, you might feel like an undervalued superhero municipal sewer engineer. 😁

[Defend your leverage](/learning/bazel-203/defend-leverage)

[Metaphor: village to city](/learning/bazel-203/metaphor-municipal-services)

[Prevent "weeds"](/learning/bazel-203/pull-weeds)
