

This Tech Assistant is designed to support you with clear insights into our company, our work, our services and the people behind our progress.
Powered by CorLab Tech © 2025
The common story about AI in software development is that the tools now write the code and engineers are becoming optional. That is not what changed. AI moved engineering judgment rather than removing it: from typing code to specifying what should be built, reviewing what a model produced, and owning the result in production.
By 2026, AI tools sit in almost every team's workflow, and the impact of AI on software development is real but uneven. The tools draft code and tests quickly. They do not decide whether that code fits the system, the users, or the regulator, and that is where engineering time now goes. This article looks at each activity in turn.
AI changed writing code by making first drafts fast while making careful review the larger share of the work. Code assistants generate functions and boilerplate in seconds, so the effort shifts to specifying the task precisely and checking the output before it merges. AI in software development now starts with a clear specification.
On our own projects, we use Claude and ChatGPT every day, mostly for first drafts: boilerplate, data-mapping code, and documentation. The drafts arrive fast. What we see is that the time does not disappear; it moves to review, where a senior engineer checks each change against the architecture before it merges.
Adoption is close to universal. The 2025 report from DORA, Google Cloud's research program, surveyed nearly 5,000 technology professionals and found that 90 percent use AI at work. More than 80 percent believe it has increased their productivity, while 30 percent report little or no trust in the code it generates. Near-universal use does not mean near-universal benefit; it is a starting point for better questions.
Measured speed is harder to pin down than perceived speed. In early 2025, a randomized trial by METR found experienced open-source developers took 19 percent longer on real tasks with AI tools, while believing they had been sped up by 20 percent. In a February 2026 update, METR said developers are now likely sped up, but its newer data is too affected by selection effects to say by how much.
The tools fall into two classes. Assistant-class tools suggest the next lines while a developer types in the editor. Agent-class tools take a task description, edit several files, run the tests, and return a change for review. The second class moves more of the typing to the model and more of the responsibility to the reviewer. Both classes still produce code that someone has to understand before it ships.
Specifications become the new source of truth. A vague request produces confident, generic code, while a precise one, naming the inputs, the error cases, and the constraints, produces something worth reviewing. Teams that write short specifications before prompting spend less time rejecting output, because the model and the reviewer are checking against the same description. The specification also becomes the test plan.
I saw both sides on the medical AI agent I built in three days. GPT generated the Python backend for the real-time chat, and Supabase's built-in assistant set up authentication, chat history, and admin tools. I still debugged the authentication flow and message broadcasting by hand. My takeaway from that build was simple: AI-generated code is helpful, not perfect, so be ready to debug.
My other takeaway from that build was that building with AI now depends less on raw coding skill than on domain knowledge and clear thinking. The model wrote plumbing quickly. Choosing the medicine leaflets, the interaction data, and the architecture that tied them together was still my job.
Review is now the core skill. DORA's analysis describes a verification tax, where time saved writing is often spent again auditing. A reviewer has to check more than whether generated code runs: whether it fits the architecture, handles cases the prompt never mentioned, and uses only libraries the project allows. That audit is where much of an engineer's judgment now lives.
Generated code still has to be maintained. Someone will read it in two years, when the person who prompted it has moved on, so it needs to follow the team's conventions like any other code. Unusual patterns that a model favors, or a dependency nobody on the team chose, become long-term costs if they slip through review. Review is cheaper than cleanup.
Security needs its own attention. A model can suggest a package that does not exist, an outdated library with known vulnerabilities, or a pattern that leaks secrets into logs. Dependency scanning and secret detection in the build pipeline catch many of these automatically.
AI changed testing and QA by making test cases cheap to write but harder to trust without careful human review. Assistants generate unit tests and edge cases quickly. A generated test can still confirm what the code does rather than what it should do, so people keep deciding what correct behavior means.
The gains are real where tests were missing entirely. Legacy modules with no coverage can get a first set of characterization tests quickly, which makes later changes safer. Fixtures and repetitive setup code are exactly the kind of work a model drafts well.
Tests that mirror the implementation are the main risk. If a model reads a function and writes tests for it, a bug in the function can become an expected value in the test. Reviewing generated tests against the requirements, not the code, catches this. Mutation testing, which deliberately breaks the code to see whether any test fails, is a useful check on whether a suite actually protects anything.
Some QA work does not move to a model at all. Exploratory testing, where a person tries to break a feature the way a real user would, still depends on curiosity and product knowledge. Acceptance criteria still need someone who understands the business rule. In regulated software, validation evidence must be produced and signed by accountable people, whatever tool drafted the tests.
Test data needs care in regulated projects. Pasting real patient records into a prompt to generate test cases is a data-protection problem, whatever the tool. Synthetic data generated from a schema, or anonymized extracts prepared under a documented process, gives the model realistic input without exposing anyone.
AI changed estimation and planning less than it changed coding, because the uncertain parts of a project stay uncertain. It speeds up drafting specifications and summarizing past tickets. Integrations, unclear requirements, and third-party systems remain as hard to predict as they were before the tools arrived.
Estimates need two columns. Work that AI reliably speeds up, such as boilerplate and test scaffolding, can be estimated lower than it was a few years ago. Work that depends on other systems or on decisions nobody has made yet should not be discounted, because a model cannot shorten a wait for an answer from another team. Keep the two columns separate in every status report.
Fixed-price quotes need the same split. A partner who prices the whole project as if every hour were AI-accelerated is either padding somewhere else or taking a risk that lands on the client later. A quote that separates drafting from integration work shows where the uncertainty sits.
We saw the limits of any estimate on the national e-prescribing platform we built in Moldova. The night before launch, MSign, the government's electronic signature service, froze, and nobody in the country could sign a prescription. It took about two hours to restore the sign. No planning tool, human or AI-assisted, would have put that outage on the schedule.
Planning documents are where AI helps quietly. Drafts of user stories and meeting summaries arrive faster, and a clear draft makes review meetings shorter. The same rule applies as with code: a plausible user story can hide a wrong assumption, so the person who owns the requirement has to read every line before the team builds against it. The owner, not the model, answers for the scope.
Measuring the effect beats assuming it. Cycle time from ticket to release, the share of changes that need rework, and defect rates after launch show whether AI tools are helping a particular team. Comparing a few months before and after adoption says more than any vendor claim or survey average, including the ones quoted in this article. Teams rarely regret having the baseline.
AI fails in software development where the right answer is not in its training data or depends on accountability. That covers novel domains, architecture that depends on a system's own data, and regulated review. In each case the model produces something plausible, and plausible is not the same as correct.
Developers notice. Stack Overflow reports that more than 84 percent of respondents to its 2025 survey use or plan to use AI tools, yet only 29 percent said they trust AI, down 11 percentage points from 2024. One likely reading of rising use and falling trust: the more people work with these tools, the more they see where the tools go wrong. Trust grows back only through verification.
Novel domains show the failure clearly. On the medical agent build, I first let the model generate graph database queries on the fly. It worked until the schema changed, and then it broke completely. After two frustrating hours of debugging, I switched to LangChain's GraphCypherQAChain, which builds each query against the schema. Finding it was a huge relief.
Architecture decisions depend on facts only the team has: data volumes, the shape of real traffic, what the client's other systems can accept, which failure is tolerable. A model can list the trade-offs of two designs, but it cannot measure your data. Decisions like where to split services or how to store years of clinical records need someone who has looked at the numbers.
Vague requirements are a quieter failure. When a request leaves gaps, a model fills them with a common pattern it has seen, which may be exactly wrong for this client. A human developer would stop and ask a question. A model rarely does, so the gap surfaces later, in review or in production. Writing the open questions down before prompting prevents much of it.
Regulated review is the third boundary. In healthcare software, someone must be accountable for how patient data is handled, how a change was validated, and why it is safe to ship. AI can draft the documentation, but it cannot carry the accountability. A reviewer who signs off on generated code in a HIPAA-aligned system is signing off on it as their own.
Security-sensitive code deserves the same caution. Authentication flows, permission checks, and anything that handles payment or health data fail in ways that tests rarely catch and attackers eventually find. Generated code in these areas should get a second reviewer who looks specifically for what is missing, not only for what is wrong. The same applies to infrastructure code, where one wrong setting can expose a whole database.
For software teams, AI means fewer hours on first drafts and more on specification, review, and ownership. For anyone hiring a development partner, the useful questions are how the partner reviews AI-generated code, where it refuses to use AI, and who is accountable for what ships.
The team skills that matter shift accordingly. Clear written specifications become more valuable, because a model follows them literally. Senior review capacity becomes a bottleneck, because more code arrives for review. Continuous integration with real tests and security scanning becomes the safety net that catches what a hurried reviewer misses. Teams that invest in these foundations get more from every tool they add.
DORA's research frames this as amplification: AI does not fix a team, it amplifies what is already there. Strong engineering habits get faster, and weak ones produce problems faster. That makes AI in software engineering less a tooling decision than a process decision.
Junior developers need a deliberate plan. If a model writes every first draft, a new engineer can ship features without learning why the code works. Pairing juniors with reviewers, asking them to explain generated code before it merges, and reserving some tasks for writing by hand keeps the learning that used to come from typing everything out. Those habits cost a little speed now and pay back later.
For a client, the practical checks are concrete. Ask which tools the partner uses and for which tasks, how generated code is reviewed before merge, and which code or data never leaves the project for a third-party service. Ask who signs off on a release. A partner that answers with specifics has thought about it; a vague answer usually means nobody has.
Data policy belongs in the contract. Source code and customer data can end up in a third-party AI service if nobody sets rules. A partner should be able to state which tools may see client code, whether those tools retain it, and how that changes for healthcare or financial projects under stricter requirements. The answer should be written down, not improvised in a sales call.
Be wary of pricing that assumes AI makes everything proportionally cheaper. Drafting gets cheaper, while integration and review do not. How these trade-offs shape a real product build is covered in the guides to LLM integration in app development, custom software development, and the artificial intelligence page. Ask the partner to show that split in the estimate itself.
The common story about AI in software development is that the tools now write the code and engineers are becoming optional. That is not what changed. AI moved engineering judgment rather than removing it: from typing code to specifying what should be built, reviewing what a model produced, and owning the result in production.
By 2026, AI tools sit in almost every team's workflow, and the impact of AI on software development is real but uneven. The tools draft code and tests quickly. They do not decide whether that code fits the system, the users, or the regulator, and that is where engineering time now goes. This article looks at each activity in turn.
AI changed writing code by making first drafts fast while making careful review the larger share of the work. Code assistants generate functions and boilerplate in seconds, so the effort shifts to specifying the task precisely and checking the output before it merges. AI in software development now starts with a clear specification.
On our own projects, we use Claude and ChatGPT every day, mostly for first drafts: boilerplate, data-mapping code, and documentation. The drafts arrive fast. What we see is that the time does not disappear; it moves to review, where a senior engineer checks each change against the architecture before it merges.
Adoption is close to universal. The 2025 report from DORA, Google Cloud's research program, surveyed nearly 5,000 technology professionals and found that 90 percent use AI at work. More than 80 percent believe it has increased their productivity, while 30 percent report little or no trust in the code it generates. Near-universal use does not mean near-universal benefit; it is a starting point for better questions.
Measured speed is harder to pin down than perceived speed. In early 2025, a randomized trial by METR found experienced open-source developers took 19 percent longer on real tasks with AI tools, while believing they had been sped up by 20 percent. In a February 2026 update, METR said developers are now likely sped up, but its newer data is too affected by selection effects to say by how much.
The tools fall into two classes. Assistant-class tools suggest the next lines while a developer types in the editor. Agent-class tools take a task description, edit several files, run the tests, and return a change for review. The second class moves more of the typing to the model and more of the responsibility to the reviewer. Both classes still produce code that someone has to understand before it ships.
Specifications become the new source of truth. A vague request produces confident, generic code, while a precise one, naming the inputs, the error cases, and the constraints, produces something worth reviewing. Teams that write short specifications before prompting spend less time rejecting output, because the model and the reviewer are checking against the same description. The specification also becomes the test plan.
I saw both sides on the medical AI agent I built in three days. GPT generated the Python backend for the real-time chat, and Supabase's built-in assistant set up authentication, chat history, and admin tools. I still debugged the authentication flow and message broadcasting by hand. My takeaway from that build was simple: AI-generated code is helpful, not perfect, so be ready to debug.
My other takeaway from that build was that building with AI now depends less on raw coding skill than on domain knowledge and clear thinking. The model wrote plumbing quickly. Choosing the medicine leaflets, the interaction data, and the architecture that tied them together was still my job.
Review is now the core skill. DORA's analysis describes a verification tax, where time saved writing is often spent again auditing. A reviewer has to check more than whether generated code runs: whether it fits the architecture, handles cases the prompt never mentioned, and uses only libraries the project allows. That audit is where much of an engineer's judgment now lives.
Generated code still has to be maintained. Someone will read it in two years, when the person who prompted it has moved on, so it needs to follow the team's conventions like any other code. Unusual patterns that a model favors, or a dependency nobody on the team chose, become long-term costs if they slip through review. Review is cheaper than cleanup.
Security needs its own attention. A model can suggest a package that does not exist, an outdated library with known vulnerabilities, or a pattern that leaks secrets into logs. Dependency scanning and secret detection in the build pipeline catch many of these automatically.
AI changed testing and QA by making test cases cheap to write but harder to trust without careful human review. Assistants generate unit tests and edge cases quickly. A generated test can still confirm what the code does rather than what it should do, so people keep deciding what correct behavior means.
The gains are real where tests were missing entirely. Legacy modules with no coverage can get a first set of characterization tests quickly, which makes later changes safer. Fixtures and repetitive setup code are exactly the kind of work a model drafts well.
Tests that mirror the implementation are the main risk. If a model reads a function and writes tests for it, a bug in the function can become an expected value in the test. Reviewing generated tests against the requirements, not the code, catches this. Mutation testing, which deliberately breaks the code to see whether any test fails, is a useful check on whether a suite actually protects anything.
Some QA work does not move to a model at all. Exploratory testing, where a person tries to break a feature the way a real user would, still depends on curiosity and product knowledge. Acceptance criteria still need someone who understands the business rule. In regulated software, validation evidence must be produced and signed by accountable people, whatever tool drafted the tests.
Test data needs care in regulated projects. Pasting real patient records into a prompt to generate test cases is a data-protection problem, whatever the tool. Synthetic data generated from a schema, or anonymized extracts prepared under a documented process, gives the model realistic input without exposing anyone.
AI changed estimation and planning less than it changed coding, because the uncertain parts of a project stay uncertain. It speeds up drafting specifications and summarizing past tickets. Integrations, unclear requirements, and third-party systems remain as hard to predict as they were before the tools arrived.
Estimates need two columns. Work that AI reliably speeds up, such as boilerplate and test scaffolding, can be estimated lower than it was a few years ago. Work that depends on other systems or on decisions nobody has made yet should not be discounted, because a model cannot shorten a wait for an answer from another team. Keep the two columns separate in every status report.
Fixed-price quotes need the same split. A partner who prices the whole project as if every hour were AI-accelerated is either padding somewhere else or taking a risk that lands on the client later. A quote that separates drafting from integration work shows where the uncertainty sits.
We saw the limits of any estimate on the national e-prescribing platform we built in Moldova. The night before launch, MSign, the government's electronic signature service, froze, and nobody in the country could sign a prescription. It took about two hours to restore the sign. No planning tool, human or AI-assisted, would have put that outage on the schedule.
Planning documents are where AI helps quietly. Drafts of user stories and meeting summaries arrive faster, and a clear draft makes review meetings shorter. The same rule applies as with code: a plausible user story can hide a wrong assumption, so the person who owns the requirement has to read every line before the team builds against it. The owner, not the model, answers for the scope.
Measuring the effect beats assuming it. Cycle time from ticket to release, the share of changes that need rework, and defect rates after launch show whether AI tools are helping a particular team. Comparing a few months before and after adoption says more than any vendor claim or survey average, including the ones quoted in this article. Teams rarely regret having the baseline.
AI fails in software development where the right answer is not in its training data or depends on accountability. That covers novel domains, architecture that depends on a system's own data, and regulated review. In each case the model produces something plausible, and plausible is not the same as correct.
Developers notice. Stack Overflow reports that more than 84 percent of respondents to its 2025 survey use or plan to use AI tools, yet only 29 percent said they trust AI, down 11 percentage points from 2024. One likely reading of rising use and falling trust: the more people work with these tools, the more they see where the tools go wrong. Trust grows back only through verification.
Novel domains show the failure clearly. On the medical agent build, I first let the model generate graph database queries on the fly. It worked until the schema changed, and then it broke completely. After two frustrating hours of debugging, I switched to LangChain's GraphCypherQAChain, which builds each query against the schema. Finding it was a huge relief.
Architecture decisions depend on facts only the team has: data volumes, the shape of real traffic, what the client's other systems can accept, which failure is tolerable. A model can list the trade-offs of two designs, but it cannot measure your data. Decisions like where to split services or how to store years of clinical records need someone who has looked at the numbers.
Vague requirements are a quieter failure. When a request leaves gaps, a model fills them with a common pattern it has seen, which may be exactly wrong for this client. A human developer would stop and ask a question. A model rarely does, so the gap surfaces later, in review or in production. Writing the open questions down before prompting prevents much of it.
Regulated review is the third boundary. In healthcare software, someone must be accountable for how patient data is handled, how a change was validated, and why it is safe to ship. AI can draft the documentation, but it cannot carry the accountability. A reviewer who signs off on generated code in a HIPAA-aligned system is signing off on it as their own.
Security-sensitive code deserves the same caution. Authentication flows, permission checks, and anything that handles payment or health data fail in ways that tests rarely catch and attackers eventually find. Generated code in these areas should get a second reviewer who looks specifically for what is missing, not only for what is wrong. The same applies to infrastructure code, where one wrong setting can expose a whole database.
For software teams, AI means fewer hours on first drafts and more on specification, review, and ownership. For anyone hiring a development partner, the useful questions are how the partner reviews AI-generated code, where it refuses to use AI, and who is accountable for what ships.
The team skills that matter shift accordingly. Clear written specifications become more valuable, because a model follows them literally. Senior review capacity becomes a bottleneck, because more code arrives for review. Continuous integration with real tests and security scanning becomes the safety net that catches what a hurried reviewer misses. Teams that invest in these foundations get more from every tool they add.
DORA's research frames this as amplification: AI does not fix a team, it amplifies what is already there. Strong engineering habits get faster, and weak ones produce problems faster. That makes AI in software engineering less a tooling decision than a process decision.
Junior developers need a deliberate plan. If a model writes every first draft, a new engineer can ship features without learning why the code works. Pairing juniors with reviewers, asking them to explain generated code before it merges, and reserving some tasks for writing by hand keeps the learning that used to come from typing everything out. Those habits cost a little speed now and pay back later.
For a client, the practical checks are concrete. Ask which tools the partner uses and for which tasks, how generated code is reviewed before merge, and which code or data never leaves the project for a third-party service. Ask who signs off on a release. A partner that answers with specifics has thought about it; a vague answer usually means nobody has.
Data policy belongs in the contract. Source code and customer data can end up in a third-party AI service if nobody sets rules. A partner should be able to state which tools may see client code, whether those tools retain it, and how that changes for healthcare or financial projects under stricter requirements. The answer should be written down, not improvised in a sales call.
Be wary of pricing that assumes AI makes everything proportionally cheaper. Drafting gets cheaper, while integration and review do not. How these trade-offs shape a real product build is covered in the guides to LLM integration in app development, custom software development, and the artificial intelligence page. Ask the partner to show that split in the estimate itself.
AI is used in software development to draft code, write and extend tests, explain unfamiliar code, draft documentation, and split work into tasks. The 2025 DORA report found that 90 percent of technology professionals use AI at work. Engineers still specify the work, review the output, and own the result.


Let's make it happen! Dream big, build smart - we’ll take care of the tech.
Our Best Insights
Want to know what’s trending in the tech world? Our articles break it all down - quickly and clearly.
November 18th, 2024
API, RAG, or fine-tuning? How to choose an LLM, ground it in your data, and keep token costs under control once the feature is in production.
November 4th, 2024
Where machine learning helps in healthcare, why so many projects stall after the pilot, and when a simple rule beats a model.