When code stops being the differentiator: the developer's role with generative AI
For most of the profession's history, the ability to turn an idea into working code was the scarce skill, and teams were organized around it. That is what a tool now does for a relevant share of the operational work, provided it receives good context and clear instructions. Writing code remains necessary, but it stopped being a competitive advantage on its own. This article follows the consequences: for what a developer is paid for, for how a team learns, for what technical leadership means, and for the shape of the products themselves.[2,4]
1. Code stopped being a differentiator on its own
Controlled studies measure the shift. Developers with an AI assistant completed a well-specified task about 55% faster than the control group; consultants with access to a large model produced more and higher-rated work inside the tasks the model handles well, and worse work outside them.[2,3] The second half of that finding is the important one. The tool moves the boundary of what is cheap to produce, and it also moves the place where mistakes are made: from the typing to the deciding.
The differential therefore migrates. It goes to the person who can define the problem precisely enough for the output to be checkable, evaluate the output against the system it will live in, combine architecture with prompting so that generated pieces fit the design instead of fighting it, and turn automatic generation into a reliable delivery — reviewed, tested, owned. The professional value of a developer changes accordingly: less mechanical execution, more technical judgement.
- Before: the bottleneck was producing a correct implementation; review was a formality on top of it.
- Now: a candidate implementation is cheap; the bottleneck is knowing what to ask for, and knowing whether what came back is right for this system.
Practise: open in the Lab: Exercise 1, What became cheap
2. AI amplifies competence; it does not fix deficiency
A frequent misreading of the productivity studies is that the tool levels everyone up. It does not. In routine, well bounded work, less experienced people gain the most, because the tool supplies patterns they had not yet internalized.[1] In work that requires judgement — architecture, trade-offs, product context — the tool amplifies the quality of the reasoning it receives. A vague request with no acceptance criteria produces plausible code that solves the wrong problem, and it produces it quickly. A precise request from someone who knows the system produces reviewed code that fits, and it produces it much faster than before.
Equation (1) is a mental model, not a law: the quality of what comes out is roughly the quality of the reasoning that went in, multiplied by the leverage L of the tool. Leverage is large and it is the same for everyone who pays for the same model. What differs between professionals is the first factor, and a multiplier cannot turn a small number into a large one. That is why the real gain comes from the combination: technical foundations and intentional use of the tool, not either alone.[3]
- The problem, not the solution. State what has to be true afterwards, the inputs, the failure cases and the constraints (performance, compatibility, security).
- Context the model cannot guess. The conventions of this codebase, the interfaces the new piece must respect, the reasons behind an unusual decision.
- Acceptance criteria you can run. A test, an example input with the expected output, a checklist for the review.
- A place in the architecture. Which module, which boundary, what it may and may not depend on — so the generated code lands where it belongs.
Practise: open in the Lab: Exercise 2, Amplifier
3. A transition like the ones before it
The current change resembles the move from languages close to the machine to languages of higher level. Each step of that ladder abstracted away a layer of operational work — registers and memory, then plumbing and garbage collection, then infrastructure — and each time a group of professionals rejected the step out of attachment to the previous model, lost productivity and relevance despite mastering the old paradigm.[5,7] AI-assisted development takes the same role: it abstracts part of the routine implementation and moves the focus to decisions of a higher level.
| Transition | What became cheap | What grew in value | Who lost ground |
|---|---|---|---|
| Assembly → high-level languages | Register allocation, manual memory layout | Algorithms, data structures, readability | Those who equated skill with knowing the machine |
| Hand-rolled code → frameworks | Plumbing, boilerplate, common infrastructure | Domain modelling, design, integration | Those who rewrote what the framework already did |
| Own servers → cloud | Provisioning, capacity, physical operations | Architecture, cost, resilience | Those who defended the server room |
| Typing → AI-assisted development | Routine implementation, first drafts, tests, docs | Judgement, criteria, system design | Those who resist on principle |
Table 1 — Four transitions with the same shape. Resisting on principle did not preserve the value of the old skill; it produced obsolescence. The question in each case was never whether the abstraction was perfect, but whether the professional moved to the layer above it.[5]
4. Continuous learning became an operational requirement
The previous article described the ecosystem as fast-moving. The new point here is that following it requires filtering, not indiscriminate consumption. Models, APIs and tools appear at a rate that makes studying the whole market impossible, and trying to do so is itself a way of falling behind.[6] Professional maturity now includes building a triage mechanism: a small set of stable criteria that decides, in minutes, whether a novelty is relevant to your technical and business context. Learning continuously stopped being an academic differential and became part of the operation, like keeping dependencies up to date.
A triage does not have to be sophisticated. It has to be explicit, so that it can be shared with the team and revised. The script below is the whole idea in a few lines: each item is scored against the stack you actually run, the kind of change it brings and its maturity, and only the top of the list earns an afternoon of attention.
from dataclasses import dataclass, field @dataclass class Item: name: str tags: set # what it touches: {"python", "llm-api", "rag", "ci", ...} kind: str # "model" | "api" | "tool" | "technique" | "paper" maturity: int # 0 = announcement, 1 = preview, 2 = stable release, 3 = widely adopted changes_practice: bool # would it change HOW we work, not only how fast? MY_STACK = {"python", "llm-api", "rag", "ci", "observability"} def score(item: Item) -> float: """Relevance to OUR context: overlap with the stack, maturity and whether it changes practice. The weights are the team's criteria — explicit, shareable, revisable.""" overlap = len(item.tags & MY_STACK) / max(len(item.tags), 1) return (0.5 * overlap + 0.3 * (item.maturity / 3) + 0.2 * (1.0 if item.changes_practice else 0.0)) def triage(items, budget=3): # everything below the cut is noted and ignored on purpose; the budget is the number of things we can really study this week ranked = sorted(items, key=score, reverse=True) return ranked[:budget], ranked[budget:] study, skip = triage([ Item("new hosted model, bigger context", {"llm-api"}, "model", 2, False), Item("agent framework 0.1", {"python", "llm-api"}, "tool", 0, True), Item("eval harness for RAG", {"rag", "ci", "python"}, "tool", 2, True), Item("image model release", {"images"}, "model", 3, False), ]) print([i.name for i in study]) # the RAG eval harness comes first: our stack, stable, changes practice
Practise: open in the Lab: Exercise 3, Continuous learning
5. Doing differently matters more than doing faster
The main change is not the speed of coding. It is the possibility of redesigning how software is conceived, delivered and used. Generation changes the workflow (a specification becomes a draft in minutes), the interface (a form can be replaced by a question), user support (documentation can answer instead of being searched) and even the logic of interaction with the product. This moves the discussion from individual productivity to the reinvention of the experience.[4,9] Teams that use AI only to accelerate local tasks capture less value than teams that rethink the whole product with it.
| Area | Local acceleration (doing the same, faster) | Redesign (doing it differently) | Value captured |
|---|---|---|---|
| Workflow | Autocomplete in the editor, faster boilerplate | Specification-first: the draft is generated, the team reviews and decides | Low → High |
| Interface | The same screens, with a help chatbot in the corner | Intent in natural language, with confirmation before acting | Low → High |
| Support | Draft replies for the support team | Answers grounded in the product's own documentation and data, with escalation | Medium → High |
| Product logic | Unchanged | Agents that execute multi-step tasks under a person's approval | None → High, with risk |
Table 2 — Local acceleration versus redesign, by area. The first column is where most teams start and where most of them stop; the second is where the value is, and also where governance becomes necessary.[9,12]
Practise: open in the Lab: Exercise 4, Faster or different
6. Technical leadership orchestrates people and AI
Technical leadership used to mean organizing the backlog, guaranteeing delivery and keeping technical debt under control. It now also means deciding what stays with the team and what can be delegated to AI systems, while preserving quality, governance and strategic focus. That is a new allocation skill: people concentrate on decision, validation and solution design; the AI absorbs part of the operational effort; and someone owns the boundary between the two and the outcome of both.[11,12]
The field data supports the caution built into the figure. A large yearly survey of engineering teams found that higher AI adoption came with gains in documentation and code quality, and at the same time with a measurable drop in delivery stability and throughput — a trade-off the report attributes to neglected fundamentals such as small batch sizes and robust testing.[12] Delegation without quality gates moves the cost from writing to debugging. Leading well now includes composing this hybrid arrangement: knowing which tasks tolerate a generated first draft, which require a person from the start, and how the result is traced back to whoever accepted it.
Practise: open in the Lab: Exercise 5, Triage by criteria
7. Products tend to incorporate conversational interaction
Returning to the adoption of AI at work: the decision is no longer only which internal tool the team uses, but how the customer interacts with the system. The growing presence of conversational AI and agents points to products less dependent on rigid screens and more oriented to text, queries and contextual automation.[8,10]
This does not mean that every traditional interface will disappear; forms are still the best way to enter structured data, and a dashboard still beats a paragraph for monitoring. It means product design has to treat the new pattern as a plausible direction and decide, feature by feature, where a question is better than a click and where an agent acting under confirmation is better than a manual sequence. Ignoring the shift limits the capacity to innovate in the customer's experience, which is exactly where the value of section 5 lives.
8. Fundamentals, timing, and why this is not a fad
The difference between using a ready interface and understanding the mechanism behind it was established in the previous article. Here the consequence is strategic. Whoever depends blindly on one assistant — a code copilot, a chat model, an agent platform — is bound to the current behaviour of that platform and loses the capacity to adapt when the context changes: a price, a licence, a model that behaves differently after an update. Whoever understands the fundamentals can evaluate limits, risks, productivity gains, impact on quality and fit to the use case, and keeps technical autonomy in a market that changes tools often.[6]
Timing matters as much as depth. The risk is not only failing to use AI; it is losing relevance as the market absorbs new expectations of productivity, product and leadership. Skills that look like differentials today — writing effective prompts, applying AI to a real workflow, evaluating a model with criteria — tend to become baseline requirements. The advantage lies in learning before the normalization, while it is still possible to become the reference inside a team or an organization; waiting for the demand to consolidate reduces the room for that role.[8]
- Investment that builds capacity, not only valuations: data centres, chips, energy contracts, research budgets measured in years.[9]
- Competition among incumbents, not only start-ups: when the largest companies compete on the same technology, the technology stays.
- Government interest: regulation, procurement and industrial policy appear only when something is expected to last.
- Real adoption measured in the work itself: controlled studies showing productivity effects, and products in production with paying users.[1,2,4,10]
Unlike waves that generated enthusiasm without broad consolidation, generative AI already operates with enough investment, corporate competition and government interest to sustain its expansion. The central point is not market enthusiasm but structural traction: there is product, infrastructure, research and real adoption.[9,10] Treating it as a passing curiosity is a strategic misreading. The most likely scenario is deepening, not disappearance — and the developer who moved to the layer above the code, the one that judges, designs and decides, is the one that deepening rewards. The next article goes back to the beginning of the story: what generative AI is, why it became viable only now, why generation is not copying, and why human review stays mandatory.
According to the article, what stopped being a differentiator on its own?
A developer without fundamentals starts using a coding assistant. What does the article predict?
Complete the sentence from the article: continuous learning became a(n) ______ requirement.
Which example is a redesign (doing it differently) rather than local acceleration (doing the same, faster)?
Complete the triage code: the overlap with the team's stack, the descending sort and the split at the budget.
overlap = len(item.tags ___ MY_STACK) / max(len(item.tags), 1) # share of the item that touches our stack ranked = sorted(items, key=score, reverse=___) # best first return ranked[:budget], ranked[___:] # study this week / note and skip
- [1]E. Brynjolfsson; D. Li; L. R. Raymond — Generative AI at Work, NBER Working Paper 31161, 2023. arXiv:2304.11771 (accessed on 09/09/2026)Academic paper
- [2]S. Peng; E. Kalliamvakou; P. Cihon; M. Demirer — The Impact of AI on Developer Productivity: Evidence from GitHub Copilot, 2023. arXiv:2302.06590Academic paper
- [3]F. Dell'Acqua; E. McFowland III; E. Mollick et al. — Navigating the Jagged Technological Frontier: Field Experimental Evidence of the Effects of AI on Knowledge Worker Productivity and Quality, Harvard Business School Working Paper 24-013, 2023. hbs.eduAcademic paper
- [4]S. Noy; W. Zhang — Experimental evidence on the productivity effects of generative artificial intelligence, Science 381(6654), 2023. doi:10.1126/science.adh2586Academic paper
- [5]F. P. Brooks Jr. — No Silver Bullet — Essence and Accidents of Software Engineering, IEEE Computer 20(4), 1987. doi:10.1109/MC.1987.1663532Academic paper
- [6]R. Bommasani; D. A. Hudson; E. Adeli et al. — On the Opportunities and Risks of Foundation Models, 2021. arXiv:2108.07258Academic paper
- [7]A. Karpathy — Software 2.0, 2017. karpathy.medium.comArticle
- [8]T. Eloundou; S. Manning; P. Mishkin; D. Rock — GPTs are GPTs: An Early Look at the Labor Market Impact Potential of Large Language Models, 2023. arXiv:2303.10130Academic paper
- [9]Stanford Institute for Human-Centered AI — Artificial Intelligence Index Report 2024, 2024. hai.stanford.eduReport
- [10]McKinsey Global Institute — The economic potential of generative AI: The next productivity frontier, 2023. mckinsey.comReport
- [11]D. Sculley; G. Holt; D. Golovin et al. — Hidden Technical Debt in Machine Learning Systems, NeurIPS 2015. papers.nips.ccAcademic paper
- [12]Google Cloud DORA — Accelerate State of DevOps Report 2024, 2024. dora.devReport
Further reading
- [a]E. Mollick — Co-Intelligence: Living and Working with AI, Portfolio, 2024. ISBN 978-0593716717Book
- [b]S. Willison — Here's how I use LLMs to help me write code, 2025. simonwillison.netArticle
- [c]GitHub — The economic impact of the AI-powered developer lifecycle and lessons from GitHub Copilot, 2023. github.blogArticle
References verified on 09/09/2026 and checked during technical review. External links open outside Codeflow.
Click a tag to list all related articles.
| Title | Category | Reading | Published | Status |
|---|---|---|---|---|
| Mythology, automata and the origin of the question: the early history of AI, from Turing to the first winter | Artificial Intelligence | 14 min | 09/10/2026 | Published |
| From output prediction to the probabilistic map: autoregression, self-attention and embeddings | Artificial Intelligence | 13 min | 09/10/2026 | Published |
| Traditional AI versus generative AI: predict from known data or compose new outputs | Artificial Intelligence | 13 min | 09/10/2026 | Published |
| Fundamentals over tools: how to evaluate and build with generative AI | Artificial Intelligence | 12 min | 09/09/2026 | Published |
| What is Generative AI, and why did it only become viable now? | Artificial Intelligence | 12 min | 09/08/2026 | Published |
- Article version
- 1
- Published on
- 09/09/2026 14:00
- Author
- @rafaelsantos
- Source language
- English
09/09/2026 14:00 — Initial publication of the article.

Comments are GitHub Discussions on codeflow/codeflow.github.io. Sign in with GitHub to post; each article has its own thread.