Robert Važan

What LLMs can and cannot do today

I have made considerable progress in employing LLMs in software development. As I get close to exhausting automation opportunities that current LLMs can handle, it is becoming more clear what LLMs currently cannot do. These hard problems now dominate in my schedule. Limits of LLM capabilities thus determine limits of my productivity. It's therefore a good idea to review where the capability limits lie to make sure I am not missing any substantial opportunities for automation.

What LLMs do well in my experience

What LLMs struggle with at the moment

Impact on productivity

Although the specific gain factor varies from project to project, frontier LLMs are now good enough to bring substantial productivity gains almost everywhere. My recommendation is to deploy them extensively everywhere like there's no tomorrow.

On the other hand, there's no technological singularity. Productivity gains do not compound and you cannot reach full automation using contemporary LLMs. At some point, additional tool and workflow improvements start yielding diminishing returns. Bigger part of the productivity gains goes into improved quality (tests, docs) rather than higher velocity. Long hours of human labor are still necessary. Only the nature of the work changes. Software development is now closer to project management and more distant from technical details of coding.

Future

Personally, I expect fastest progress in instruction following and algorithmic programming. Code review should work well once LLMs can dutifully follow even ambiguous high-level instructions. There is some low-hanging fruit in API and UI design, although LLMs are likely to struggle with this for some time. Remaining tasks IMO require far more powerful LLMs than what we have today.