It has been a little more than two years since Generative AI services has taken us by storm, and in particular e(a)ffected the workforce who specialize in creating content. With its remarkable never-before-seen generative capabilities, the Gen AI tools required only simple prompts in natural language. In return, they generated novel content, drafted blogs, wrote essays, prepped marketing copies, product designs, and even wrote software codes. In many ways, Gen AI promised unmatched productivity gains and at the same time posed an existential crisis for the intellectual workforce.
Evolving role of Human Intelligence and Generative AI technology
Experts were quick to point out that the tool per se would not replace humans. A human will always be in the loop to make necessary interventions as and when needed. Days passed and the narrative became nuanced. AI will not replace humans. But those who use AI will replace the ones who don’t. People were encouraged to adopt AI. Generative AI services quickly saw mainstream adoption in enterprises offering powerful AI solutions for business.
Last year, Gartner predicted that before 2025, 30% of enterprises will have already implemented an AI-development and testing strategy. But earlier this year, Gen AI quietly entered into the trough of disillusionment – a phase in the Gartner hype cycle where interest wanes as a technology fails to deliver. It is natural for any technology to enter this phase as a result of inflated expectations. However, it is at this stage that the technology faces scrutiny, practical solutions are developed, realistic expectations emerge, at which time the innovation matures and demonstrates its true value.
Trigent quickly identified the potential of Generative AI technology in the software development lifecycle and invested in the different platforms and tools available. The goal is to progressively build depth of expertise in the emerging tech, contribute to technology evolution and embrace innovative software development practices
AI-assisted Coding – A Mixed Bag of Hits and Misses
As a leader in providing Generative AI Solutions for Business, it is only natural that Team Trigent embraced AI-based coding assistants right since its inception. Our developers have adopted a host of tools such as AmazonQ, CoPilot, and ChatGPT in building real-world applications. At a recent gathering of Engineering teams using GenAI, an interesting discussion on the real value of the different LLMs and Developer tools, their limitations and its problems ensued. Here are a few takeaways from that exchange
GenAI definitely accelerates development – With conditions
“For a start, I no longer had to see a blank screen. AWS Whisperer definitely gave me a jumpstart generating a new draft of code,” Stefan, a junior developer, endorsed the Gen AI tool’s ability to help him escape coder’s block.
Emphasizing the importance of iterative prompting, Priya, a senior developer, said, “I have been using CoPilot for some time. It is true that we no longer have to wait to write a fresh line of code. But whatever is generated is only usable if it is fine-tuned with further domain-specific prompts.” She added, “At times when there was a critical delivery, I wrote the code myself rather than spending time prompting.”
According to Sarathbabu, Global Director for Gen AI, AI is a productivity multiplier in software development. “Gen AI has definitely lowered the barriers to coding. There is a speed gain we have witnessed but we have to understand the generated codes are not immune to bugs. The moment bugs creep in, the speed gain evaporates, because it is hard for developers to debug a line of code that they have not written.” Sarathbabu believes AI can get adept at generating hundreds of lines of code, but a single hidden bug could take days to fix.
Gen AI’s Max value is with Code Maintenance
Stefan was vocal about the role of Gen AI in reducing significant time spent on mundane documentation and analysis. “Yes, It helps me complete my coding statements. I find it useful especially in autocompleting code documentation. When I work on codebases that lacked documentation, I use Gen AI to analyze and understand how the application works,”
Mateo, a Lead engineer, acknowledged Gen AI’s ability to reproduce new modules that mirror the existing module or entity. “It certainly reduced the need to manually rewrite similar code snippets multiple times. Wherever AI can predict a pattern, it gives us suggestions in the same structure as how it is in previous entities.” But there is a caveat, he warned. “Not every time we get accurate suggestions. Sometimes it lacks context and repeats what we have already reported. The documentation suggestions get redundant and we need to delete them every time before writing.”
Taylor, another lead engineer, agreed with Mateo on the tools’ shortcomings in contextual abilities. “For example, with CoPilot, when there is a new functionality to be coded, the tool would continue to give suggestions based on previous code patterns, which don’t reflect the new logic, thus slowing down the progress.”
Sarathbabu noted that Gen AI tools demonstrate adequate capability in automating repetitive tasks, but only when the codebase follows a clear pattern and requires minimal context. “The moment the context expands in the form of new functionalities or fresh modules, its usefulness becomes modest.”
GenAI has some way to go for complex application development
The team believes that their productivity increased when the tools were employed for less complex projects such as application support, system upkeep and even modernizing legacy systems. The primary reason being Gen AI’s ability to study a project and refactor existing codes based on the simple prompts. But when it came to complex projects, Gen AI’s use lay predominantly in accelerated learning. For instance, the technology helped developers easily accustom to unfamiliar languages or codebases to get the job done. “AI had limited potential in high-complexity projects that involved multiple frameworks with distinct code logic or novel use cases that required deep contextual awareness,” observed Sarath.
Contextual Generative AI: 7-levels of Context Awareness for Software Development
A significant amount of the inefficiencies in today’s GenAI tools for Software Development can be resolved through enhanced context awareness. Team Trigent identified 7 refinements that Development Teams need to implement for effective use of Gen AI tools:
1 Session Awareness
- Current Gap: Tools like CoPilot, AmazonQ, and ChatGPT have limited memory within a session and often lose context when switching tasks or reopening the same task at a later time.
- Suggested Solution: A persistent, context-aware environment where tools can retain project-specific information across multiple sessions, allowing the AI to build on previous work more effectively. This reduces the need for re-explaining the same context and helps the team pick up where they left off.
2 Role-specific Awareness
- Current Gap: Different developers (junior vs. senior, front-end vs. back-end) have different prompt requirements and work in distinct areas of the code. Current tools apply a one-size-fits-all approach.
- Suggested Solution: A Prompt Library with tailored suggestions based on the developer’s role or level of experience allows the AI to offer more relevant outputs. For example, junior developers might need more educational prompts with explanations, while senior developers may need efficiency-focused solutions.
3 Self Awareness
- Current Gap: The tools can generate code, but often introduce bugs and lack the ability to self-correct.
- Suggested Solution: The selected tools must demonstrate enhanced debugging capabilities, actively suggesting potential causes of bugs, steps for resolution, or even automated tests to verify solutions. This would help developers identify issues faster and reduce the debugging time.
4 Domain Language Awareness
- Current Gap: While natural language prompts work well for generating simple code snippets, more complex requirements often lead to ambiguous or imprecise results.
- Suggested Solution: Train the AI model with Domain and Business-specific data that handles more sophisticated natural language queries by interpreting and decomposing complex problem statements into code. This would be especially helpful for tasks that require intricate logic or multi-step workflows, reducing the need for overly specific technical inputs.
5 Cross-Platform Interoperability
- Current Gap: Tools often cater to specific languages or environments, limiting their use in multi-language, cross-platform projects.
- Suggested Solution: Use AI-driven tools refined to understand cross-platform codebases more deeply. For instance, a Java back-end, React front-end, and Python data pipeline requires integrated AI suggestions that understand how each component interacts and suggest holistic code snippets or solutions.
6 Quality Awareness
- Current Gap: AI tools are mainly used during the development phase but are not fully utilized during code reviews, where manual effort is still required.
- Suggested Solution: Advanced AI capabilities that analyze pull requests and provide code reviews, not only for syntax but also for logic, performance, security, and compliance with best practices, significantly reduce manual code review efforts. AI could flag potential issues proactively, ensuring higher code quality before human intervention.
7 Granular Control over AI Output
- Current Gap: Developers may not always need large blocks of code or full-function implementations, but currently they do not have control over the granularity of AI suggestions.
- Suggested Solution: Utilize a slider or toggle that allows developers to control the depth and granularity of suggestions. For example, a developer might want a simple helper function or a fully fleshed-out class, depending on the situation. This control would allow developers to extract exactly the kind of support they need without overwhelming their workflow.
Looking forward: Co-Pilots or Two Pilots?
Trigent believes that in the next decade, the programming world will have a solution that lies anywhere between today’s prompt-based tools and a full-fledged AI-Software bot. If so, would human developers shed the control to AI and position themselves as Co-pilots in the long run?
“Co-Pilots or Two Pilots” – that would be always best left to the individual coder. They could perceive AI as a tool to accelerate their learning, or use it to expedite code development. Either way, the secret to great code will stem from constant human-AI interactions. Humans will always be in a better position to understand human requirements. Even if software developers realign them as prompt engineers, prompting would still be programming. Only a solid coding foundation will enable you to instruct the machine on what you want, and understand and refine its output quality for real-life applications.
Sarathbabu and the team signed off with a pertinent note. “Sophisticated applications of the future will need a Thinking Human and AI Assistant. While AI would get better and better at autocomplete – the taste, the judgment, and the vision to create amazing human-centric applications may always rest with humans.”