Engineering Blog

Technical insights from Grid Dynamics engineers

Methodology as a Discipline in AI-Assisted Development: an OOA Example

Methodology as a Discipline in AI-Assisted Development: an OOA Example

Aleksandr Kondratskii · Mar 22, 2026

AI agents have not removed the hardest part of software development. The difficult part is still the transformation of ambiguous requirements into coherent implementation decisions. That transformation requires analysis, design, planning, validation, and revision. Faster generation changes the tempo of the work, but it does not dissolve the work itself.

AI-assisted development is often framed as end-to-end automation. In that framing, the developer provides a prompt, the agent performs the entire chain of reasoning, and working software emerges with minimal friction. That image is attractive, but it hides the parts of development where projects usually become unstable: requirement shaping, decomposition, design coherence, and communication across different perspectives.

AI agents increase the need for methodology because they accelerate production without removing ambiguity, communication gaps, iterative decomposition, or the need to preserve design integrity.

1. The False Promise of End-to-End Automation

In effective practice, implementation is only one stage in a longer chain. Requirements arrive in natural language, with omissions, conflicting assumptions, hidden constraints, and incomplete domain vocabulary. Before implementation can be reliable, these materials must be interpreted, bounded, decomposed, and translated into a structure that can be built and checked.

This translation is labor-intensive even when skilled people are involved. In larger projects, it is often distributed across roles because different parts of the work require different competencies. Requirements gathering, architectural decomposition, interface definition, implementation planning, and verification are related, but they are not identical tasks. With high team competence but bad processes or communication the project still can fail.

"Better prompting" only is not enough. As organizing the development process is difficult, AI-assisted development requires its own "glue": clear processes, methods of producing and verifying artifacts.

2. Why AI-Assisted Development Still Runs Into Complexity, Ambiguity, and Change

AI-assisted development inherits the complexity pressures as classical software development. In some cases it intensifies them. If an unclear requirement becomes code quickly, the resulting artifact can create false confidence. The presence of a concrete implementation may hide the fact that the problem was framed incorrectly.

One source of instability is the communication gap between user, stakeholder, and developer. It leads to mismatched assumptions. Users know the domain but may not express technical boundaries. Developers know the implementation space but may not understand the domain well enough to model it correctly. Stakeholders add business constraints, priorities, and trade-offs that may not appear in either view. AI does not remove this gap on its own. It fills the gap with unnoticeable hallucinations.

Complexity deepens the problem further. Large systems contain multiple layers, different rates of change, and interactions that cannot be understood all at once. The limits of human cognition matter here. Teams manage complexity by creating separations of concern, stable intermediate forms, and shared representations that allow the work to be reviewed incrementally. Successful projects are usually not the ones that avoid complexity. They are the ones that govern it through explicit process, shared understanding of steps, mature techniques, and feedback loops.

AI does not eliminate any of these conditions. It changes where discipline must be applied. When generation becomes cheap, structure becomes more important.

AI-assisted development still runs into complexity, ambiguity, and change because these problems originate in human understanding, system structure, and evolving constraints rather than in the act of coding itself.

3. Methodology as Disciplined Transformation From Requirements to Implementation

Methodology can be defined as the combination of notation, process, and tools used to structure thinking, communication, construction, and enforcement.

Notation determines how participants think and communicate. It gives names to entities, relationships, boundaries, states, flows, and constraints. Process determines how work is sequenced. It decides which activities come first, which artifacts must exist before later steps, and where feedback and revision occur. Tools determine how the method scales and how its rules are enforced. They reduce tedium, expose inconsistency, and connect artifacts to execution.

Under this definition, methodology matters because it makes intermediate reasoning visible, reviewable, and iterable. Without methodology, much of the reasoning that connects requirements to implementation remains implicit. In AI-assisted development, that often means it disappears inside prompts, agent behavior, and generated code. The result may still function, but the path that produced it is hard to inspect, reproduce, assess, and verify.

With methodology, intermediate artifacts stop being accidental by-products. They become governed parts of the workflow. Requirements analysis, change management, decomposition, verification, and harness engineering can then be treated as first-class activities. The practical value of methodology is not formality for its own sake. It is controlled transformation across iterations.

4. A Quick Map of Methodological Options

AI-assisted development requires making the methodological choice explicit. "AI-Driven Development Lifecycle (AI-DLC) Method Definition" states that:

Rather than decoupling design techniques out, AI-DLC will have them as its integral core. There will be different flavors of AI-DLC for teams following Domain Driven Design (DDD), Behavior Driven Development (BDD) or Test-Driven Development (TDD) respectively.

Different methodologies define different primary units of thought, lead teams to ask different questions, and produce different artifacts.

Object-oriented approaches emphasize classes, objects, responsibilities, and relationships. Domain-driven design emphasizes domain vocabulary, bounded contexts, and aggregates. Data-driven methods center on entities, schemas, and flows. Model-driven approaches treat models themselves as central artifacts that can be transformed into implementation. Functional approaches organize work around functions, transformations, and explicit control of side effects. Event-driven approaches foreground events, producers, consumers, and message contracts. Component-based design centers on reusable units and interface composition.

These methodologies differ in vocabulary, but the difference is deeper than terminology. Each one shapes notation, process, and tooling in a different way. Notation shapes communication by making some distinctions easy to express and others harder to see. Process shapes activity sequencing by deciding what must be discovered, modeled, or tested first. Tools shape scalability by enforcing particular representations and consistency checks.

Methodological fit depends on the shape of the problem, the available stakeholders, the system constraints, and the artifacts that must remain stable across change. For AI-assisted development, it means that there will never be one "universal pipeline." It means diversity in processes, number of steps, types of artifacts, ways to manage project context, and implementing progressive disclosure.

5. OOA as One Concrete Example of Disciplined Analysis

Object-oriented analysis is a method of analysis that examines requirements through the classes and objects found in the vocabulary of the problem domain.

OOA starts from a particular view of complexity. It builds abstractions to manage complexity. Abstraction means concentrating on relevant similarities while ignoring non-essential details. In OOA, this leads to models that organize domain knowledge around entities, their state, their behavior, and the boundaries that define how they interact.

While algorithmic decomposition asks how to break a process into steps, object-oriented decomposition asks which entities exist, what responsibilities they own, how they collaborate, and what boundaries should remain stable as behavior changes. These are not equivalent views. The algorithmic view highlights the ordering of events. The object-oriented view highlights the agents that act and the structures through which change is controlled.

Abstraction limits attention to what matters. Encapsulation hides internal state behind an interface. Modularity organizes the system into cohesive and loosely coupled units. Hierarchy structures relationships through both "is a" and "part of" forms. OOA also relies on the more concrete concepts of state, behavior, and identity. An object is an entity with state, behavior, and identity. Similar objects are grouped into classes. Objects play roles, carry responsibilities, and collaborate through relationships such as links, associations, and aggregations.

OOA helps explain architecture. If architecture is partly a matter of stable abstractions and relationships, then methodology is not just a way to describe finished code. It is a way to shape the questions that must be answered before code is produced.

6. What OOA Implies for AI Assisted Development

Prompts, skills, and iterations should be treated as operational expressions of a chosen method. Building any particular AI DLC workflow is not our goal for now. But let's use OOA to illustrate the vision of how metholodogy can be applied in AI-assisted development.

Following OOA means the workflow should preserve the analytical questions that OOA considers primary:

  • What domain entities exist?
  • What state does each entity own?
  • What behavior belongs to it?
  • What responsibilities and roles does it carry?
  • What contracts do collaborating entities rely on?
  • Which relationships are loose links, and which are whole-part aggregations?
  • Which abstractions and boundaries are likely to remain stable as requirements change?

Below are just some examples which can be used as some starting point.

6.1. Domain Vocabulary Extraction

Purpose: extract candidate objects from the language of the problem.

Read the requirement text and extract candidate domain entities named in the problem vocabulary. For each candidate, explain why it should or should not be treated as an object in the analysis model. Separate true domain entities from UI elements, technical mechanisms, and incidental nouns.

6.2. State / Behavior Separation

Purpose: prevent accidental mixing of data fields, lifecycle transitions, and operations.

For each candidate object, separate: - identity - persistent state - derived state - behaviors - external events that may change its state Flag ambiguities where the requirement text does not clearly distinguish state from behavior.

6.3. Responsibility Assignment

Purpose: identify cohesive responsibilities and avoid coincidental abstractions.

Assign responsibilities to each candidate object. Explain why each responsibility belongs to that object rather than to a controller, service, or neighboring object. Flag objects whose responsibilities appear mixed, overloaded, or weakly justified.

6.4. Relationship Discovery

Purpose: surface collaborations and whole-part structure.

Identify relationships among the candidate objects. Classify each relationship as: - association - aggregation / whole-part - inheritance / specialization - dependency / collaboration Explain what each relationship means in domain terms and which direction of navigation matters.

6.5. Boundary Stability

Purpose: identify what should remain stable under change.

Evaluate the proposed objects and relationships for boundary stability. Which abstractions are likely to remain stable if business rules change? Which abstractions are likely to churn? Recommend where encapsulation should protect likely change.

6.6. Collaboration Scenario Prompt

Purpose: move from static object lists to interaction logic.

Using the current object model, describe how objects collaborate to satisfy each primary use case. Show the participating objects, the order of interaction, and the state changes caused by each step. Highlight where a controller, proxy, or active object may be needed.

6.7. Model Consistency Prompt

Purpose: detect drift across artifacts.

Compare the requirement text, object model, contracts, and implementation notes. List inconsistencies, missing objects, mismatched responsibilities, and violated invariants. Do not repair them yet; first produce a discrepancy report.

7. Methodology as Leverage, Not Bureaucracy

Methodology is valuable because it reduces randomness in development. That remains true when AI is introduced. In fact, it becomes more important because the cost of producing artifacts has fallen while the cost of misunderstanding has not.

Without methodology, AI-assisted development does not become freer. It often becomes less legible. Hidden assumptions accumulate inside prompts, intermediate decisions remain unreviewed, and generated artifacts may look coherent while resting on unstable analysis. The result is not the absence of process. It is unmanaged process.

Methodology makes reasoning more inspectable and more reusable. It also suggests concrete implications for prompt design, skill design, and iteration structure.

The larger question remains open. Different classes of AI-assisted projects may require different methodologies, or combinations of methodologies. That question deserves further study. What can already be said with confidence is narrower and more practical: methodology is not bureaucratic overhead added after the fact. It is a discipline for shaping agent behavior, intermediate artifacts, and the transformations that connect requirements to implementation.