Cory Hymel, Vice President of Innovation and Research at Crowdbotics, brings his extensive expertise in AI and software development to the forefront in this engaging Q&A. Hymel delves into the transformative impact of AI on the software development lifecycle, highlighting its influence on areas like code generation, requirements engineering, and context management. He explores the potential of multi-agent systems to address current gaps in off-the-shelf AI tools, emphasizing their ability to enhance performance and efficiency.
From discussing the evolving roles of software engineers as AI becomes more capable to envisioning a future where AI democratizes software creation, Hymel provides a forward-looking perspective on AI's role in reshaping the industry. The discussion also touches on Crowdbotics’ joint research with Microsoft and GitHub, showcasing the tangible benefits of collaborative AI tools in improving developer productivity and task success rates.
Hymel: To date, code generation has been the hot topic not only in capital raises but also in research. Roughly 56% of the research publications in the past few years has been focused on code gen with the fast follow of 23% on maintenance which is tangential to code gen. Code generation in and of itself is mainly bisected into two main categories: full code gen such as Deven and code gen support such as GitHub Copilot. Empirically code gen support (i.e. code assistants) have had the largest impact on productivity however are also the most studied.
Hymel: Context is the most important thing in software development. That being said, context is a very wide concept that covers a lot of different areas. For instance, a developer may need context as to the current block of code they’re working on and how it may impact other areas. A designer needs user context to create proper experiences. Testers need context to know how outcomes should be reported. Product managers need context of the problem to accurately define requirements. Today that context is spread across a lot of individuals and is typically not shared efficiently. There are some knowledge management tools that look to capture that context such as Jira, Confluence, and other project management tools but it still relies on humans to consume that context and apply where they need it. AI is uniquely positioned to be a transformative technology by centralizing KM and making it not only more accessible but also extensible as it can automatically capture knowledge from various sources without manual intervention. You can find more information on how AI can act as KM in a whitepaper I recently published titled 'The AI-Native Software Development Lifecycle: A Theoretical and Practical New Methodology'.