Send a long run of zeros down a wire and the receiver loses count — where does one bit end and the next begin? Manchester coding fixes it by putting a transition in the middle of every bit: the data carries its own clock, and the line never drifts. Slide along the stream and read the self-timing waveform.
Each bit becomes two half-bits with a guaranteed mid-bit edge (G.E. Thomas convention: 1 = low→high = 01, 0 = high→low = 10). That edge is a clock tick the receiver locks onto, so no separate clock line and no drift on long runs; and because every bit contributes one high and one low half, the average voltage is constant (DC-balanced), which transformers and AC-coupled links need. A fail-loud self-check throws unless every bit has a mid transition, the encoding is exactly DC-balanced, and decode(encode(bits)) returns the original.
The price is bandwidth: Manchester needs two line-transitions per bit, so it doubles the signalling rate (why gigabit Ethernet moved to denser codes). Self-clocking, DC-balance, and round-trip fidelity are exact and are what the check verifies.