The Day After Tomorrow is back after a few weeks’ break, which I spent on my summer vacation and recovering from my summer vacation.
We are kicking off a new series about the future of work and how AI and other technological breakthroughs will fundamentally change the workplace for most of humanity over the next decade or two. The future of work is a vast topic and the idea is to break it down by industries and job functions to try and make sense of it.
If you have concerns about how AI might affect your job, or if you are going to start your career soon and are wondering what profession to choose - I hope this series will help and provide the insight you need to make the right decisions.
I’ll start with the Technology sector, since it is the one I know best. It’s also interesting that the people closest to, and contributing the most to, the AI revolution are also likely to be one of the most impacted by it in the near future.
However much the world likes to paint all technology professionals with a single brush and call them “techies” or “tech bros” or “IT workers” or “coders” - things aren’t that simple. This is a job category that is vast and diverse, with very different job roles ranging from coding and design, to system administration and project management, all playing crucial roles in the technology ecosystem. Each of these jobs require very different skill sets and are also likely to be impacted by AI and automation in different ways.
So let’s take this one small step at a time.
Software Development
In the digital age we live in, software is virtually omnipresent. From the smartphones we swipe through daily to the intricate systems that guide planes and spacecraft, software forms the backbone of modern life. Millions of software developers and testers across the world are busy at work to build and maintain all of this digital infrastructure. And while it is easy (lazy) to paint all of these professionals with a broad brush, the truth is their roles are incredibly nuanced. From frontend to backend development, database management, system architecture, and more, the tasks vary widely. And even within development or testing there are often micro-niches. For many, their detailed focus means they may not always have the opportunity to step back and gauge the larger impact of their work or the broader trends at play.
India is an interesting case study, it has benefited from the global IT boom - and almost every technology company worth its name has offices in India. As per the National Association of Software and Service Companies (NASSCOM), the IT sector in India alone employs over 4 million people. While there is a growing wave of Indian product-based companies and startups, the majority of those millions work for large-scale IT service companies (TCS, Infosys, Wipro etc.) outsourcing work from across the developed world. This works because India has a huge professionally educated, English proficient population of engineering graduates who can be paid wages that are way higher than median wages for other jobs in the country and yet significantly below what is paid in developed nations. (Though the gap has been narrowing of late).
AI + Code
Large language models like GPT-4 are very proficient in writing code - in most popular programming languages, having been trained on billions of lines of code from GitHub and other public sources. This development of incorporating AI driven co-pilots into the coding process is very recent and it is only over the last few months that the capability of these models has increased to a level to do this as more than a gimmick, and as something truly useful.
This is a breakthrough - and it will transform programmer productivity like never before. In effect it has already transformed individual software developers into technical leads, though they may have not realized it themselves.
These AI-driven tools promise substantial productivity boosts. Developers are now finding themselves spending less time on mundane tasks, with AI offering suggestions, rectifying bugs, or even drafting whole sections of code. It's akin to having a junior coder who you are sitting with and providing real-time feedback and insights. The catch being that this junior coder is superhuman and writes code and incorporates feedback instantly.
So where does this leave us?
Is the glass half-full?
Software development productivity sky rockets, this means faster progress for humanity
Software developers do not get replaced by AI, instead are given a power-boost or level-up enhancement that lets them build more complex and efficient code while leaving the mundane to the machine
Demand for software is predicted to exponentially increase, creating a need for more software developers and better AI to help them do even more
Or is it half-empty?
The era of mass hiring in the software sector could be at an end. At the lower end the AI is more cost effective (cheaper) and productive (faster) than the median fresher out of college.
The major IT firms in India, which have thrived on the outsourcing model, there's a pressing need for introspection and evolution. If these companies remain static, they risk obsolescence. With the advancement of AI, companies globally might find it more cost-effective and efficient to "outsource" tasks to AI rather than human teams, potentially signaling a decline, if not the end, of the traditional outsourcing model.
This could cause a spike in unemployment and a rebalancing of salary levels across the industry.
So what does a software developer need to do to survive in this brave new world?
Skill vs Experience vs Adaptability
A useful way to think of this is across these three variables:
Skill
In software development, possessing the right skill set is crucial. A skilled developer can optimize algorithms, reduce computational complexity, and ensure scalable architecture. This not only enhances application performance but also ensures maintainability, reducing technical debt in the long run. The aptitude for creating and understanding code is a talent that has to be nurtured and not everyone has what it takes.
Experience
OK, so AI can code now, what is that indispensable quality that a human contributes? If you think the answer lies in the nuanced tapestry of human experience (Well, at least in 2023 that might still be true) then experience is key. The innate human ability to understand subjective experiences, cultural nuances and the ever-evolving whims of human users. Senior developers bring with them a treasure trove of domain knowledge and an understanding of past mistakes. This intuition (for the lack of a better word) honed from years of hand-on work, is something that the current generation of AI cannot entirely approximate.
Adaptability
Technology has a recurring pattern: newer generations embrace it faster, internalizing its features and integrating them into their workflows more effortlessly. The rise of coding co-pilots and generative AI in coding will likely follow the same trajectory. Today's "dinosaurs," no matter how proficient, might view these tools with a mix of curiosity and suspicion. In contrast, budding coders, digital natives of the modern age, will perceive them as natural extensions of their coding arsenal. For these newer coders, working hand-in-hand with AI will become second nature, just as the previous generation adapted to the internet or smartphones.
So who is about to become obsolete, and who will continue to stay relevant?
(🔴LLL) If you score low in all three categories, then, sorry but you are probably already (or about to be) obsolete
(🟢LLH) If you are a fresh graduate or still studying and are low in skill and experience but you are highly adaptable, then there is promise for you if you are ready to work hard. In fact you could move to the blue cluster within a very short time if you apply yourself.
(🟡HHL) If you score high in skill and experience, but are not adaptable, you will likely stay relevant for a few more years but the clock has started its countdown to obsolescence. Adaptability is also a harder skill to learn as you grow older.
(🔵 HLH) If you score high in skill and adaptability, but do not have experience, this might be a better place to be than the previous cluster. The pathway to purple is easier from here.
(🟣 HHH) If you score high in all three categories, congrats, you are now the mythical 100x engineer, and are ready to conquer the world.
When co-pilots graduate to auto-pilots?
The world of AI isn't static. We're on an exponential curve, and what that entails is a pace of development that can sometimes defy our innate human ability to understand and adapt. This blistering speed of advancement begs the question: what happens when our co-pilots, the AIs assisting us today, become autopilots, capable of independent action?
Before diving deeper, let's explain two key concepts: agents and context window.
Agents
An agent, in the realm of AI, is a system or software that can autonomously perform tasks or make decisions based on its programming or learning. They're designed to observe, act, and adapt. Rudimentary AI agents are already being crafted using open source models or APIs from OpenAI and Anthropic. Personally I haven’t found them very useful but there is no doubt in my mind that in the near future we will have capable agents ready to carry out complex objectives near-autonomously.
Context window
The context window in LLMs, such as GPT-3's 2K tokens or GPT-4's larger 32K, defines the model's input processing capacity. These expansive windows significantly elevate performance, especially in code generation, by enabling in-context learning from detailed prompts. By understanding more extensive segments of code or instructions, an LLM can generate code more effectively, comprehensively, and contextually, ensuring that the output aligns closely with the developer's intent. LLMs with 100K context (Eg: Anthropic’s Claude) already exist, in theory this is sufficient to hold entire code bases in context. (Note: As a rough rule of thumb, 1 token = 4 letters)
Now that we have understood the level-ups in capability that are at the doorstep, imagine a near-future scenario where you can instruct an AI as you would a seasoned developer. "Build me a responsive web application for a bookstore," you might say. The AI, in its autopilot mode, could take care of:
Design and Development: Draft, design, and execute the entire application. The code it writes would not only function flawlessly but also be annotated with clear, concise comments explaining each segment.
Maintenance: Assess and update existing codebases, optimizing for the latest practices and preemptively resolving potential issues.
Re-Architecting: If needed, the AI could even restructure the entire codebase, ensuring optimal performance and resilience. Alongside, it could create comprehensive design documentation, elaborating on every decision made.
Testing: Beyond manual testing, the AI would conduct extensive automated testing routines, mimicking thousands of user behaviors in minutes. These digital testers would work round-the-clock, learning with each iteration, ensuring a near-perfect final product.
Where would this leave us humans?
But realistically, will change happen fast enough to start preparing for it today?
Unlike many other careers we will look at in this series, software development is relatively unburdened by regulations, especially when compared to industries like healthcare, manufacturing and autonomous vehicles. This lack of red tape means innovations might be adopted more quickly, but it also implies a need for vigilance and self-imposed ethical standards.
One of the major factors that is preventing a faster adoption of coding assistants is the privacy aspect. Large organizations are zealous about their code, which is their intellectual property and quite reasonably do not want it to be ogled at by AI owned and maintained by other for-profit private companies (This is less of a problem in startups that like to move fast and break things). However there is already a movement (largely from the open source community) to create LLMs that can be run locally, without any connection to the Internet or someone else’s cloud. These models are currently a year or two behind the cutting edge in terms of capability but once the catch up, all bets are off.
The fusion of AI and software development isn't just another blip in the timeline of innovation. As AIs progress from mere co-pilots to full-fledged architects, it leaves us teetering on the precipice of a new era. An era where lines between creator and creation blur, where our tools no longer just serve but also shape, innovate, and even challenge.
The software world is hurtling towards a reckoning.
So until next time, fasten your seatbelts.