Generative AI is a remarkable innovation, and the results of its use are captivating. Tools like DALL-E and ChatGPT have rapidly transitioned from research labs into the mainstream. They are widely discussed on social networks, used by both professionals and laypeople, and their outputs – be it texts, images, or code – resemble human creations remarkably.
According to Statista , the generative AI market will reach $207 billion by 2030. It will show an impressive annual growth rate of 24.4% between 2023 and 2030. Another source, MarketResearch.Biz, expects the size of the generative AI market in software development to hit $169.2 billion by 2032. However, due to the rapid pace of current advancements, it's challenging to predict exact figures; this technology is expanding at breakneck speed.
If harnessed effectively, generative AI in software development could soon become commonplace. It's widely used now, and in the future, it may become a necessity for IT professionals worldwide.
McKinsey & Company recently conducted an extensive study to explore the influence of this innovative technology on the work of developers. The researchers assembled a lab with over 40 specialists from different countries, who had various levels of experience and expertise. For several weeks, participants completed common coding tasks in the following areas: generating new code, refactoring existing code, and documentation.
There were two groups performing the above activities. One of them could use two leading generative AI tools, while the other had to work without AI assistance. The study collected quantitative timing data, task surveys, code quality assessments, and participant feedback.
The results reveal that when properly utilized, this technology can markedly quicken numerous everyday coding jobs. IT specialists reduced code documentation time by almost 50% through collaboration with intelligent software. They were also about 35-45% faster at writing new code and about 20-30% faster at improving existing code.
Yet, McKinsey found that getting productivity gains requires thoughtful implementation. The time savings declined for demanding tasks, especially among junior developers. But with the right human oversight, code quality did not suffer – it even slightly improved in some areas like readability.
The study highlights the importance of generative AI for developers but sees is as a tool rather than a replacement. To ensure quality, prompt engineering skills are essential to guide AI properly.
While speedy code generation grabs headlines, McKinsey found major productivity gains across documentation, refactoring, and more. However, the technology is still most suitable for basic prompts, not complex coding challenges.
McKinsey's research indicates that generative AI in software development promises to significantly boost the productivity of IT professionals if thoughtfully leveraged. But realizing this potential will require investments in prompt engineering skills, use case selection, risk management, and more.
Let's focus on coding tasks where generative AI demonstrates particular promise. Smart tools excel at handling repetitive manual work – quickly generating boilerplate code so that developers can focus on higher-value challenges. AI also facilitates drafting new code, giving hints on how to overcome writer's block. For updating existing code, it can rapidly implement iterations when given proper prompts.
When software engineers encounter unfamiliar coding challenges, AI ensures quick upskilling. It can provide explanations for new concepts, compare different pieces of code, and deliver tutorials on frameworks to help engineers quickly grasp the required knowledge. This enhanced knowledge helps IT professionals to take on more complex assignments.
Four prime areas where smart technology is of great help are:
AI quickly creates standard code, functions, and documents, saving developers from boring work and making them much faster and more productive.
Starting new projects
Smart tools help get past the problem of not knowing where to start. They suggest code when you describe what you want to do. This makes you more creative and helps you work faster.
Simplifying changes
With specific modifications in mind, developers can use AI to improve existing code rapidly. This speeds up improvements.
Learning new things
When working on something new, AI offers tutorials, examples, and explanations to help you learn quickly. This makes you more productive on new projects.
In simple terms, generative AI in software development makes humans better at coding.
It’s hard to question the usefulness of generative AI for developers. However, human expertise is critical in several key areas. These are:
Error detection
Human programmers remain indispensable in scrutinizing code for bugs and errors. Researchers identified situations where smart tools gave inaccurate suggestions and even made critical mistakes. Thus, one expert had to input multiple prompts to rectify an erroneous assumption made by AI. Another programmer described the need to painstakingly guide the tool through the debugging process to secure coding accuracy.
Contextual insight
Ready-made smart tools possess coding knowledge, but they lack awareness of the unique requirements of specific businesses. Understanding such context is vital for qualitative work to ensure seamless integration with other software solutions, adherence to key standards, and the fulfillment of users’ requirements. Professional human developers furnish AI with contextual information. They specify how the code will be used, who the end-users are, the systems it will interact with, data considerations, and more.
Complex problem-solving
AI in software development excels at handling straightforward prompts, including code snippet optimization. However, when faced with intricate coding requirements, like merging multiple frameworks with distinct code logic, human professionals demonstrate their superiority. Generative technology becomes less useful as problems become more intricate and require a holistic approach.
So, high-quality coding still demands human intervention.
As the tech world keeps changing, there emerge many AI tools for developers. Let’s look at the most popular solutions:
ChatGPT
This no-cost application is a prime example of the vast potential of generative AI. While it may not be the ideal choice for coding-related assignments, it excels at generating boilerplate code, translating code into various languages, and automating routine tasks. It provides an excellent starting point for those looking to delve into the world of generative AI in software development.
GitHub Copilot
When talking about AI for developers, GitHub Copilot is one of the prime options. Powered by OpenAI Codex, which has undergone extensive training on diverse codebases, this tool provides precise code recommendations tailored to your project's requirements and stylistic preferences. It proves particularly useful for programming in languages such as Python, JavaScript, and more.
Google Bard
This application is compatible with 20 programming languages, capable of producing code based on your inputs and comments, elucidating code, and aiding in code modifications. Moreover, it comes at no cost.
Auto-GPT
This tool aims to make GPT work more independently. It breaks big tasks into smaller ones and uses multiple GPT instances to handle them. This can make it more efficient for complex projects.
Amazon CodeWhisperer
Amazon's tool recommends code by analyzing your prompts, comments, and project code. It excels when it comes to coding that involves AWS APIs such as EC2, Lambda, and S3.
Tabnine
Tabnine is an additional AI coding companion leveraging OpenAI Codex. It is good at auto-completing lines of code or even entire functions, and it seamlessly aligns with the code style of your project. What sets it apart is its compatibility with a wide array of applications.
CodeWP
This tool is highly effective for WordPress development, producing PHP, Javascript, and jQuery code that seamlessly integrates with WordPress, its associated plugins, and databases. Despite its relatively recent introduction, it receives regular updates to enhance its capabilities.
What the Diff
This tool streamlines the process of code review and documentation by examining disparities in code and producing concise summaries using simple language. It proves beneficial for keeping non-technical team members in the loop and enhancing documentation quality.
Text-to-image tools
Applications such as DALL-E 2, Stable Diffusion, and Midjourney are capable of producing images based on textual prompts, a valuable feature for crafting front-end design components and creating image placeholders.
Remember to be cautious, though. Many big companies have concerns about how GPT and similar tools handle sensitive data, and these tools aren't completely independent yet. While they boost productivity, they don't replace the role of human engineers, at least not right now.
Generative AI in software development has the immense potential to transform workflows and significantly boost productivity. However, realizing these benefits requires thoughtful implementation tailored to each organization's unique requirements.
Professionals involved in the development of custom solutions should emphasize ethical AI practices, continuous training, and the adoption of new approaches to smart technology. Implementing robust human oversight mechanisms is crucial. When human developers and AI tools work together diligently, we can boost productivity and reduce risks. The future looks good for those who use generative AI carefully and responsibly.
Note: Written by Valentin Kuzmenko, VP of Sales at Andersen.