From Traditional Code to Agentic Systems
A Three-Day Architectural Briefing for Experienced Developers
Understand the models. Control the process. Engineer the system around the AI.
Artificial intelligence changes software development in a way that ordinary framework upgrades do not. A developer is no longer working only with systems that follow explicit instructions and return predictable results. Large language models interpret incomplete information, generate probable answers, use external tools, and sometimes produce convincing results that are incorrect. For experienced developers, the challenge is therefore not learning another programming syntax. It is learning how to design dependable software around a component that is powerful, useful, and fundamentally non-deterministic.
This three-day course builds that understanding from the ground up. It begins with the mechanics of modern AI: tokens, embeddings, context windows, retrieval, prompts, tools, and agent loops. It then moves into spec-driven development, where specifications become central engineering artifacts rather than documents that are forgotten once coding begins. GitHub’s current Spec Kit process, for example, formalizes a flow from project principles and specifications through clarification, planning, tasks, analysis, implementation, and convergence.
The course also connects specifications to the broader discipline of harness engineering. The model alone is not the application. The surrounding harness supplies context, instructions, tools, permissions, execution controls, validation, tracing, and feedback. Current industry guidance increasingly treats this surrounding system as the mechanism that turns raw model capability into controlled software behaviour.
The final part examines multi-agent orchestration and asynchronous architectures. Participants will explore why adding more agents does not automatically improve a system, how agents can review or verify one another, and how event-driven platforms such as Kafka can separate long-running tasks, maintain message history, and coordinate independent services. Event-driven agent architectures are increasingly being explored for scalable, loosely coupled multi-agent systems.
The course is entirely conceptual and architecture-focused. Instructor-led demonstrations will make the ideas concrete, but participants will not be required to complete hands-on labs. The instructor brings more than 30 years of industry experience and will present material based on real development pressures, operational risks, and current industry demand rather than an academic treatment of AI.
Learning Outcomes
By the end of the course, participants will be able to:
- Explain how generative AI and large language models produce responses
- Describe tokens, embeddings, context windows, retrieval, RAG, and tool use
- Recognize the limitations, risks, and non-deterministic behaviour of AI systems
- Distinguish prompt engineering from context engineering
- Explain what makes an AI system an agent
- Identify where MCP and external tools fit into an agent architecture
- Structure clear specifications for AI-assisted software development
- Relate spec-driven development to harness engineering and the wider delivery lifecycle
- Position MVP scope within specifications, architecture, and controlled delivery
- Describe single-agent, multi-agent, and event-driven orchestration patterns
- Plan validation, observability, security, and human approval controls
- Evaluate when agentic architecture is useful and when conventional software is safer
Prerequisites
- Professional software development experience
- Familiarity with application architecture and APIs
- Basic understanding of databases and distributed systems
- General awareness of cloud services and message-based integration
- No previous AI, machine-learning, or data-science experience required
- No specialised mathematics required
Training Outline
- AI Foundations for Experienced Developers
- What Artificial Intelligence Actually Is
- AI, machine learning and generative AI
- Training versus inference
- Probability-based output generation
- Deterministic software versus probabilistic systems
- Common AI capabilities and misconceptions
- Large Language Model Fundamentals
- Model inputs and outputs
- Tokens and tokenization
- Context windows
- Embeddings and semantic similarity
- Attention and response generation
- Model parameters and model size
- Supplying Knowledge and Context
- Prompt engineering
- Role prompting
- System, user and tool instructions
- Context engineering
- Context selection and ordering
- Retrieval-Augmented Generation
- Vector search and knowledge retrieval
- Memory versus retrieved context
- Models, Tools and External Systems
- Function and tool calling
- Model Context Protocol
- APIs, databases and enterprise services
- Structured outputs
- Tool permissions and boundaries
- Model, tool and application responsibilities
- Understanding AI Agents
- Model, instructions, tools and agent loop
- Goals, decisions and actions
- Role-based agent design
- Workflows versus agents
- Single-agent patterns
- Autonomy levels
- Human approval points
- AI Limitations and Risks
- Hallucinations
- Non-deterministic behaviour
- Knowledge and context limitations
- Bias and unsafe output
- Prompt injection
- Data leakage
- Cost, latency and reliability
- Appropriate and inappropriate use cases
- What Artificial Intelligence Actually Is
- Spec-Driven Development and Harness Engineering
- From Code-First to Spec-Driven Development
- Purpose of spec-driven development
- Specifications as primary engineering artifacts
- Requirements versus implementation detail
- Predictable development versus unstructured AI coding
- Spec-driven development and traditional SDLC practices
- Specification Structure
- Problem statement
- User and business outcomes
- Scope and exclusions
- Functional requirements
- Non-functional requirements
- Acceptance criteria
- Constraints and assumptions
- Dependencies and unresolved questions
- Specification Workflow
- Project principles and engineering rules
- Specification creation
- Requirement clarification
- Technical planning
- Task decomposition
- Consistency checks
- Implementation control
- Review and convergence
- Specification maintenance
- MVP within Spec-Driven Delivery
- MVP boundaries
- Essential versus optional capabilities
- Risk-first prioritisation
- Vertical delivery slices
- Measurable completion criteria
- Controlled expansion beyond MVP
- Understanding Harness Engineering
- Model capability versus system capability
- Instructions and context assembly
- Tool registration and execution
- Permissions and sandboxing
- State and memory management
- Validation and quality gates
- Retries and recovery
- Logging, tracing and evaluation
- Connecting Specifications to the Harness
- Specifications as agent context
- Repository guidance and coding rules
- Task-specific context
- Automated checks
- Test and review feedback
- Progress tracking
- Human decision points
- Optimisation, Security and Governance
- Context size and relevance
- Model selection
- Cost and latency controls
- Secure tool access
- Secrets and sensitive data
- Least-privilege execution
- Auditability and traceability
- Architecture and security review gates
- From Code-First to Spec-Driven Development
- Multi-Agent Orchestration and Event-Driven AI Systems
- Why Multi-Agent Systems Exist
- Limits of a single agent
- Role separation
- Specialist agents
- Parallel and sequential work
- Coordination overhead
- When multiple agents are unnecessary
- Multi-Agent Design Patterns
- Coordinator and worker
- Planner and executor
- Generator and reviewer
- Agent-as-tool
- Supervisor and specialist
- Debate and consensus
- Hierarchical orchestration
- Reliability and Verification
- Hallucination containment
- Output validation
- Agents verifying agents
- Independent review
- Confidence and evidence
- Deterministic checks
- Retry and fallback policies
- Human-in-the-loop controls
- Asynchronous Agent Architecture
- Synchronous versus asynchronous execution
- Events, commands and responses
- Producers and consumers
- Topics, queues and subscriptions
- Kafka as an event backbone
- Decoupled agent communication
- Long-running tasks
- Correlation and workflow state
- Failure Management
- Timeouts and partial failures
- Duplicate and out-of-order messages
- Idempotency
- Retry limits
- Dead-letter handling
- Compensation and recovery
- Escalation to human operators
- Observability and the Black-Box Problem
- Agent execution traces
- Prompt and context records
- Tool-call histories
- Message lineage
- Decision and approval logs
- Metrics and operational alerts
- Reproducibility limitations
- Audit and incident investigation
- Production Governance
- Agent identity and permissions
- Data access boundaries
- Approval thresholds
- Model and prompt versioning
- Evaluation gates
- Operational ownership
- Safe deployment and rollback
- Continuous monitoring
- Why Multi-Agent Systems Exist
Disclaimer
This outline is intended as a structured guideline for a three-day, instructor-led programme. The trainer may adjust the sequence, emphasis, terminology, demonstration scope, or depth of individual topics according to participant experience, organisational priorities, available time, and relevant developments in the field. Such amendments may be made at the trainer’s professional discretion without prior notice, while preserving the overall learning objectives of the programme.
Practical, connected learning
My wider training approach brings hands-on implementation and systems thinking together, connecting technology with real operational needs.