How Many CTOs?

How effective is AI in completing real-world freelance software engineering tasks?

Short answer

AI models struggle with real-world freelance software engineering tasks, achieving success in only about 26% of cases. While they can handle specific tasks like server-side logic, they often falter in areas requiring system-wide reliability.

AI models currently face significant challenges in effectively completing real-world freelance software engineering tasks. According to a study discussed in our episode, these models successfully completed only about 26% of the tasks they were given. They performed best in server-side logic tasks but struggled with system-wide quality and reliability tasks.

The Reality of AI's Performance

Brad shared an intriguing study where OpenAI tested their models on 1,488 freelance software engineering jobs sourced from Upwork. These jobs varied from simple bug fixes to complex projects worth tens of thousands of dollars. The goal was to assess how well AI could handle real-world tasks compared to the more controlled, greenfield projects typically used in testing. The results were telling: the best-performing model, Claude 3.5 Sonnet, completed only 26.2% of the tasks successfully ▶ 1:16.

Brad noted, "That's 42%. It was least successful at system-wide quality and reliability tasks" ▶ 3:40. This indicates that while AI can tackle specific, isolated problems, it struggles with tasks that require a broader understanding and integration across systems.

AI's Limitations in Practice

Scott highlighted an example from his own experience using AI tools like Cursor in agentic mode. He described how the AI would attempt to run tests and fix issues autonomously, often getting stuck in loops when faced with complex linting errors. This led him to adopt a strategy of reviewing AI-generated proposals before allowing the AI to implement them. "Go make me a plan. Let me look at it before you go," Brad echoed, comparing this approach to how junior engineers are managed ▶ 6:02.

This hands-on oversight is crucial because AI lacks the nuanced understanding that human engineers bring to the table. For instance, Scott mentioned that AI might inadvertently expose sensitive information like API keys if not guided correctly. "It definitely if you're not a developer who's familiar with things like where do you put your API keys don't put your API keys in your source" ▶ 8:55. This highlights the importance of human oversight in ensuring the security and reliability of AI-generated code.

The Hype and the Reality

Despite the limitations, there's a significant amount of hype surrounding AI's potential to revolutionize software engineering. Scott discussed the pressure from corporate leaders, like the Shopify CEO, who mandate AI usage across tasks, suggesting that learning to use AI is an essential skill. Yet, Brad remains skeptical about AI's ability to replace human engineers entirely. He acknowledged that while AI can save time on certain tasks, it still requires human intervention to ensure quality and accuracy.

Brad and Scott also touched on the broader implications of AI's integration into the workforce. They likened the current AI wave to past technological revolutions, such as the Information Revolution. Brad remarked, "And then we had the Information Revolution. That's what we were just talking about a few minutes ago in terms of the Internet" ▶ 14:04. This comparison underscores the transformative potential of AI, albeit with the caveat that we are still in the early stages of this transition.

Navigating the AI Revolution

As AI continues to evolve, it presents both opportunities and challenges for software engineers. Brad and Scott emphasized the need for developers to adapt and learn how to effectively integrate AI into their workflows. This involves not only understanding AI's capabilities but also recognizing its limitations and ensuring that human oversight remains a critical component of the development process.

The conversation also touched on the environmental impact of AI, with Brad expressing concerns about the energy consumption associated with AI queries. "It's i mean i worry about the jobs and careers and what this is going to mean for our industry but the thing that actually really is making me uncomfortable is is the climate change piece of it" ▶ 15:30. This highlights the broader considerations that come with adopting AI technologies, beyond just their immediate utility in software engineering.

In conclusion, while AI shows promise in assisting with specific engineering tasks, it is far from being a standalone solution for complex, real-world software development challenges. The journey towards effective AI integration in software engineering will require ongoing adaptation, learning, and a balanced approach that leverages both human and machine strengths.