Skip to content

Application quality · 6 min read

Before you launch an application built with AI tools

AI coding tools can produce a useful starting point, but generated code still needs the same engineering review as other code. Verify it against requirements, inspect its design and dependencies, and test its behaviour instead of relying on a convincing explanation.

AJM Softwares · Technical note

Establish the intended behaviour

Map the important user journeys, routes, APIs, data stores, integrations, and release environment. Confirm what the application is supposed to do and what is unfinished before treating generated code as safe to change or ship.

Install and run the project from a clean checkout. This reveals missing setup steps and gives reviewers a working baseline to compare with the requirements, rather than relying on the code generator’s description of the result.

Review the implementation and its dependencies

Read generated changes in the context of the surrounding code. Look for duplicated business rules, unnecessary abstractions, unclear module boundaries, missing error handling, and assumptions that do not match the product. Verify unfamiliar APIs and configuration against the library’s official documentation.

Check each new dependency exists, is maintained, is compatible with the project, and is needed. Generated explanations, comments, and package names can sound plausible while being incorrect, so verify them independently before accepting the change.

Test requirements, including failure cases

Write or review tests from the expected product behaviour, not only from the generated implementation. Cover the main user flows, invalid inputs, permission boundaries, duplicate requests, and relevant dependency failures. Generated tests are useful suggestions, but they may repeat the same mistaken assumptions as the code.

Run the project’s tests, static checks, type checks, and production build. For sensitive data access and authentication, use a dedicated security review; for capacity needs, define a workload and test the full request path. A passing build proves the code can be built, not that it is secure, scalable, or reliable in production.

Release with clear ownership

Deploy to a staging environment and exercise the critical journeys there. Confirm that production configuration and secrets are managed outside the source code, useful failures can be diagnosed, and someone is responsible for updates and support. Record unresolved limitations and address critical security or data-loss risks before release.

Discuss your project