How AI Can Transform The Software Engineering Process

CTO of Softengi with 30 years of experience in software development, business applications implementation and digital strategy creation.

getty

Despite the fact that, according to Business Insider, ChatGPT creator OpenAI might be training its AI technology to replace some software engineers, numerous experts are confident this won’t affect the qualified development workforce.

One of them is Alan Fern, a professor of computer science and executive director of AI research at Oregon State University’s College of Engineering. In an email to Government Technology, he stated that many highly skilled developers have expressed that automation tools have improved their efficiency, helping them excel at completing repetitive tasks that would otherwise consume valuable time to research or learn. He also added, “I think programmers will be employed for a long time, but the efficiency will improve dramatically.”

As reported by Acceleration Economy, with the ability to generate surprisingly complex and accurate code, tools like ChatGPT are the future of software development. However, they won’t be replacing developers any time soon. In fact, generative AI will expedite the pace of modern software development, promote experimentation and even transform the current software engineering funnel in the future.

Revolutionizing The Existing Software Engineering Funnel With AI

At this stage of conversational AI development, tools like ChatGPT, Bing AI, Copilot, Tabnine and Amazon CodeWhisperer won’t replace development teams but rather empower them to accelerate app development, write more eloquent code and optimize the existing software engineering concept.

Let’s review the current fundamental stages of software development and how AI-powered tools can help enhance them.

• Gather requirements and make the delivery process requirement- and test-driven – Nowadays, AI can make the process more precise. For instance, OpenAI Codex with Selenium can assist a business analyst and QA engineer in defining all necessary user stories for particular use cases and generate auto-tests to cover all possible test cases.

• UI\UX design – With the announcement of ChatGPT-4 and its multi-modal capabilities that can expand text representations by, for example, image content, design specialists could build user interfaces and create customer journeys more effectively.

• Architecture definition – As far as app architecture goes, AI cannot evaluate the trade-offs between different architectural decisions. So it will still rely on the intuition and experience of a senior developer for the most part. Nevertheless, AI can drill down the architecture by suggesting relevant services from public cloud providers or calculating the TCO of the target architecture.

• Coding – Writing code is one of the areas that will definitely benefit from AI. For example, when using Bing AI, the role of senior engineers will be to verify and polish the code since the tool still makes mistakes. A new method for developing code will be applied widely: prompt engineering. It will be used for generating code snippets based on given prompts, facilitating prototyping and iterating on different ideas.

• Unit tests. Since unit tests are typically automated, they are one of the areas where AI will be most useful. For example, CodeWhisperer does an excellent job at automating unit tests.

• Integrations – API integration is not easy and makes organizations face many challenges (e.g., technological complexity, security risks, multiple systems, employee reluctance). Copilot is very good at solving the task of developing API integrations.

• Acceptance testing – AI will assist humans in rapidly accepting all aspects of the IT product, minimizing business risks and ensuring full transparency of the acceptance for stakeholders.

• Deployment – AI-based tools can help verify deployments and shorten the time needed to deploy features. In addition, they can assist during the post-deployment phase, flagging errors and uncovering abnormalities by analyzing system logs.

Prediction For The Future Software Engineering Process Transformation

One of the possible ways for the software engineering process to transform is to fall into two distinctive stages—creative and delivery. Working closely with AI during the first stage, greater human involvement will be required, while the second stage will rely more on AI.

• Creative stage – At this stage, the goal of a business analyst or a software architect will be to interact with AI, capitalizing on their knowledge of business practices and communicating this information to AI. A number of iterations with the involvement of the customers will take place until the required upshots are achieved. The result of this stage will be project requirements, architecture, design and acceptance criteria. Good knowledge of how to collaborate with particular AI tools is going to be crucial for business analysts and software architects.

• Delivery stage – During the second stage, AI tools will be used to generate, test and deploy the code. The role of the senior software engineer will be to review and polish the code and deploy the app. Good expertise in using particular AI tools on behalf of business analysts and software architects will be necessary, too. The result of this stage will be PoC, applications, acceptance testing, deployment scripts, as well as technical and user documentation. Additionally, AI can assist in identifying bugs and suggesting solutions, improving the accuracy and efficiency of the development process. Ultimately, this could lead to higher-quality software products delivered in less time, while engineers could focus on more complex and creative problem-solving.

Conclusion

Utilizing AI-powered tools can significantly improve the efficiency of software development processes. Jonathan Burket, a senior engineering manager at language-learning app maker Duolingo Inc., admits that Copilot makes him 25% more efficient. In addition, a paper presented by researchers at Microsoft and MIT states that developers using AI tools are able to complete their tasks 55.8% faster.

From the perspective of the software engineering process, it will change with time, with prompt engineering playing a pivotal role in its development. Code adaptability will also improve, as inheriting code by one team from another will be more seamless. Knowing how to effectively apply AI in their operations will become an industry standard for business analysts and software architectures.

To sum up, organizations that invest in creating custom software will find automating repetitive tasks through AI technology a potential point of growth. It can lead to better quality end-products and quicker turnaround times, making it a promising venture to explore.

Forbes Technology Council is an invitation-only community for world-class CIOs, CTOs and technology executives. Do I qualify?