Generative & Agentic AI in Real Projects: Opportunities, Trade-offs, and Responsibility

Over the past year, I’ve found myself rethinking how I approach building software. 

 

Like most engineers, I initially used generative AI as a productivity tool. Code suggestions, quick explanations, small accelerations in daily work. Useful, but not something that really changed how I build things. 

 

What changed was the moment AI stopped being just a tool and started becoming part of the system itself. 

 

Today generative AI has moved from curiosity to something you can actually rely on. What started as code completion and chat interfaces is now evolving into something much more powerful: agentic systems that can reason, plan, and act across workflows. 

 

That shift, from using AI to building with AI, is easy to underestimate. Especially in JavaScript environments where we already move fast and tend to abstract complexity quite aggressively. 

 

This is a reflection of what I’ve seen work, where things get tricky, and what actually changes when AI enters real projects. 

From Tools to Teammates

We’ve all used AI as an assistant. Something that helps you write code faster, explain errors, or generate small pieces of logic. In that setup, things feel predictable. You give it a prompt, you get an answer, you move on. 

 

The shift happens when AI becomes part of your system. 

 

Instead of using AI around your code, you start building flows where AI is involved in decision-making. At that point, it stops feeling like a tool and starts behaving more like a system component. In some cases, even like a teammate. 

 

This is the foundation of agentic architecture. 

 

In practical terms, this means, defining boundaries and constraints, not just logic, thinking in terms of capabilities and orchestration , accepting that some parts of your system are non-deterministic. 

 

Even in distributed systems, each piece is expected to behave consistently. With AI in the loop, that assumption doesn’t fully hold anymore. 

 

A simple example: instead of mapping user input to a fixed action, you send it to a model, let it interpret intent, and decide what should happen next. Which API to call, what flow to trigger, what response to generate. 

 

From a JavaScript perspective, this usually means calling AI services from your backend or BFF layer, translating responses into something structured, adding validation and control on top. 

 

But the important shift is this: 

You are no longer just implementing logic. You are shaping behavior. 

 

The system becomes partially non-deterministic. The same input might not always give the same output. That changes how you think about things. 

 

You start asking different questions: 

This is where the “teammate” idea actually makes sense. 

 

Like a teammate, the AI: can handle a wide range of tasks , can make reasonable decisions , but needs context, constraints, and validation.  

 

You wouldn’t let a teammate push directly to production without review. Same idea here: you validate outputs , add guardrails , keep fallback options for critical flows  

 

In practice, this shifts the focus from simply writing logic to defining clear boundaries and responsibilities for the system. You start thinking less about isolated features and more about capabilities, orchestration, and how different components collaborate. It also means becoming comfortable with a certain level of unpredictability understanding that AI-driven systems may not produce the exact same outcome every single time, and designing with that in mind. 

 

The Opportunity: Accelerated Product Thinking

When used well, AI reduces the gap between idea and implementation. 

 

Some examples I’ve seen: 

What used to require multiple services, rigid APIs, and predefined flows can now be done in a more flexible way. 

 

You can move faster, and more importantly, you can validate ideas earlier.

 

For frontend-heavy teams, this is quite impactful. The UI is no longer just a presentation layer. It becomes an interaction surface for something more dynamic. 

The Reality: Non-Determinism Changes Everything

Traditional software engineering is built around predictability. You write code, you know what goes in, and you expect a consistent outcome. AI systems don’t really work like that. The same prompt can produce slightly different results, edge cases are much harder to anticipate, and debugging often turns into understanding why the model responded the way it did rather than simply finding a broken line of code. 

 

That shift changes quite a few things in practice. 

 

Testing, for example, becomes a very different exercise. Unit tests are still useful, but they’re no longer enough on their own. You start relying more on scenario-based evaluations, prompt and model version comparisons, and different validation layers to make sure the outputs stay within acceptable boundaries. 

 

Observability also becomes far more important. Traditional logs won’t give you the full picture anymore. You need visibility into the prompts being sent, the responses coming back, and sometimes even the chain of decisions the system took before reaching an outcome. Otherwise, troubleshooting becomes guesswork very quickly. 

 

And then there are guardrails. In AI systems, they’re not a “nice to have.” Without proper constraints, models can hallucinate, leak sensitive information, or trigger actions you never intended them to take. As engineers, we’re no longer responsible only for correctness , we’re also responsible for how systems behave under uncertainty. 

The Trade-off: Speed vs Control

AI undeniably increases development speed. Teams can prototype and deliver things in days that previously took weeks. But that speed comes with compromises. 

 

You usually give up some level of control. Testing becomes harder. Unexpected edge cases appear more often. And sometimes the system behaves correctly 95% of the time, which sounds good until you realize the remaining 5% can still create real problems. 

 

So the real challenge is not choosing between speed and reliability. It’s figuring out how to balance them intentionally. 

 

What worked well for me was starting with lower-risk use cases first, keeping humans involved in critical flows, and making sure there was always some kind of fallback mechanism in place. AI should support the system, not become the single point of failure the entire product depends on. 

Responsibility: The Part We Don’t Talk About Enough

One thing I think many teams still underestimate is the level of responsibility that comes with integrating AI into products. 

 

The moment an AI system becomes part of your workflow or customer experience, you implicitly take ownership of its behavior. That includes the quality of its outputs, the ethical implications of its decisions, and the level of trust users place in the system. 

 

This becomes even more important in enterprise environments, where outputs may influence operational processes, financial decisions, or access to sensitive information. In those contexts, auditability, predictability, and security are not optional concerns they become core engineering requirements. 

The Evolving Role of the Engineer

One of the most interesting shifts is how our role is changing. We are moving from writing logic to designing systems of interaction between humans, models, and services. 

 

In many ways, this is closer to architecture than traditional coding. And for engineers, this evolution is particularly relevant. The ecosystem is already flexible, full-stack oriented, and close to the user experience. 

 

What I’m taking from this so far is pretty simple: AI is already changing how we build software, but it doesn’t replace the fundamentals. If anything, it makes them more important. Clear thinking, good system design, and understanding trade-offs matter even more when part of your system is no longer fully predictable. 

 

There’s still a lot to figure out, and most teams are early in this journey. But it’s already clear that this is not just another tool we add to the stack. It changes how we design systems, how we think about responsibility, and how we work as engineers. 

In this article:
Published:
17 June 2026

Related posts

June 26th

The Cost of Choice

Most companies spend up to 40% to much on cloud, are you? Cut spend, not options. Smart standardizations win.

Cloud cost overruns and growing technical debt rarely stem from tooling alone—they are symptoms of architectural and operational choices. This session looks at how senior technical leaders can regain control by connecting cloud spend directly to business value. We’ll explore unit‑economics thinking, ownership models, and lifecycle management practices that reduce waste while preserving delivery speed. You’ll learn how to combine FinOps principles with technical‑debt controls to create a cloud environment that is financially sustainable and technically healthy.

May 28th

AI AGENTS DESERVE AI PLATFORM

Portable patterns for Azure, AWS and GCP that survive the next upgrade

AI agents are moving rapidly from experimentation into real production use cases, but architectures vary widely across cloud platforms. In this webinar, we compare practical patterns for building and running AI agents on Azure, AWS, and Google Cloud Platform. We’ll focus on what to standardize, where to embrace cloud‑native capabilities, and how to design for security, observability, and future change. The goal is not to pick a winner, but to help leaders understand how to scale agent‑based solutions without locking themselves into fragile designs.

April 23rd

Winning on Repeat: Product Engineering in the Age of AI

Cadence, quality and outcomes over output

Delivering a successful solution once is no longer enough. In the age of AI, organizations need product engineering models that enable them to win consistently across teams, releases, and markets. This session explores how leading organizations evolve from project‑centric delivery to product‑centric execution, supported by AI‑augmented engineering practices. We’ll look at cadence, quality, and accountability, and how leadership decisions shape sustainable delivery performance over time.

April 2nd

GOVERNING AI IN PRODUCTION

Designing cloud and data platforms that survive real-world pressure

Many organizations succeed in building AI proofs of concept, far fewer succeed in scaling them safely into production. This webinar focuses on what it takes to move from experimentation to reliable, governed AI platforms. We’ll discuss platform architecture choices, model governance, security, and policy patterns that enable teams to deploy AI at scale without slowing down delivery. Designed for senior technical leaders, this session provides practical guidance on turning AI initiatives into durable capabilities that deliver value beyond the first demo

March 5th

Navigating Digital Sovereignty and Strategic Cloud Choices

How Organizations Can Balance Innovation, Compliance, and Control in a Multi-Cloud World

In today’s rapidly evolving digital landscape, organisations face increasing pressure to ensure business continuity, maintain public trust, and comply with complex regulations like NIS2, DORA, and GDPR. This webinar explores the critical concepts of digital and operational sovereignty, the strategic importance of hybrid and sovereign cloud models, and the risks of vendor lock-in.