Generative AI is transforming many industries where people create content. Software development is no different; AI agents are in almost every development platform. But is AI improving application development and software quality? This episode of the Tech Field Day Podcast looks at some of the issues revolving around AI and App Dev with Alastair Cooke, Guy Currier, Jack Poller, and Stephen Foskett. The ultimate objective of a software development team is to deliver an application that fulfills a business need and helps the organization be more successful. An AI that can recommend basic code snippets doesn’t move that needle far. More sophistication is needed to get value from AI in the development process. The objective should be to have AI handle the repetitive tasks and allow humans to focus on innovative tasks where generative AI is less capable. AI agents must handle building tests and reviewing code for security and correctness to enable developers to concentrate on building better applications that help organizations.
Apple Podcasts | Spotify | Overcast | Amazon Music | YouTube Music | Audio
Learn more about AppDev Field Day 2 on the Tech Field Day website, including information on presenting companies, delegates, analysts, and more.
AI Doesn’t Make AI Any Better
The ultimate objective of a software development team is to deliver an application that fulfils a business need and helps the organization be more successful. An AI that can recommend basic code snippets doesn’t move that needle far. More sophistication is needed to get value from AI in the development process. The objective should be to have AI handle the repetitive tasks and allow humans to focus on innovative tasks where generative AI is less capable. A vital first step is making the AI aware of the unique parts of the organization where it is used, such as the standards, existing applications and data. A human developer is more effective as they learn more about the team and organization where they work, and so can an AI assistant.
One of the ways AI can be used to improve software development is in data normalization, taking a diverse set of data and presenting it in a way that allows simple access to that data. An example is a data lake with social media content, email archives, and copies of past transactions from our sales application, all in one place. An AI tool that reads the unstructured social media and emails, presenting it as more structured data for SQL-based querying. Handling these types of low-precision data is an ideal generative AI task; reporting on the exact data in the sales records is not somewhere we want hallucinations. Generative AI might also be great for working out my address from my vague description rather than demanding that I enter my street address and postcode precisely as they are recorded in the postal service database.
Software testing is another place where AI assistants or agents can help by taking care of routine and tedious tasks. Testing every new feature is essential to automating software development and deployment, but writing tests is much less satisfying than writing new features. An AI agent that creates the tests from a description of how the feature should work is a massive assistance to a developer and ensures code quality through good test coverage. Similarly, AI-based code review can reduce the effort required to ensure new developers write good code and implement new features well. Reviews for style, correctness, and security are all critical for software quality. Both testing and code review are vital parts of good software development and take considerable developer effort. Reducing these tedious tasks would leave more time for developers to work on innovation and align better with business needs.
The challenge of AI agents and assistants is that we don’t yet trust the results and still need a human to review any changes proposed by the AI. Tabnine reports that up to 50% of the changes suggested by their AI are accepted without modification. That leaves 50% of suggestions that aren’t wholly acceptable. That rate must be much higher before this AI can operate without human oversight. Ideally, the AI could identify which changes will likely be accepted and flag a confidence rating. Over time, we might set a confidence threshold that requires human review. Similarly, we might take a manufacturing approach to code reviews and tests. Allow the AI to operate autonomously and sample test the resulting code every ten or hundred changes.
Podcast Information:
Alastair Cooke is a Tech Field Day Event Lead, now part of The Futurum Group. You can connect with Alastair on LinkedIn or on X/Twitter and you can read more of his research notes and insights on The Futurum Group’s website.
Guy Currier is the VP and CTO of Visible Impact, part of The Futurum Group. You can connect with Guy on X/Twitter and on LinkedIn. Learn more about Visible Impact on their website. For more insights, go to The Futurum Group’s website.
Jack Poller is and industry leading cybersecurity analyst and Founder of Paradigm Technica. You can connect with Jack on LinkedIn or on X/Twitter. Learn more on Paradigm Technica’s website.
Stephen Foskett is the Organizer of the Tech Field Day Event Series, now part of The Futurum Group. Connect with Stephen on LinkedIn or on X/Twitter.
Thank you for listening to this episode of the Tech Field Day Podcast. If you enjoyed the discussion, please remember to subscribe on YouTube or your favorite podcast application so you don’t miss an episode and do give us a rating and a review. This podcast was brought to you by Tech Field Day, home of IT experts from across the enterprise, now part of The Futurum Group.