Dizajn sustava: Oblikovanje poslovne intuicije umjetne inteligencije na temelju vaše baze koda
Most discussions of AI in software teams start with capability: what the model can generate, summarize, classify, or automate. The harder question is whether it can understand why the software exists.
A codebase is rarely just an implementation of requirements. It contains years of product decisions: which customers matter most, where reliability is non-negotiable, which workflows are awkward but commercially important, and which technical compromises support a real business constraint. Building useful AI systems means helping them recover that context rather than treating the repository as an anonymous pile of source files.
Business intuition is a system design problem
Business intuition is the ability to connect a technical choice to its likely effect on customers, operations, risk, and revenue. A developer with this intuition does not merely ask whether a change is elegant. They ask whether it protects a critical user journey, reduces support burden, preserves a contractual promise, or makes future product decisions easier.
AI can contribute to this work, but only if the surrounding system provides meaningful signals. A model reading a payment handler may infer that the code processes transactions. It cannot reliably know that a particular failure state is sensitive because it affects invoice reconciliation, a high-value customer segment, or a manual finance process unless that context is available.
The goal, then, is not to make AI “know the business” in an abstract sense. The goal is to design a context system that lets it make safer, more relevant contributions within defined boundaries.
Start with the decisions, not the documents
Many teams respond to this problem by collecting more documentation. Documentation helps, but a large folder of stale strategy notes is not business context. The most valuable context explains decisions that still shape the product.
For every important domain area, capture a compact answer to a few practical questions:
- Who uses this capability, and what outcome are they trying to achieve?
- What business rule must remain true even when the implementation changes?
- Which failures are acceptable, and which failures create material customer or operational harm?
- What trade-offs have already been made, and why?
- Who owns the decision when requirements are unclear?
Consider a feature that lets account administrators invite colleagues. The code may include role checks, email delivery, pending invitations, and seat limits. The business intuition lies in the reasons behind them: perhaps only administrators can invite to prevent unauthorized access; perhaps invitations expire to reduce security exposure; perhaps seat limits are tied to billing. Those are not incidental implementation details. They define what a safe change looks like.
A short domain note beside the relevant service, or a maintained architecture record linked from it, can give both people and AI a much stronger starting point than a broad company overview.
Make context close to the work
Context loses value as the distance from the code increases. A product strategy document may be accurate yet too broad to guide a pull request. A ticket may explain a requested change but omit the historical constraint that makes a seemingly simple solution dangerous.
Useful systems put durable context where engineers already make decisions: repository documentation, service ownership files, API descriptions, test names, and change templates. The format matters less than the habit of maintaining a clear connection between intent and implementation.
Use tests as executable business language
Tests are especially powerful because they describe behavior in a form that can be checked. Compare a vague test name such as handles invalid input with a specific one such as does_not_activate_subscription_when_payment_confirmation_is_missing. The latter tells a reviewer, a new teammate, and an AI assistant what matters.
Not every rule belongs in a unit test. Some are policy decisions, operational procedures, or product assumptions. But wherever a rule can be expressed and verified, an executable example reduces ambiguity.
Record the “why” behind unusual code
Comments should not narrate obvious syntax. They should explain surprising constraints. If a request is deliberately retried with an idempotency key, say whether the purpose is to avoid duplicate charges, duplicate emails, or duplicated downstream records. If a cache is intentionally bypassed for a workflow, explain the freshness requirement.
This discipline improves code review even without AI. With AI, it reduces the chance that a seemingly sensible refactor removes behavior whose importance was invisible in the control flow.
Design the AI workflow around boundaries
Giving an assistant broad repository access does not automatically produce better outcomes. It can produce confident but poorly scoped changes. Better results come from pairing relevant context with explicit boundaries.
For a proposed change, provide the assistant with the affected area, the relevant domain rule, and the acceptance criteria. Ask it to identify assumptions before it recommends an implementation. Then require it to distinguish facts found in the code from inferences it is making.
A practical review prompt might ask: “Identify the customer-facing behavior affected by this change, list business rules enforced by the current implementation, and flag any rule that is implied rather than documented.” This steers the conversation away from code completion and toward decision support.
AI should be particularly cautious around authorization, money movement, data retention, pricing, compliance-sensitive workflows, and irreversible actions. In these areas, a good workflow treats generated output as a proposal for accountable humans to review, test, and approve.
Ownership turns context into a living asset
Business context decays when nobody is responsible for it. Remote teams feel this sharply because informal knowledge is less likely to travel through overheard conversations or repeated office rituals.
Clear ownership does not mean one person becomes a bottleneck. It means every significant domain has an identifiable group or role that can resolve ambiguity, validate changes, and keep key decisions current. The owner may be a product manager, technical lead, staff engineer, or a partnership between them. What matters is that escalation is visible.
When a team changes a business rule, updating the related tests, documentation, and AI-facing guidance should be part of completing the change. This is not bureaucracy. It is maintenance of the decision system that allows the team to move quickly later.
Measure usefulness by delivery quality
The wrong measure of AI adoption is how much code it produces. Volume can hide rework, confused ownership, and subtle product damage. A better question is whether the team can deliver changes with clearer intent and fewer expensive misunderstandings.
Look for signals such as stronger pull-request discussions, fewer reversals caused by missing product context, faster onboarding into unfamiliar domains, and more precise acceptance criteria. These outcomes are less theatrical than a dramatic code-generation demo, but they are far more valuable to a business.
The enduring advantage will not belong to teams that ask AI to write the most code. It will belong to teams that make their reasoning legible: in their architecture, their tests, their decisions, and their ownership. When business intent is designed into the codebase, AI becomes more than a fast typist. It becomes a useful participant in building software that matters.