Making Sense of Agentic AI | ThoughtWorks Birgitta Boeckeler
Nov 12, 2024
auto_awesome
Birgitta Boeckeler, Global Lead for AI Assisted Software Delivery at ThoughtWorks, dives into the transformative potential of AI in software development. She shares her insights on agentic AI, discussing its real-world applications and the limitations developers face, especially with legacy codes. Birgitta also emphasizes the importance of clear use cases for successful AI integration and the balance needed to avoid tool fatigue. Joining her, Dan Lines highlights how engineering leaders can measure AI's impact on their teams and refine coding practices for better outcomes.
Agentic AI has the potential to enhance software development by autonomously executing tasks, though it still faces challenges with legacy systems.
Understanding the context of AI tools, including code repositories and documentation, is crucial for optimizing their effectiveness in software delivery.
Engineering leaders should focus on specific high-impact use cases for AI to avoid tool fatigue and maximize return on investment.
Deep dives
Understanding Agentic AI
Agentic AI refers to artificial intelligence systems that operate as agents, meaning they can autonomously execute tasks and make decisions based on given parameters. This type of AI can interact with external tools and provide actionable insights or outputs, such as code generation or testing. The defining characteristic is its ability to communicate with various applications and tools, allowing it to act with a degree of independence. The potential for these systems to enhance software development processes lies in their ability to streamline tasks and improve productivity across different domains.
Challenges with Generative AI in Legacy Systems
Using generative AI within legacy software systems presents unique challenges, as these older codebases often lack proper documentation and modern coding standards. In one experiment, the complexities of a medical record system highlighted the difficulties in understanding domain-specific language when attempting to implement features using AI. The experience illustrated that while AI can enhance search capabilities, its effectiveness diminishes when faced with outdated technologies and convoluted structures. Therefore, developers must still navigate these complexities manually to successfully integrate new features.
The Importance of Context in AI Tools
Successfully leveraging AI tools requires a comprehensive understanding of the context in which they operate, including familiarity with code repositories, project documentation, and team practices. The ability for AI to draw on diverse information sources can significantly enhance its usefulness and relevance in offering suggestions and generating code. By integrating context awareness into AI systems, organizations can optimize their programming practices and boost efficiency. Finding ways to structure and make sense of this context is crucial for maximizing AI's potential in software development.
Navigating the AI Tool Landscape
With a vast number of AI tools emerging for software development, organizations face the challenge of discerning which solutions can genuinely deliver value. As many tools promise expansive capabilities, engineering leaders are encouraged to focus on specific, high-impact use cases where AI can be effectively implemented. This might include standardized coding practices, automating reviews, or improving collaboration among team members. By honing in on practical applications, teams can avoid tool fatigue and ensure that they are deriving concrete benefits from their AI investments.
Refactor, Don't Duplicate: AI's Role in Code Maintenance
Generative AI tends to excel at adding new lines of code rather than modifying existing ones, leading to potential code duplication and maintenance challenges. Studies suggest that while AI can generate new features quickly, it frequently struggles with more complex refactorings. This may result in the proliferation of redundant code, complicating long-term maintenance and quality assurance. Developers are therefore advised to approach AI-generated additions cautiously, balancing the speed of development with the need for maintainable and efficient code structures.
There’s AI agents. There’s AI tooling. Do either drive business impact or are they just more things your dev team is supposed to stay on top of?
Birgitta Boeckeler, Global Lead for AI Assisted Software Delivery at ThoughtWorks, joins the show to discuss the practical applications of AI in software delivery. She shares her research on AI agents, highlights areas where AI hasn't lived up to the hype, and offers concrete examples of useful AI tools for development teams.
Dan Lines then joins the conversation to provide his perspective on how engineering leaders can leverage these insights to effectively implement AI within their own teams. He also discusses LinearB's efforts in helping software teams measure the business impact of AI.