Earlier this year, I had my first practical experience integrating Artificial Intelligence into my daily workflow. The initial challenge was using AI to extract business rules from a legacy AS/400 system. This work was done directly on the COBOL codebase without making any changes to the code itself. Once the rules were extracted, the output was reviewed alongside a COBOL specialist.
Shortly after, I took the next step: using AI to develop new solutions in Java, Spring Boot, and Google Cloud Platform (GCP). I must admit, it is quite intimidating at first to watch an AI generate code and run tests so rapidly. During this initial phase, I relied heavily on manual prompting. Over time, I transitioned to SDD (Spec Driven Development), which drastically optimized the quality and precision of the generated code.
Since I had already been reading articles about AI in development, my biggest concern was always code review. Reviewing a few lines is easy, but doing so when the AI produces hundreds or thousands of lines of code is a completely different story. Relying solely on manual reviews would be unfeasible and would defeat the purpose of using AI to boost team productivity. This stage made me feel quite insecure at first; after all, since you didn't write that code from scratch, you feel a lack of control over the situation.
To mitigate this risk, I adopted a clear strategy: before deploying the application, the golden rule is to ensure that all unit tests run successfully across the entire application. This became the main safety net to verify that the AI hadn't broken existing functionalities. Next, the application is deployed for functional testing. In the implementations where I used AI, the tests passed 95% of the time.
A few minor bugs were caught during the QA (Quality Assurance) phase, but most of them were related to the specification rather than the code itself. For instance, there was a scenario where a specific query was supposed to use a LIKE clause, but the AI didn't include it simply because it wasn't specified. Another bug found in QA involved a request that returned a 200 OK status, but one of the underlying tables failed to update under certain conditions due to an unhandled exception.
Once you get past that initial adaptation phase, the process becomes much less stressful. The generated code keeps getting better, and the code review process itself now includes AI analysis. Of course, this requires a continuous refinement of instructions—without improving the specifications, the quality of the generated code suffers. Today, I view AI as my pair programmer, a partner that assists throughout the entire software development lifecycle, from technical refinement to final implementation.
I am deeply grateful to the company for giving me the opportunity to move past theory and start using AI in a responsible and professional manner. Artificial Intelligence is here to stay and change the game. Will it replace programmers? I don't have the answer to that. But I do know that change is happening right now, and I choose not to be left behind.