Managing AI Drift
What Is AI Drift?
AI drift happens when AI gradually moves away from your original intent. Like a boat without anchor, small currents compound into major course changes.
Types of Drift
1. Complexity Drift
Starts simple, becomes enterprise.
Request 1: "Add user login"
AI: Simple email/password
Request 2: "Add password reset"
AI: Adds email service, queues, tokens
Request 3: "Add remember me"
AI: Adds Redis, session management, device tracking
Request 4: "Add social login"
AI: OAuth, SAML, OpenID, full identity provider
Suddenly you’re building Auth0.
2. Style Drift
Inconsistent patterns across codebase.
# Monday - functional style
def process_user(user_data):
return transform(validate(user_data))
# Tuesday - OOP style
class UserProcessor:
def process(self, user_data):
self.validate()
self.transform()
# Wednesday - procedural style
user_data = get_user()
validate_user(user_data)
transform_user(user_data)
3. Architecture Drift
Original design morphs unrecognizably.
Start: "Simple REST API"
Drift 1: Add GraphQL "for flexibility"
Drift 2: Add WebSockets "for real-time"
Drift 3: Add gRPC "for performance"
End: Four different API protocols
4. Scope Drift
Features multiply beyond intent.
Original: "Todo app"
+ "Add categories"
+ "Add sharing"
+ "Add comments"
+ "Add notifications"
= Project management suite
5. Technology Drift
Stack grows unnecessarily.
Start: React + Node
+ Redux "for state"
+ MongoDB "for flexibility"
+ Docker "for deployment"
+ Kubernetes "for scaling"
+ Kafka "for events"
= Overengineered todo app
Why Drift Happens
Can be due to numerous reasons
1. AI Lacks Project Context
Each request seems isolated. AI doesn’t see the big picture. Most common reason is due to bad context management.
2. AI Optimizes Locally
Makes each piece “better” without considering whole.
3. Pattern Matching Gone Wild
AI applies patterns even when inappropriate.
4. No Persistent Memory
Can’t remember “we decided to keep it simple.”
Drift Recovery
When You’ve Already Drifted
- Acknowledge the drift
"We've drifted from simple to complex.
Let's identify what we can remove."
- Document current state
"List all technologies and patterns we're now using"
- Identify core requirements
"What are the actual must-haves vs nice-to-haves?"
- Plan simplification
"How can we meet core requirements with minimal stack?"
- Incremental rollback Don’t rewrite. Gradually simplify.
The Drift Dialogue
Catching Early Drift
AI: "We should add caching for performance"
You: "Is performance actually a problem?"
AI: "Not yet, but..."
You: "Let's wait until it is"
Redirecting Architecture Drift
AI: "This would be cleaner with microservices"
You: "We're keeping monolith for simplicity"
AI: "Understood, here's monolith version"
Preventing Scope Drift
AI: "While we're at it, should we add..."
You: "No, let's finish current feature first"
Positive Drift
Not all drift is bad. Sometimes AI suggests genuinely better approaches.
Evaluating Positive Drift
Ask:
- Does this simplify or complicate?
- Does this align with project goals?
- Is this solving real or imagined problems?
- What’s the maintenance cost?
Accepting Good Ideas
AI: "Instead of custom auth, use NextAuth"
You: "That actually simplifies things. Let's do it."
The Meta-Strategy
Best drift management is prevention:
- Clear vision from start
- Explicit constraints
- Regular reality checks
- Simplicity as core value
Remember: AI will always suggest more. Your job is knowing when to say no.