AI Driven Development

Home » AI Driven Development

Understanding the Current State of AI-Driven Development Through the History of Software Engineering

The history of software development has been a struggle between 'chaos and engineering.'

In the early days of software development, the code itself was the specification, and the world revolved around tacit knowledge. If the system was small and there were few stakeholders, it could somehow work. However, as the scale expanded and the number of stakeholders increased, tacit knowledge broke down. Delivery delays, quality problems, and communication breakdowns became apparent, leading to the so-called 'software crisis.' From there, the waterfall-style engineering progressed. This was the idea of ​​reducing ambiguity, dividing the process, and introducing reviews and quality control. Later, as a reaction to this, Agile was born as an antithesis to the heavy and cumbersome documentation-based approach. What's important here is not which is right or wrong. Historically, the challenge has always been how to bring order to complexity.

The success of Agile did not mean that specifications were unnecessary

Agile is often misunderstood as 'no documentation needed.' However, it was originally a philosophy that emphasized updatable, value-driven, lightweight yet meaningful specifications. However, in some workplaces, specifications were disregarded and reliance on personal conversations increased, and there were cases where the source code became the sole truth. This distortion risks being amplified and reproduced in the age of AI

AI will bring back the chaos of the past 'code = specifications'

The reason why Vibe Coding-like development in the third phase is attracting attention is clear. It is very fast and strong for prototyping and hypothesis testing. However, applying this haphazardly to business systems and core areas can lead to significant costs in later stages. If AI is used with vague specifications, a seemingly functional system can be created quickly. However, crucial aspects of enterprise development, such as non-functional requirements, exception handling, security, data integrity, and operational design, tend to be overlooked. As a result, problems erupt during later reviews and integration testing, leading to inflated correction costs. From a management perspective, this is not simply rework; it results in delivery delays, quality issues, increased maintenance costs, retraining costs, and amplified risks of reliance on individual expertise. Expanding adoption solely based on speed risks short-term productivity improvements turning into medium- to long-term profitability declines.

SDD is a 'reboot of engineering' reinvented in the age of AI

Specification-driven development is not a concept that suddenly appeared in the age of AI. The 'value of specifications', which had been overlooked with the spread of Agile methodologies, has been re-evaluated in the age of AI. The important thing is not to go back to the heavy documentation of the past. It is to make requirements, constraints, acceptance conditions, and design intents updatable and implementable so that they can be delegated to AI. This is extremely rational in enterprise development. When specifications are in place, AI can run more easily, reviews are easier to pass, and it is easier to align understanding across multiple people and locations. As a result, it leads to a reduction in rework rates, improved maintainability, and reduced training costs.

Competitiveness in the age of AI will be determined not by the amount of code generated, but by design ability

In the future, differences in simple implementation speed will be easier to bridge because anyone can use AI. The difference will come down to how well you can write specifications, how well you can design guardrails, and how well you can incorporate verification. In other words, the source of competitive advantage will shift from a part of the ability to write code to design, control, and quality assurance.

Because AI is fast, you must define the specifications first.

Even with sufficiently vague instructions, AI will return code of a certain standard. This 'plausibility' is the greatest appeal of using AI, and at the same time, the greatest trap. Humans will stop and ask for clarification or pause when faced with vague requirements. AI will not stop and will continue. That is why, in development using AI, it is important to define the requirements, constraints, design intent, and acceptance conditions first. It is necessary to clearly specify not only what to build, but also what should not be done and what is within the acceptable range, in a way that AI can handle. The specifications referred to here do not refer to heavy and lengthy documents. They are living specs that can be changed and lead to implementation and verification. Having these allows AI to operate more stably.

The quality of instructions given to AI directly translates to the quality of the deliverables.

In development in the age of AI, not only the skill of the prompts, but also the clarity of the requirements definition, design granularity, and acceptance conditions are strongly reflected in the deliverables. In other words, an ambiguous organization can only produce ambiguous results. In this respect, SDD can be said to be a prerequisite capability for using AI.

CI/CD and Quality Gates are the 'automatic brakes' of the AI ​​era.

Automated verification is essential when handling AI-generated implementations in production. CI/CD is not just an automated pipeline, but a quality gate that filters the deliverables produced by AI. Through testing, linting, vulnerability assessment, convention checks, and dependency checks, it is possible to mechanically determine whether the AI ​​output meets the standards. What is important here is not to rely on the goodwill or 'intelligence' of the AI. The AI ​​is merely a high-performance implementation entity, not the entity responsible. It is precisely because there is a mechanism to automatically stop code that does not adhere to the standards that quality is less likely to deteriorate even if development speed is increased. From a management perspective, this not only prevents quality accidents, but also leads to the leveling of review effort, reduction of subjective judgment, and suppression of quality variations between locations.

Instead of trusting AI, trust the hurdles that must be passed.

Organizations that have matured through AI implementation do not discuss 'how much to trust AI'. Instead, they define 'only deliverables that meet certain conditions will be released'. This is a very important shift in thinking. Instead of relying on individual experience and intuition, only those that meet the rules are released. This is where reproducibility is created.

Ultimately, the responsibility lies with humans.

Even if AI is in charge of implementation, it does not take on the responsibility. Ultimately, it is humans who approve the deliverables, release them, and are accountable to users. This premise remains unchanged even in the age of AI. That is why the role of engineers will not diminish, but rather become more sophisticated. Even if the value of simple workers is partially replaced by AI, the importance of personnel who can oversee the entire development process, design, verify, and ensure quality and safety will increase. For PMs, PLs, tech leads, architects, QA, and IT system managers, this is a time to redefine their roles not as 'management' but as 'control design'. For engineers on the ground, in addition to the ability to write code, the ability to structure specifications, the ability to have review perspectives, and the ability to drive improvement cycles will become the next market value.

Login


Don't have an account? Create one now.
It's free and simple! Register

Register

Please register to watch videos.


Already have an account? Login

Forgot Password