Generative AI in IT industry
Developer productivity has been a big topic in the software engineering world. Generative AI is one emerging technology that can take this to the next level and completely disrupt how we build software.
Evolution of productivity improvement
Engineering teams have always sought ways to improve productivity through efficient, agile processes, organizing teams as PODs, measuring productivity KPIs, etc. The next level of productivity improvement came through more automation from DevOps practices, leveraging tools for test automation, Infrastructure as Code, and use of Low code/No code platforms where applicable. In short, we have used all available methods thus far to deliver high-quality products efficiently.
Generative AI has taken productivity improvement to the next level. Code generation tools such as GitHub Copilot and AWS CodeWhisperer translate the natural language into code. They can be useful to automate repetitive tasks traditionally done by developers. It can help improve the productivity and quality of the product, as outlined in the next section. But remember, like agile has not worked for all scenarios and automation doesn’t work in every situation, Generative AI will not write code for everything.
Generative AI in the software engineering lifecycle
Generative AI-based code generation tools will change the actual engineering process, estimation techniques, the way we write code, testing of software, code deployment, tools used, etc.
It can enable productivity improvement for various roles involved in the software engineering process.
It can help Architects
- Helping them make the right choices
- Validate their decisions, provide pros/cons for alternate approaches
- Document architecture flows, and data models
It can help Product Owners and Business Analysts
- Efficient market research
- Feature prioritization
- Impact:
- Product Managers need to redefine and accelerate the product roadmap to accommodate the increased pace of development.
- They will have to come up with requirements faster and ensure there is enough backlog for the team.
It can help UI/UX designers
- Efficient user research to inform design decisions
- Improve design ideas
- Develop front-end screens from a hand-drawn sketch.
- Rapidly create functional prototypes
- Impact:
- Designers will need to interact more closely with development teams to ensure that the screens are being translated into code correctly.
It can help developers
- Write code snippets for common problems, write unit tests, document code, debug code, etc.
- Onboarding developers to new codebases, reducing context switching for experienced coders, to education and exploration.
- Analyze existing code and identify areas that need improvement, such as performance optimization, security vulnerabilities, and code readability.
- Impact:
- Development teams will need to ensure that the code generated by the AI is secure, maintainable, well-structured, and easy to understand.
- Need to develop new processes and tools to manage the code generated by the AI, including version control and code review processes.
It can help QA Testers
- Use generative AI tools for test case generation, management/reporting, and Test data generation.
- Test execution by AI-base test automation tools
- Impact:
- Testing teams will need to use automated testing tools to keep up with the pace of code generation. Today, test automation is optional. In the future, it will become mandatory.
- Testing teams must evolve their testing strategies to ensure the quality and security of the code generated by the AI. They will need to develop new test cases and methodologies to validate the code generated by the AI and ensure that it meets the required standards.
The impact of generative AI tools on productivity varies across roles and the product development lifecycle – but we see a high impact during development and testing and a low impact when the product is in maintenance mode.
For the last few years, we have said, “Software is eating the world, but AI is eating software.” Today, Generative AI has given a whole new meaning to this line!
Continuous productivity improvement
Recent studies have touted productivity improvements from 25% to 50%. While these numbers can vary based on the domain, complexity, size, team maturity, etc., we know that AI-based code assistant tools will bring productivity improvement is never seen before.
These tools can learn from past projects to continuously improve the quality of the generated code. As these tools improve over time, and we also know how to use them effectively; we can expect continuous productivity improvement in our engineering teams in the coming years.
Looking ahead:
On the one hand, Generative AI-based tools can bring significant productivity improvements resulting in a fear that there will be less demand for software engineers and other roles across the development lifecycle. But on the other hand, it could mean that we can develop software much faster and accelerate product roadmaps. Engineering teams will be able to focus on more complex tasks and the quality of the software. In addition, productivity gains will allow them to focus on tech debt that keeps getting pushed out.
With the help of Generative AI, we will write new software to solve a new class of problems previously considered very complex and expensive. There will also be a big demand to build new software (or rewrite existing software) that uses Generative AI at the core to offer everyone unique experiences and productivity tools. E.g., Reimagining enterprise knowledge management tools can transform them into ChatGPT-type interfaces, enabling access to all enterprise content such as finance, HR, legal, contracts, marketing, etc. This innovation will save significant time for all employees.
Engineering will never be same again
The adoption of generative AI is a game-changer for software engineering. The benefits of this technology are clear, as it brings about productivity gains and introduces new ways of working that will change the face of software engineering forever, despite the need to address certain concerns and challenges. Engineering teams must embrace this change, adapt to new ways of working, and stay ahead of the curve in this rapidly evolving field.
Source