Engineering Change Management: Kotter's 8-Step Playbook

I've used Kotter’s 8-step change model more times than I can count — for large platform rewrites, for changing our release process, and even when growing meetups in the Persian tech community. It’s not a silver bullet, but it gives a simple, human-hearted structure to what otherwise becomes a chaotic “do-it-because-I-said-so” project. Below I’ll walk through each step with real examples, the mistakes I made, and practical things you can do right away.

High level: Kotter isn’t about checkboxes. It’s about people. Code and infrastructure are easy compared to changing habits and incentives.

1) Create urgency

  • What it means: Make the pain visible and real.
  • My mistake: Early in my career I announced a migration because “it’s the right thing to do” and expected everyone to follow. No one did.
  • What worked: I collected measurable pain — weekly production incidents, median deploy time (90 → 180 mins), and cost-per-deploy in downtime. Then I told two stories: (a) a bug that cost a customer, (b) the real deploy timeline. Numbers + human stories cut through apathy.
  • Quick tip: show trends, not opinions. A clear chart beats a speech.

2) Build a guiding coalition

  • What it means: You need a cross-functional team of influencers, not just org-chart titles.
  • Example: For a microservice split I picked the release lead, a senior QA, an infra engineer, and a product manager. They didn’t have to be managers — they had credibility.
  • Lesson: Give this group authority to make low-level decisions fast (e.g., tweak CI settings, merge small infra changes) so momentum isn’t stuck in approval workflows.

3) Form a strategic vision and initiatives

  • What it means: A short, crisp statement of where you’re going and why.
  • Example of a bad vision: “Move to microservices.” Vague, scary, and nobody can picture success.
  • Better: “Split the payments module into a service so we can deploy payments independently and cut incident blast radius in half within 6 months.” Concrete, measurable, bounded.
  • Write it down in 1–2 lines and hang it everywhere.

4) Enlist a volunteer army (communicate the vision)

  • What it means: Repeat, repeat, repeat, with different formats.
  • I used all of these: a 5-minute demo at standup, a 15-minute brown-bag with Q&A, an illustrated one-pager, and a progress dashboard.
  • Remember: People are busy. Make it easy to say “I’ll help” — small, well-scoped tasks work best.

5) Remove obstacles

  • What it means: Find and fix the blockers that sap momentum.
  • Real blockers I faced: lack of CI minutes, permissive code ownership rules, or a deployment process that needed admin approvals.
  • Fixes that helped: a small automation sprint (48 hours) to add pipeline caching, a temporary “change freeze” policy exception for the migration team, and a documented rollback plan so teams felt safe.
  • I learned to ask: “What keeps someone from doing a 2-hour task?” Fix that.

6) Generate short-term wins

  • What it means: Deliver tangible, visible wins early.
  • Example win: The first service cut reduced deploy time for a critical path by 70% — we demoed it, celebrated, and used it to recruit engineers from other teams.
  • Don’t overdo: wins should be meaningful and fast (weeks, not quarters). They build trust.

7) Sustain acceleration

  • What it means: After a win, keep going — redouble resources, remove new blockers, and expand scope.
  • Mistake I made: rested on the laurels of a single win and then assumed the rest would happen. It didn’t.
  • Practically: set the next milestone before the first win celebration ends. Keep the dashboard, and keep publicizing progress.

8) Institute change

  • What it means: Make the new way of working standard: hiring, onboarding, docs, KPIs.
  • Example: we added new code review checklists, updated our hiring rubric to favor ownership, and changed OKRs to include “time-to-deploy” as a steady metric.
  • Cultural work is slow. Push for a few irreversible changes (e.g., new CI is required in PR validation) that lock in the new behavior.

Practical checklist I use before starting any change

  • Do I have hard numbers showing the pain? (If not, measure for 2 weeks.)
  • Do I have a tiny coalition of 3–5 people committed for the short-term?
  • Can I write the vision in one sentence that answers: what, why, when?
  • Can I break the work into 2–4 week slices that produce visible outputs?
  • What are the top 3 blockers and who can remove them this week?
  • How will I make this sustainable after the initial push?

A few honest lessons I've learned

  • Top-down mandates fail unless you also build grassroots energy. I used to assume authority equals adoption. Wrong.
  • Small wins beat big promises. Delivering one meaningful improvement is more persuasive than a grand plan.
  • Communication is tactical. Different people need different formats: charts for execs, demos for devs, docs for maintainers.
  • Celebrate but institutionalize. Don’t just throw a party and go back to old habits — lock the change into processes and hiring.

If you’re starting a change today, pick one small measurable win you can deliver in 2–4 weeks, find two people who’ll commit to it beside you, and write the one-sentence vision. I’ve seen that pattern turn skeptical teams into advocates more reliably than spreadsheets and long project plans.

If you want, I can help sketch a 6–8 week plan for a specific change you’re facing (e.g., migrating a module, introducing CI/CD, or changing release cadence). Tell me the problem, the team size, and what's blocking you now — I’ll draft a practical plan with sample actions and metrics.

kotterchangeplanengineering

Comments