An Early Exploration of AI-First Development
For years, the core of software engineering has remained fairly stable despite the fast pace of technological advancement. We’ve had other “-First” methodologies like Code-First and API-First, which reshaped aspects of the SDLC, but not fundamentally so. However, with the advent of generative AI, we’re left wondering: what will AI-First development look like, and how will it change our familiar landscape? As a software engineer who has loved being one for many years, I’m truly intrigued by AI-First development - how it might transform software building processes, redefine software engineers’ roles, and what we can do now to best prepare for this new world.
The buzz around “AI-First” development is already sparking lively discussions among engineers.
It’s clear from these conversations that adopting an AI-First approach isn’t a distant future; it’s happening now, shaping the way we think about coding from the ground up.
I’m convinced that the rollout of tools like GitHub Copilot represents a pivotal moment, both signifying and facilitating a shift to AI-First development. The often-tedious task of crafting large quantities of boilerplate code or scouring Stack Overflow for snippets to solve your specific problem is now replaced by a helpful AI coding assistant - a “copilot” - right there in your IDE. This shift promises not only a new way of working but a revitalisation of our roles, beckoning us back to the broader, perhaps more impactful responsibilities that have gradually been outsourced to other more specialised roles, especially since the invention of Scrum.
This era of AI-assisted coding not only promises to streamline the coding process but also stands to significantly enhance Developer Experience (DX) and Developer Productivity. The immediate helpful assistance and feedback provided by AI coding assistants can dramatically reduce the time spent on debugging and searching for solutions, allowing developers to focus more on creative problem-solving and high-level system design. It will be fascinating to see how AI-First Development might further impact Developer Experience and Productivity.
The shift towards AI-First development is poised to reshape not only the technical landscape of software engineering but also the very fabric of collaboration and education within the field. For example, as we increasingly rely on AI coding assistants, we may find that traditional collaboration might erode, with engineers choosing to lean more on AI assistance than on the expertise of their peers. Recent conversations with Software Engineering PhD candidates at Auckland University revealed that this is already happening with first-year software engineering students. How will beginners gain that fundamental knowledge in the future? Our strategies for teaching and learning need to adapt quickly, ensuring that engineers are not only technically proficient but also adept at collaborating in an AI-enhanced future.
Another potential side-effect of AI-First development might be to make the tech industry more inclusive and diverse. By democratising access to learning and development tools, AI has the potential to level the playing field for all, breaking down barriers that have historically limited participation from diverse groups.
The future of software engineering in an AI-First world is both exciting and uncertain. Like the lessons learned from past technological shifts, this new era invites us to question our assumptions, explore the unknown, and embrace the possibilities that lie beyond the conventional. As software engineers, we are at the forefront of this exploration, navigating the balance between leveraging AI’s potential and preserving the core values that define our craft.
I, for one, am increasingly fascinated by this topic and plan to delve much deeper into it, aiming to share my findings and thoughts through more in-depth articles in the future.