Man working behind desk on laptop
Blog

AI can't take my job yet

The world of software development is undergoing a structural shift. Rapid advances in AI models and agent-based tooling are turning speed of delivery into a competitive necessity rather than a bonus. These changes are happening faster than most organisations can adapt, creating both opportunity and uncertainty.

Whether AI truly delivers the productivity often claimed is not the only question that matters. A more pressing one is what happens if the industry reorganises around AI-assisted development regardless. Adoption may become less about belief and more about necessity, driven by evolving tooling, hiring expectations, and competitive pressure. This affects organisations and individuals alike.

AI is already reshaping development primarily across these three dimensions:

  1. Human interaction with software is increasingly mediated by AI rather than traditional interfaces. AI will even generate personal user interfaces on demand.
  2. Code production capacity will become cheaper as agents can take on most of the grunt work.
  3. Customers are demanding AI-native capabilities within products, raising expectations of what software should be able to do.

This shift is particularly significant because it challenges a core principle of traditional software engineering: determinism. Developers are trained to build systems that produce predictable outputs given the same inputs. AI systems do not behave this way. They are inherently non-deterministic, which requires a different mindset. Instead of eliminating variability, developers must learn to shape and manage it.

From experimentation to reliable workflows

This introduces a new balance between precision and speed. Not all software requires absolute determinism. Many applications can tolerate variation as long as outputs are reviewed and corrected. In this environment, working with AI agents closely resembles collaborating with junior developers. The output can be valuable, but it requires clear guidance, structured inputs, and careful validation.

As a result, the role of the developer is evolving. Rather than focusing primarily on writing code, developers increasingly define constraints, shape tasks, review outputs, and decide when results meet an acceptable standard. Engineering rigor does not disappear, but it moves. Judgment and system design become more important than syntax alone.

Early experimentation with AI often highlights the gap between expectation and reality. Simple or exploratory tasks may produce impressive results quickly, but more complex workflows tend to break down. Outputs become inconsistent, errors repeat, and progress slows. These frustrations are often not caused by the limitations of the models alone, but by how they are used.

A key insight is that vague prompts produce unreliable results. Models are designed to complete tasks, even when instructions are incomplete. This means that the model will make assumptions in order to complete the task, making it essential to provide clear, structured input. However, prompt quality is only part of the solution. The broader concept of context is more important.

Context includes everything an AI model uses to generate a response: the task description, relevant code, documentation, constraints, and supporting instructions. Reliable AI-assisted development depends on shaping this context deliberately. More context does not necessarily improve results. In fact, excessive or unfocused context can degrade performance and lead to inconsistent behavior.

The context needs to be consciously shaped, following these three principles:

  • Context selection: Know the limits of the tool you’re working with, where limit is referring to the number of tokens that fit in the task sent to the model. Even if a model’s official maximum token limit has not yet been exceeded, it may still not perform optimally during long conversations. The key is to add the right amount of information to get the desired output.
  • Context isolation: Each agent works on a single task inside its own sealed bubble with only the precise context it needs. An orchestrator hands out this scoped context, and nothing leaks between the agents. This keeps subagents on track. Also, in chat-based workflows, this can be implemented by always asking a new question or starting a new task in a fresh session.
  • Context reduction: Keep an agent’s context manageable by trimming, summarising, and only adding information when needed. Two elements are always included: the task prompt and an AGENTS.md file that defines the project’s rules. Additional information acts as optional, focused modules that the model loads only when relevant.

The rise of spec-driven development

This is where spec-driven development becomes especially valuable. Instead of relying on informal prompts, developers define work through clear specifications. These specifications describe what needs to be built, how success is measured, and what constraints apply. By externalising intent, they reduce ambiguity and provide a stable reference for both humans and agents.

Well-defined specifications also include acceptance criteria, allowing AI systems to evaluate whether their output meets expectations. Without this, agents tend to assume success even when the result is incorrect. Specifications therefore serve as both guidance and validation, helping stabilise inherently non-deterministic systems.

Another important concept is the idea of reusable workflows, often referred to as skills. These capture recurring patterns, best practices, and quality standards. Over time, they allow teams to encode their engineering judgment into the development process. Instead of repeating instructions, developers build a shared layer of guidance that improves consistency and efficiency.

These workflows are not static. They improve through iteration. After each interaction, developers can analyse where the AI struggled, where it required intervention, and what information was missing. These insights can then be incorporated into specifications and workflows, gradually increasing reliability. Small improvements, applied consistently, compound over time.

The future of software development

The broader impact of this shift is a change in how development work is structured. Writing code remains important, but it is no longer the sole focus. Increasingly, developers define intent, orchestrate workflows, and evaluate results. AI systems handle more of the execution, while humans provide direction and oversight.

This does not diminish the role of the developer. It emphasises a different set of skills. The value of clear thinking, system design, and critical judgment increases. Rather than replacing expertise, AI changes how and where that expertise is applied.

The transition from prompt-based experimentation to structured, context-aware workflows marks the difference between casual use and professional adoption. It reflects a broader shift in the discipline: from writing every line manually to designing systems that produce reliable outcomes with the help of intelligent tools.

The result is not just faster development, but also a different kind of developer.

Share this article