Impact of ‘Generative AI’ on Software Engineering
Image curacy: https://serokell.io/

Impact of ‘Generative AI’ on Software Engineering

Whilst AI is already used in various areas of software engineering, the emergence of “Generative AI” technologies, such as GitHub Copilot, TabNine and others, have ignited the imaginations and fears of many people. In recent months, “Generative AI” has led to notable advances in software engineering with a potential of disrupting many of the processes involved in software development. Gartner predicts that by end of 2023, 35% of the technology companies would have started using Generative AI in some or the other fashion!


This work could include tasks such as code generation, bug fixing, testing, knowledge transition and even the design of software architectures. Generative AI has even helped in writing this article??


The primary area where generative AI is already making an impact is in code generation. By using machine learning algorithms to analyze large datasets of code, generative AI (tools like GitHub Copilot) can identify patterns and generate new code and also related test cases that meets specific requirements. This can save developers a significant amount of time and effort and produce consistent quality of the code (we off-course need to ensure that the quality is in right direction) produced. Generative AI also has the potential to impact multiple roles in the software development ecosystem, from product managers to developers, to data scientists to DevOps engineers and to technical writers.


The specific increase in productivity will depend on the complexity of the project and the level of assistance provided by the GAI technology. However, some studies have shown that the use of generative AI can reduce development time and increase productivity by up to 55%. [Reference Pt# 3]

?

Second area where generative AI could have an impact is in bug fixing. By analyzing code and identifying common errors, AI systems can generate patches and fixes that can be automatically applied to software systems which are not very data intensive. This could help reduce the amount of time and resources that software engineers need to spend on understanding the code (especially in AMS kind of engagements where the application may be old & developed by someone else), debugging and testing, freeing them up to focus on more complex tasks. Generative AI can help developers save time by automating repetitive tasks such as creating UIs, tests, and documentation. It can also help reduce errors and improve the quality of software by generating code that is more consistent.



Third area where generative AI tools would be used is in ‘knowledge transition’ management. Traditionally organizations have struggled while taking over (legacy) applications for maintenance and have spent enough efforts & money in managing KT! It is likely that these new tools may facilitate whole KT process by:

o??Generating a concise view (summary) of application functionality by code scanning.

o??Generate a functionality and/or technology summary from countless/long application documentation.

o??Generating error analysis by identifying data with higher error rates and visualizing the distribution of it in your code.

This should help ease the challenges in the ‘application remediation’ scenarios during the application modernization drive.????


Fourth potential area where ‘Generative AI’ may be of use in software development would be in managing security. It would be easy to deploy rules responding to security threats automatically and intelligently.


Finally, generative AI possibility could have an impact on the design of software architectures. By analyzing existing systems and identifying patterns and relationships, AI systems can generate new architectures that are optimized for specific requirements. This however has not been widely tested and could be a far-fetched thing!


Overall, the impact of generative AI on software engineering is likely to be significant and could lead to a more efficient and effective development process. However, it also poses several challenges that must be addressed.


Trained workforce to use ‘Generative AI tools’: Quite often technologies have failed just because those weren’t easy for adoption. While there is a lot of buzz around GitHub Copilot-x and similar tools, most of the usage has been limited to PoC’s & studies and by far few people. Training the software development workforce for ‘Generative AI’ tool assistance would be major task ahead of all the software services organizations!


Intellectual Property Rights: Code IP is yet another big challenge where there is a lot of uncertainty today for enterprises to adopt these tools. While Microsoft and other companies like Hugging Face are making effort to train their models (GitHub copilot x & CodeGen respectively) specifically on open-source codes, it is yet not formally available.?


No guarantee that output produced / suggested is correct: Generative AI algorithms are typically trained on a specific domain & with available set of databases, which can limit their ability to generate code outside of that domain. Developers must be aware of the limitations of the technology and plan to use it with appropriate manual intervention at each output level.


Interpretability: Generative AI algorithms can produce complex and opaque models that are difficult to understand or explain. This can make it challenging to identify and fix issues, or to ensure compliance with regulations.


Still need Human Brains: It is not the case that Generative AI would replace humans. But humans can use this to be efficient, responsive and transform businesses towards automation continuum.


Conclusion: Addressing these challenges will be crucial for realizing the potential of Generative AI in software engineering. This will require collaboration between software developers, data scientists, and project managers to ensure that the technology is used responsibly and effectively.


Perhaps with a combination of externally trained GAI tools together with ‘in-house’ training (by feeding-in tried and tested code to the GAI tools); IP and code quality related concerns could be minimized.


Contribution: Girish Acharya & Preetam Mudliar


References:

1.?????Dealroom.co

2.?????https://www.enterpriseappstoday.com/

3.?????https://arxiv.org/pdf/2302.06590.pdf

4.?????https://economics.mit.edu/sites/default/files/inline-files/Noy_Zhang_1.pdf

Kalyan Dhokte

Practice Head - SRE Digital Engineering, Pune Digital Transformation | Cloud Architect | Thought Leadership

1 年

Good article ??..thanks for sharing

回复
Ratish Pandey

Service Delivery Manager at Accenture

1 年

Quite insightful , thanks for sharing

回复
Vinayak Kulkarni

Co-Founder at Intellify Solutions | President at BOND.AI

1 年

Very informative writeup Suhas Joshi ??

回复

要查看或添加评论,请登录

Suhas Joshi的更多文章

社区洞察

其他会员也浏览了