In the first blog in ‘The AI shift’ series, we examined what the job of software development entails, with the second blog looking at how it has changed with artificial intelligence (AI). In this final blog, we will look at the different categories of tasks for which AI can be used and discuss the mindset needed to use it effectively.
AI is able to perform more complex tasks with each new release. However, the way forward for software developers using AI for their work needs to be balanced. While software developers can use AI for different purposes, I’ll focus on three of them here: 1. generating code for a new project, 2. reviewing existing code and identifying errors, and 3. learning new concepts. I’ll deal with each of these separately, with a focus on mindful use of AI.

Most of us are naturally sceptical. When presented with what seems like a simple argument, we tend to question it and identify missing details. This human characteristic is even more important for developers creating code with AI. AI-generated code should be treated as a suggestion of how to approach a problem, not the best possible solution. One of the great things about AI systems is that we can debate with them, and we should. We can ask why they made certain choices and challenge the reasoning behind them. This may lead to a better solution, but even when it does not, the process forces us to pause and understand the AI-generated code in detail, because that’s the only way to critique it properly. Doing so requires a strong foundation in programming concepts. A skilled developer can assess whether AI has chosen an appropriate data structure or implemented an efficient solution, just as a photographer can spot an unnatural shadow or incorrect lighting in an AI-generated image. In each case, the ability to evaluate the output depends on having enough expertise to recognise what good work looks like.
In the past, when faced with an error in code, there were two options—getting help from another team member or searching the web for someone who encountered a similar problem. AI makes debugging much faster; we can now paste an error message and the line of code causing it into a chat window, understand what is causing it, and arrive at a fix much faster. Even better, we can share snippets of code, such as a part of an Application Programming Interface, and get instant feedback on whether our logic is sound, the database query is optimal, and whether we have appropriate error-handling steps. This helps catch and fix potential errors and bugs much earlier in the development lifecycle, long before deployment.
The world of software development is constantly changing. Every day, new technologies, concepts, and major updates to existing programming languages and libraries are released. As a developer, it is incredibly challenging to keep up with new frameworks and releases, let alone assess whether an existing project could benefit from newer tech. AI can simplify new concepts and, when prompted carefully, can also assess whether an update to existing code would be helpful. This makes it easier for developers to understand and build skills in parts of software development they previously lacked expertise in. For instance, a developer who used to work on the backend architecture can now learn a frontend framework or how to deploy software.
However, when learning with AI, it’s important to go back and validate what we learn against reputable sources, especially while delving into details and facts. AI can make complex ideas easier to understand, but accessibility is not a substitute for accuracy.
Going forward in the AI era, software developers may be more valued if they have better communication and articulation skills that improve the solutions generated by AI. Prompting as a skill is also gaining prominence. Programming languages that are more naturally amenable to ‘testing’ and have static ‘types’ are gaining prominence, with TypeScript overtaking Python as the number one preferred language for repositories on GitHub.
On the flip side, a growing concern is the amount of land, energy, and water that is consumed to train the large language models on which AI systems are built. As these resources become scarcer, individual developers, organisations, and governments may favour AI that is developed using fewer resources and with a smaller overall environmental footprint.
Coming to the most important question: Will AI wholly replace human software developers? Perhaps not. Developers were never solely code-generating machines to begin with. They have always used their ingenuity to solve problems. This human ingenuity has created value in the past and will continue to do so in an AI-driven future.
With growing electricity demand, renewable energy penetration, and storage requirements, Indian distribution...
In the first blog in ‘The AI shift’ series, we looked into...
Following our photo essay from the field, this blog looks at the...
In this three-part blog series titled ‘The AI shift’, I examine how...
Snow-covered mountains, pristine lakes, green valleys—this is the Kashmir we know. But...
Amid the global oil shocks caused by the West Asia conflict, there...