The Agentification of Software Development

May 27, 2025 | 5 min read
By Vishal Parikh – Chief Product Officer

Since the advent of modern computing, we’ve witnessed several evolutionary phases, driven by advances in processing power, interfaces, techniques, and processes. We are now entering the latest phase: agentic engineering.

A Brief History of Software Engineering
1950s–60s – Computer Scientists

In the early days of computing, during the 1950s and 60s, hardware was prohibitively expensive. Computers filled entire rooms, and programming was done using punch cards. As a result, software was simple, and data was sparse. Testing was incredibly costly, and much of the logic and evaluation was performed manually.

1970s–80s – Software Engineers

As computing became more affordable in the 1970s and 80s, software development grew more empirical and iterative. You could write and test code rapidly. This era gave rise to a variety of tools to aid in development and testing. With these tools came a proliferation of languages and abstractions. Mastery of these became essential.

Computer science gave way to software engineering. Engineers no longer needed deep hardware knowledge or mathematical theory. Instead, they relied on ingenuity, systems thinking, and the ability to interface with external hardware.

1980s–90s – HCI, Graphical Design, Networking, Security

Advancements in hardware during this period enabled graphical interfaces and new input methods like mice, touchscreens, joysticks, and speech recognition. These innovations sparked entire fields such as Human-Computer Interaction (HCI) and graphical design.

At the same time, the rise of networking and the internet created new roles like network engineering and security engineering. Cryptography, once confined to theoretical mathematics, became a practical necessity. Entire industries emerged around these specializations.

1990s–2000s – The Data Era

In the 1990s and 2000s, the explosion of data brought about a need for analytics, giving rise to data science. We also had to figure out how to store and move large volumes of data, leading to data engineering. Meanwhile, the dominance of web and mobile platforms elevated UI/UX design to a formal discipline.

Today – Agentic Engineering

With the rapid maturation of large language models (LLMs), a new paradigm has emerged: agentic engineering.

What Are Agents?

Agents form an interface between LLMs and external systems, where the models are empowered to ingest data, make decisions, and provide outputs sometimes in coordination with other models, or iteratively within themselves.

Put another way: agents free language models from the traditional “one prompt, one completion” pattern. They can drive conversations, make decisions, take actions, plan, and more.

At their core, agents are still LLMs, which means they inherit all the eccentricities of working with them.

Non-Determinism

LLMs are inherently chaotic systems. A small input variation can lead to large, unpredictable output changes. In other words, they are non-deterministic. Even two semantically equivalent (or sometimes identical) inputs may produce different results. This makes it difficult, often impossible, to prove reliability by testing input/output pairs.

Hallucinations

An often discussed quirk of LLMs is that they “hallucinate”, or give an answer that does not come from a ground truth on which they were trained. Another way to think about this is that an LLM does not deal in truth, it deals in probability distributions of streams of tokens. A token being likely does not necessarily mean that it is true. The implication of this is you cannot predict how an LLM will respond to a particular input.

If I wrote a calculator program, I would make sure to test each feature: addition, subtraction, multiplication, division. I would make sure each button produces the correct number. I would make sure the display clears when you need it to clear. Then I would be very confident it was an accurate calculator. In an LLM, just because it says 1 + 1 = 2, does not mean it will say 1 + 2 = 3. This makes testing extra fun.

High Latency

Latency is rarely a major issue in most software systems outside of batch processing. With LLMs, however, every feature can introduce substantial latency. In some “deep-thinking” models, responses can take tens of seconds — which has significant implications for product design.

Infinite State Space

While some agents operate in structured environments, many of the most powerful ones deal in natural language. When human language is your input space, it becomes effectively infinite. Combined with non-determinism and hallucinations, this makes testing and validation incredibly challenging. You can’t enumerate all possible inputs or rely on induction to ensure robust performance. You have to employ robust sampling, monte-carlo techniques, chaos engineering, and more.

The Defining Principles of an Agentic Engineer

Agentic engineering introduces new challenges and calls for a different approach and mindset than traditional software engineering.

It blends software development, evaluations, prompt engineering, conversational design, and product management. An agentic engineer is as distinct from a backend engineer as a network or frontend engineer is. It’s still engineering, building novel systems to solve problems, but the skill mix is different.

Agent architects are like software architects in that they are responsible for high level design and need to consider interactions across the system, but the system they think about is an agent system with LLMs interacting with each other, with conversation history, and with external context and tools. They need to think about how to stitch these pieces together, and what are the correct pieces and techniques to use for a given problem. Anthropic has a great writeup of some of the techniques and thought processes here.

Some Traits of Agent Engineers:

  • Spend less time writing code
  • Spend significantly more time testing and evaluating behavior
  • Need deep understanding of LLM prompting and failure modes
  • Must develop strong user empathy to anticipate likely inputs
  • Design defensively due to both unpredictable inputs and LLM behavior
  • Invest heavily in monitoring production systems
Here are some of the Agentic roles we are hiring at Hippocratic AI

Agent Architect

Owns:

  • Design of new agentic systems

Responsibilities:

  • Designing new agents, including picking the correct agentic paradigm (tools, engines, rag, prompting, model training)
  • Choosing the correct model from our model library
  • Working with our research team on fine-tuning models to improve performance
  • Working with our evaluation team to define the correct evaluations
  • Creating new patterns within engines to create new capabilities
  • Incorporating the latest techniques from scientific publications
  • Understanding the capabilities of the newest foundational models and incorporating them into our platform

Senior Agent Engineer

Owns:

  • Implementation and augmentation of agent components

Responsibilities:

  • Improving agent tools and engines
  • Implementing new auto-evaluation frameworks
  • Creating functional unit tests for prompts and engines
  • Working with Agent Architects, Product Managers, and Stakeholders to specify and implement new agent functionality

Agent Deployment Engineer

Owns:

  • Technical configuration of agents for customer deployments

Responsibilities:

  • Implementing advanced agent prompts (conditionals, data extraction, tools)
  • Configuring agent engines
  • Creating auto-evaluations for agents
  • Reviewing and incorporating feedback from human and auto evals

Agent Deployment Architect

Owns:

  • Defining and configuring agent connectivity to the real world. Figure out how to use agents to solve real world problems.

Responsibilities:

  • Configuring agent prompts
  • Manual QA of agents
  • Configuring of agent tools and engines
  • Configuring of agent RAG data
  • Configuring and running auto-evaluations
  • Reviewing and incorporating feedback from human and auto evals

Agent Product Manager

Owns:

  • Agent user experience

Responsibilities:

  • Gathering requirements for agent capabilities
  • Define evaluation and success criterion for agents
  • Brainstorming potential pitfalls and corner cases based on real-world scenarios
  • Analyzing prototype agent and simulated-agent interactions to extract insights
  • Utilize language models to prepare analysis on agent performance in evaluations and deployments
  • Ensure proper testing and evaluation of agents at every step of the development and release process
  • Review of agent performance in evaluations and in deployments
Additionally, all agentic roles require the following foundational knowledge of LLM techniques
  • Basic prompt engineering (you should be able to easily pass the gandalf wizard LLM challenge)
  • Be able to evaluate pros and cons of various LLM prompting techniques
    • Chain of thought
    • Shots
    • Structured inputs
    • Structured outputs
    • Prompt injection
    • History summarization
  • Attention and attention deficit
  • Deep-thinking models vs traditional models
Conclusion

I’m incredibly excited about the agentic era of software development. This is how AI becomes practical and integrated into our daily lives in meaningful ways.

While LLMs may simplify some tasks, they also demand new skills and roles. Agentic Engineers are similar, but not the same as Software Engineers. Just as data scientists and data engineers are distinct but related roles. Expect to see many more job postings for Agentic Engineers and Agentic PMs in the near future.

Join the team