DEV Community

Susmit Tyagi
Susmit Tyagi

Posted on Originally published at Medium on

From Requirement to Design with AI

A requirement explains what someone needs. It doesn’t always explain how the system should meet that need, which parts may be affected, or what the team should consider before implementation.

That gap can lead to different assumptions, missed design choices, or late questions about security and reliability. An AI assistant can help explore those questions early and carry useful context forward.

AI can organize information, trace relevant code, suggest questions, and compare options. The team checks the facts, adds system knowledge, and decides what to build.

1. Clarify the need and build a shared mental model

Start with the problem, intended outcome, scope, constraints, and open questions. Ask the assistant to explain its interpretation so the team can correct misunderstandings before discussing a solution.

The assistant needs context to do this well. Code, architecture documents, configuration, and tests can help explain the existing application. However, a static repository may not reveal the actual cloud deployment, load balancer settings, scaling behavior, security restrictions, or business expectations.

Even checked-in infrastructure configuration may differ from the deployed environment. An existing setting also does not establish a requirement: a configured timeout does not tell us what response time users need.

Connect the relevant sources

Build a small context pack covering:

  • System context: components, dependencies, data flows, and architectural principles.
  • Environment context: deployment, load balancing, scaling, and differences between environments.
  • Requirements and constraints: availability, performance, recovery, data handling, and security.
  • Change context: the desired outcome, scope, exclusions, and unresolved questions.

The context pack can link to existing sources rather than duplicate them. Important information should have an owner and an indication of when it was last verified.

When the assistant retrieves these sources, their contents become part of the input it uses to interpret the requirement. Access to a repository does not mean every relevant file has been read.

Make uncertainty visible

Ask the assistant to separate:

  • Evidence: what the available sources establish.
  • Inferences: what those findings may imply.
  • Unknowns: what still needs verification.

A useful instruction is:

Explain the current behavior and requested outcome using the available sources. Reference the evidence behind your conclusions. Separate facts, assumptions, and unknowns. Identify missing information that could change the scope. Flag related improvements separately.

The team reviews this interpretation and resolves important gaps. This creates a shared mental model that can be updated as the work progresses.

2. Identify the components that need to change

With the need clarified, trace it through the system. Consider applications, services, data stores, infrastructure, and external dependencies.

For each proposed component change, ask:

  • Why is this change needed?
  • What evidence supports it?
  • Which other components depend on it?
  • Can the existing architecture support the requirement?

AI can help locate relevant code and configuration and suggest dependencies to investigate. The team checks whether those connections are correct.

Avoid introducing new components without a clear reason. Proposed changes should fit the established architecture and engineering principles, or explain why an exception is justified.

The result should be a proposed set of changes with a reason for each one.

3. Map behavior and compare options

Describe how requests and data should move through the affected components.

Work through success, failure, and recovery paths. Consider what happens when a dependency is unavailable, a request is retried, access is denied, or an instance stops during processing.

AI can draft flows and compare approaches against the requirements. The team evaluates the benefits, costs, operational effort, and risks.

Diagrams can make these discussions easier, but each flow should remain consistent with the component changes and known constraints. Any behavior that depends on an unanswered question should be marked as provisional.

4. Review and refine the design

Review the proposal from the perspectives relevant to the change. These may include application engineering, platform operations, security, testing, and product.

Ask whether the design meets the intended outcome, handles important failure cases, stays within scope, and can be deployed and supported.

AI can help prepare review questions and identify inconsistencies between the requirement, component changes, and proposed flows. Reviewers supply the system knowledge and judgment needed to resolve them.

Record decisions, their rationale, and any remaining questions. If a review exposes a missing requirement or an incorrect assumption, revisit the earlier steps.

5. Prepare for implementation

Turn the reviewed design into information engineers can act on:

  • Agreed component changes and responsibilities.
  • Acceptance criteria and verification checks.
  • Dependencies and unresolved blockers.
  • Deployment, monitoring, and rollback considerations.

AI can help draft this material and check that tasks connect back to the requirement. The team confirms that it accurately reflects the agreed design.

Example: sharing session data

Suppose the requirement is:

Users should remain logged in when requests move between application servers.

The assistant finds in-memory session storage in the repository. It records this as evidence and asks whether authentication depends on that storage. It also asks whether production runs multiple instances, whether session affinity is enabled, and whether sessions must survive instance termination.

The team confirms that login depends on session data and that instances can be removed during scaling. Security guidance identifies restrictions on the data that may be stored.

With that context, the team evaluates shared session storage. The assistant helps identify changes to session configuration, data serialization, deployment configuration, and tests.

The proposed flow covers both normal requests and storage failures. The team decides what users should experience during an outage and reviews security, availability, and operational implications before approving the approach.

The requirement started the discussion. Repository evidence, environment information, and team decisions made the design specific.

Let estimates and context evolve

An initial estimate may contain uncertainty about the existing system or the work required. Investigation and review can change that understanding, so estimates should be revisited when scope or assumptions change.

The process may follow this path:

Requirement → Initial estimate → Shared context → Component changes and flows → Design review → Implementation

Teams can bring reviews forward or revisit earlier steps. The context pack should evolve with the decisions, so later work builds on verified information.

AI helps keep that information connected. People remain responsible for validating it, making decisions, and approving the design.

Top comments (0)