"...the greatest part of the questions and controversies that perplex mankind depending on the doubtful and uncertain use of words, or (which is the same) indetermined ideas..."
-- John Locke, An Essay Concerning Human Understanding, The epistle to the reader (1690)
π‘ What Is This About?
This year, many terms have emerged describing a new development tool -- AI.
Immediately, as always, discussions began about the taste of different-colored pencils, because some believe they can derive pleasure from it, while others think it's only for production, and even then, only after the church's blessing.
In principle, you can take any rules or best practices of development or engineering and replace the name of any tool with "AI," and you can smack your opponents right on the head with them.
While willing experts are feeling up this elephant and arguing about what they've touched or felt, let's try to establish some terminology.
We need something simple and understandable, so we can immediately point to where we are on the map.
I, too, can use smart words, so let's try a paradigmatic approach.
From here on -- no irony. Let's try to establish working definitions.
The goal of this document is not to evaluate AI as "good/bad," but to provide a common language for discussion: what exactly we're doing now, what level of risk we're accepting, and which practices are appropriate for the chosen approach.
π§© Paradigms: Brief Descriptions
π Vibe Coding
Vibe Coding is an approach where a developer describes desired functionality in human-understandable language and generates code using AI without detailed review or editing of the result. The emphasis is on experimentation, rapid prototyping, and trust in AI rather than on manually writing or checking each line of code.
Intent β AI β Code
- AI writes code based on high-level intent
- Minimal review, minimal structure
- Maximum speed, maximum risk
Use when
- Prototypes
- Demos
- Spikes
- One-off code
Never use for
- Production systems
- Core logic
- Security-sensitive paths
π AI-Assisted Development
AI-assisted development (AIAD) is the use of artificial intelligence tools to support the developer at various stages of development: from writing code, testing, and debugging to optimization and automation of repetitive tasks. The developer remains an active participant in the process, and AI acts as an assistant that offers ideas, automates routine tasks, and improves code quality.
Human-led development using AI as a tool
- Human owns architecture and decisions
- AI accelerates implementation
- Standard reviews and testing apply
Use when
- Writing production features
- Maintaining long-lived codebases
π AI-Powered Pair Programming
AI assistants work alongside the developer in real time, suggesting alternatives, detecting errors, optimizing code, and even generating new features based on context. This approach reduces debugging time and improves project architecture.
Human β AI in real time
- Continuous dialogue
- AI suggests, human decides
- Comparable to pair programming with a strong junior/mid developer
Use when
- Day-to-day development
- Learning unfamiliar codebases or languages
π Generative AI for Specification and Design
AI is used for automatic generation of architectural decisions, diagrams, documentation, and even test scenarios based on requirements. This allows for quickly obtaining a system prototype and verifying its compliance with business requirements.
Requirements β AI β Specifications / Diagrams
- AI helps before coding
- Generates draft specifications, architecture diagrams, and test plans
- Human reviews and refines
Use when
- System design
- Architecture exploration
- Early planning stages
π AI-Augmented Spec-Driven Development
AI-Augmented Spec-Driven Development is a paradigm where structured specifications (requirements, architectural constraints, acceptance criteria, etc.) are the primary source for AI-powered code generation. These specifications become the single source of truth that AI transforms into implementation, tests, and documentation. This approach ensures high alignment between requirements and implementation, reduces error risks, and increases development speed.
Specification β AI β Code + Tests
- Specification is the source of truth
- AI generates code and tests based on specifications
- Highest predictability and maintainability
Use when
- Core business logic
- Financial, security, or regulated systems
- Large codebases with long lifespans
π AI-Driven Development (AIDD)
This is a paradigm where AI is deeply integrated into all stages of development -- from design and code writing to testing, optimization, and even deployment. The developer and AI work as partners, significantly increasing productivity and code quality.
Human + AI jointly drive the process
- AI participates in design, coding, testing, and optimization
- Human remains responsible for strategy and constraints
Use when
- Teams are intentionally adopting AI into SDLC
- Clear constraints and evaluation processes exist
π Autonomous Refactoring and Adaptive Coding
AI automatically analyzes and refactors code, identifying potential problems, suggesting optimizations, and adapting to changes in the project. Such systems can learn from large amounts of code to better understand the project's context and requirements.
Existing code β AI β Improved code
- AI refactors, optimizes, and reduces technical debt
- Operates under strict rules and is subject to evaluation
Use when
- Controlled refactoring
- Performance optimization
- Style and consistency improvements
π Pipeline Synthesis and Security Scanning Orchestration
AI can automatically generate CI/CD configurations, analyze code security, identify technical debt, and suggest ways to eliminate it. This reduces risks and accelerates the deployment process.
Policy β AI β CI/CD and security automation
- AI generates and maintains pipelines
- Automates security scanning and policy enforcement
Use when
- DevSecOps automation
- Reducing operational risk
π AI-Agent Driven Development
AI agents can independently perform certain tasks -- from generating code according to specifications to automatically creating tests, monitoring, and even fixing bugs in production. This allows creating self-protecting systems that minimize human intervention.
Goal β AI Agents β Execution
- Autonomous agents decompose and execute tasks
- Minimal human intervention
Use with extreme caution
- Internal tools
- Clearly bounded automation tasks
π Self-Healing Systems
AI agents monitor the system in production, detect problems, generate patches, and automatically apply them, ensuring high reliability and minimizing downtime.
Runtime signals β AI β Fix β Deploy
- AI monitors production and automatically applies fixes
- Highest autonomy, highest risk
Not recommended by default
- Only with strict safeguards
- Only for non-critical systems
π Comparison Table
| Paradigm | Who Leads | Source of Truth | Typical Use | Production Readiness | Risk |
|---|---|---|---|---|---|
| Vibe Coding | AI | Prompt | Prototypes, demo | β | π₯π₯π₯ |
| AI-assisted Dev | Human | Code | Production features | β | π‘ |
| AI Pair Programming | Human + AI | Code | Daily development | β | π‘ |
| Generative Spec & Design | Human | Spec | Architecture, planning | β οΈ | π‘ |
| Spec-Driven + AI | Specification | Spec | Core systems | β β | π’ |
| AI-Driven Dev | Human + AI | Mixed | End-to-end dev | β | π‘ |
| Autonomous Refactoring | AI | Code + Rules | Tech debt, cleanup | β οΈ | π‘ |
| Pipeline & Security AI | Policy | Policy | CI/CD, Security | β | π‘ |
| AI-Agent Driven Dev | AI Agents | Goal / Policy | Automation | β οΈ | π₯π₯ |
| Self-Healing Systems | AI | Runtime signals | Ops / reliability | β οΈβ οΈ | π₯π₯π₯ |
π³ AI Development Paradigms -- Decision Tree
A decision tree for determining what we're discussing at any given moment.
This tree defines the development mode, not a specific tool.
π’ Policies
π’ Allowed by Default
- AI-assisted development
- AI pair programming
- Refactoring with review
π‘ Allowed with Explicit Approval
- AI-augmented spec-driven development
- AI-generated code in core logic
- Any AI in regulated domains
π΅ Operations Only
- CI/CD generation
- Security scanning
- Dependency and policy enforcement
π΄ Explicitly Prohibited
- AI-agent-driven development in production
- Self-healing systems
- Autonomous production changes without human approval
Overall
AI doesn't change engineering. It just makes the mistakes faster -- or more manageable.

Top comments (0)