AI · Development
AI Tools in Real Projects: What Works and What Does Not
September 22, 2026
Over the past two years, AI coding tools have moved from curiosity to daily equipment. Copilot, Cursor, Claude, ChatGPT: there is no shortage of options. But the conversation around them is still largely binary: either they replace developers, or they are useless. The reality, as you would expect, is more nuanced.
This is what we have found in practice after two years of using AI tools in real client projects.
Where AI tools save real time
Boilerplate and repetitive code
Writing the fifteenth form validation method or yet another Eloquent scope is tedious and error-prone. AI handles this kind of work quickly and consistently. You review the output, adjust where needed, and move on. It saves ten to fifteen minutes per session, and that adds up.
Exploring unfamiliar APIs and libraries
When you are working with an API you do not know, a conversation with an AI tool is faster than scrolling through documentation. You get a working example, ask follow-up questions, and typically have a working integration faster than via the traditional route. This applies to less commonly used PHP libraries and frameworks too.
Writing tests for existing code
Writing tests retroactively for existing code is one of the most tedious tasks in software development. AI is surprisingly good at it: give it the method, ask for unit tests, review the edge cases it generates. Not every generated test case is meaningful, but the first draft is ready in five minutes rather than thirty.
Debugging and explaining
"Why is this happening?" is a question where an AI tool is surprisingly useful. Paste the error message and the relevant code, and you typically get a reasonable starting point for debugging. It is not guaranteed, but it regularly saves twenty minutes of searching.
Where AI tools slow you down or get in the way
Architecture decisions
AI tools are poor at advising on architecture because architecture requires context they do not have: the business logic, team dynamics, historical decisions in the codebase, scaling expectations. The output often sounds convincing but is generic. Do not use AI to make architectural choices. Use it to document alternatives after you have made the decision yourself.
Understanding existing complex codebases
When you are trying to understand a large, unfamiliar codebase, an AI tool is of limited use. It can explain what an isolated function does, but it does not see the connections you need to understand the bigger picture. Systematic reading and asking colleagues is still better for that.
Security-sensitive code
Generated code regularly contains subtle security issues: missing input validation, incorrect handling of user data, or outdated cryptographic choices. Review every piece of generated code that touches authentication, authorisation, or user input as if it came from a junior developer. Never trust the output blindly.
Long generated blocks without review
The temptation to paste a large generated block and move on is real, but dangerous. Generated code contains bugs, outdated patterns, and sometimes subtle logic errors that look correct at first glance. If you do not have time to review it, you should not have generated it.
How we use it in practice
After two years of experimenting, our usage has settled into a few patterns:
- Short tasks in a conversation: for code under fifty lines a direct prompt works well. For larger tasks, break the work into steps.
- Always review before committing: generated code never goes into the repository unread. Ever.
- Refine the prompt: the first output is rarely the best. Provide context, give examples of existing code in the project, and iterate.
- For writing, not deciding: AI writes the code, you decide what gets written.
The honest conclusion
AI tools make good developers more productive. They make it easier to quickly explore an idea, write boilerplate, and learn unfamiliar APIs. They do not replace good judgement about architecture, security, or product quality.
The developers who get the most out of them are the ones who know exactly when to reach for an AI tool and when not to. That is a skill you build through practice, like any other.