Poslovanje

Beyond the Prompt: Architect Systems AI Must Learn From

Iza upute: arhitektonski sustavi iz kojih AI mora učiti

AI can produce code in seconds. That is impressive, but speed is not the same as engineering.

A useful product is not a collection of plausible functions. It is a system of decisions: what happens when a dependency fails, who owns a customer problem, how a team changes a feature safely, and whether the next engineer can understand why a compromise was made.

That distinction matters as AI becomes more capable in development workflows. The most valuable lesson for technical leaders is not how to get better prompts. It is how to build systems—with technical boundaries, human accountability, and feedback loops—that make fast output genuinely useful.

Architecture is a set of operating agreements

Architecture is often presented as diagrams, services, databases, and deployment pipelines. Those are important artifacts, but the deeper architecture is behavioral. It defines how the organization handles change.

Consider a checkout flow. An AI can generate an endpoint that charges a card and creates an order. A production system needs more: idempotency when a client retries, auditability when a payment provider times out, clear states for support staff, and a recovery path when the charge succeeds but order creation fails.

The same applies to people. If nobody owns the decision to retry a payment, clarify an edge case, or communicate an incident, the design is incomplete even if the code compiles.

Technical leads should therefore treat architecture as a set of explicit agreements:

  • Which component owns each business rule.
  • Which failures are expected and how users experience them.
  • Which data is authoritative when systems disagree.
  • Which decisions require review and which can be made locally.
  • How a team reverses a change that proves harmful.

AI can help draft parts of these agreements. It cannot responsibly leave them implicit.

Teach systems through constraints, not wishful prompts

A vague request such as “build a resilient API” invites a vague result. Strong engineering teams do not depend on anyone—human or machine—to infer all of the important context. They make constraints visible.

For a service that creates orders, useful constraints might include: requests may be duplicated; payment confirmation can arrive late; an order must never be shipped before payment is confirmed; support must be able to locate events by order identifier; and failed background work must be retryable without creating duplicate orders.

Those constraints drive design choices. They suggest an idempotency key, durable state transitions, structured logs, an outbox or queue where appropriate, and tests around partial failure. The implementation may vary, but the operating intent is clear.

Make the happy path earn its place

Generated code commonly looks strongest on the happy path because the happy path is easy to describe. Product quality is usually determined elsewhere: invalid input, slow networks, concurrent updates, stale permissions, incomplete migrations, and confusing recovery screens.

Before accepting an AI-assisted implementation, ask a small set of unglamorous questions:

  • What happens if this request is sent twice?
  • What happens if the process stops after one side effect but before the next?
  • Can an operator understand the failure from available logs and data?
  • Can the change be rolled back or disabled safely?
  • Does the user receive an actionable outcome rather than a generic error?

These questions improve human-written code too. AI simply makes the need more visible because it can create convincing-looking software before the underlying decisions are complete.

Product thinking is a defense against elegant irrelevance

Teams can now produce more implementation options than ever. That makes selection more important than generation.

A feature request is rarely a specification. “Add notifications” could mean email, in-app alerts, digest preferences, delivery guarantees, accessibility concerns, administrative controls, and the possibility that the best notification is no notification at all. Building the first plausible version quickly may create a maintenance burden before the team has validated the user problem.

Start with the user’s moment of need. What are they trying to notice, decide, or accomplish? What information do they have now? What should happen if they ignore the alert? Once those answers exist, AI becomes much more useful for exploring alternatives, drafting test cases, or accelerating well-bounded work.

The practical discipline is simple: define the outcome before requesting the output. A good brief includes the user, the decision or task being improved, the constraints, the measurable behavior that signals success, and the risks of getting it wrong.

Ownership cannot be automated away

Delegation is valuable when it creates leverage. It is dangerous when it creates ambiguity.

When a developer uses AI to propose a database migration, write a query, or refactor a module, the developer still owns the consequences. That is not a moral warning; it is an operational fact. Customers, colleagues, and on-call engineers encounter the deployed system, not the prompt that produced it.

Healthy ownership means reviewing work at the level of its risk. A copy change may need a quick check. Authentication logic, payment handling, data deletion, permission changes, and migrations deserve slower thinking, tests, peer review, and a rollback plan.

Leaders can reinforce this by rewarding clear decisions and well-documented trade-offs instead of rewarding only visible velocity. A team that can explain why it accepted a risk is more reliable than a team that merely shipped quickly.

Remote teams need durable context

Remote work exposes a truth that has always existed: important knowledge trapped in conversation does not scale. AI can amplify this problem by generating changes faster than teams can explain them.

Write down the decisions that future contributors will need. Keep architecture notes short and current. Record why a boundary exists, what alternative was rejected, and what condition would justify revisiting the choice. Link a change to the problem it solves, not only to the ticket that requested it.

This is especially valuable when reviews happen across time zones. A reviewer should not have to reconstruct the business rationale from a diff. Context turns review from a search for mistakes into a shared design exercise.

Sustainable delivery is the real multiplier

The best development process is not the one that produces the most code this week. It is the one that lets a team keep making sound changes next quarter.

That requires small releases, observable behavior, reliable tests, manageable queues, and time to remove accidental complexity. It also requires resisting the temptation to automate a broken workflow more efficiently.

AI will keep lowering the cost of producing software. The enduring advantage will belong to teams that lower the cost of understanding, validating, operating, and changing it.

Beyond the prompt lies the real work of technology leadership: designing systems in which code, people, decisions, and customer outcomes remain connected. That is the architecture AI must learn from—and the architecture every ambitious builder should practice.

Portret autora bloga

Mihajlo

Ja sam Mihajlo — programer vođen znatiželjom, disciplinom i stalnom željom da stvorim nešto smisleno. Dijelim uvide, tutorijale i besplatne usluge kako bih pomogao drugima da pojednostave svoj rad i rastu u svijetu softvera i umjetne inteligencije koji se neprestano razvija.