. One of my biggest areas of discomfort when projecting the impact of AI on software development is around the role of the software engineer. If the maxim that any job / role that is rule, pattern or principle guided, can (will) be assisted (replaced) by AI, then surely most software engineer roles fall into this category. The counter of course is that while a broad slice of software engineering is the application of existing rules, patterns and principles to meet requirements, there is undoubtedly a more sophisticated skill set associated with the software development process which AI will struggle with for some time: 1.
Requirement gathering and needs translation. 2. Creativity in design 3. Abstract problem solving These require a more sophisticated mindset and typically benefit from a wealth of experience (failure) to hone. The problem I think, based on my own experience of 35 years, leading software teams for large multinational companies across the world, is that unfortunately we humans are far from perfect ourselves at these tasks. Part of the reason for this is that we've built such a complex abstraction layer between the need and solution that even if we can identify a simple requirement, we instinctively look to overcomplicate it with edge cases, overengineering, SDLC methodologies and a glut of self-imposed constraints and limitations.
Add to that - that the software engineer isn't the only role in the process - the stakeholders, business analysts, the PMs, the architects, the testers and the user acceptance folks all have their views and beliefs on what a great solution looks like, and often these aren't aligned and in some cases completely misaligned to the goals of the engineer. I've worked on countless projects and applications over the years and can count on one hand the times everyone came away believing they had unequivocally gotten exactly what they wanted.
So yes, AI isn't going to necessarily always improve the quality of the output of the software development process, but it will definitely improve the speed and this is hugely important. One thing I totally see agreement on from the developer community is the belief that AI will allow faster turnaround, allowing developers to move quicker and ultimately reduce the loaded cost of software development. This speed increase/cost reduction should play out across all the other roles involved in software development as previously noted.
Faster, cheaper software, while not necessarily being better, will be significant for two reasons: Firstly, there is already a high tolerance from many for speed over quality, compounded by the acceleration in the rate of change being seen during this digital transformation phase - speed to market is key. Solutions which are 80% complete but first to market will often beat software which is 100% complete but late. Secondly, the cost savings of AI-assisted software development shouldn't be underestimated. Software development teams, rather than trying to meet a broader set of user requirements in order to be commercially viable, could now turn to completely bespoke, tailored solutions and still remain financially sound.
Turning around a single customer's needs rather than taking months to build for a broader customer base could change the entire face of software development, ultimately leading to a world of bespoke, tailored 'solutionization' (made up word). Pay less, and get quicker, a solution that 100% meets your needs, or wait and ultimately pay more for something that meets 75% of everyone's needs ? Don't get me wrong there are numerous scenarios where high quality tolerances are not only needed but demand (air safety, health, financial services etc) but a much larger base where they are not and I see this shift to AI assisted, low cost, rapid bespoke software development happening here first.
But... then the challenge is, we humans with our overly creative, overengineered, abstracted working practices might just be the thing that slows all this down. We'd just get in the way of just good enough, rapid deployment of low cost bespoke solutions. So, ironically, rather than replacement by AI, software engineers' biggest risk might well be failing to adapt to the market's accelerating demands for speedy, low-cost, tailored solutions
