Skip to main content

Posts

What Happens If We Ask the AI to Pair Instead?

  In the first two articles in this series, I argued that a choice is hidden in the current move toward AI-driven software development. We can use increasingly capable AI to remove developers from implementation: humans describe what to build, agents produce it, and humans review the result. Or we can use the same capabilities to make the development loop itself more powerful, keeping humans and AI involved in exploration, implementation, feedback and learning together. The second article proposed the latter as a synthesis between Agile development and Spec-Driven Development. AI would become more like a member of the engineering team, while specifications, code, and persistent AI memory would evolve together as the team learned. That sounds nice in an article. Now I want to see if it actually works. The tools don't naturally work this way There is an immediate practical problem. Most coding AI tools seem to encourage one of two interaction modes. The first is autocomplete. I write...
Recent posts

AI Should Join the Team, Not Replace the Development Process

AI Should Join the Team, Not Replace the Development Process In my previous article, I explored something that has been bothering me about emerging models for AI-driven software development. AI can make implementation extraordinarily cheap. Specification-driven development can make intent explicit, while agentic systems can take on increasingly complex engineering work. All of this is useful. The problem appears when we conclude that the natural end state is to separate human thinking from machine implementation: humans specify what should exist, while an AI production system turns that specification into software. That may be efficient, but I don't think it is the only future available to us. Another possibility is to  make AI a member of the development team. The vocabulary behind the model A few terms are useful before describing the alternative. Spec-Driven Development (SDD) An approach in which structured specifications make intent, constraints and expected behaviour explicit ...

When AI Changes More Than the Way We Write Code

I I have been thinking a lot about AI and software development lately. Not primarily about whether AI can write good code. That discussion is rapidly becoming less interesting. It clearly can, and it is getting better at it. The more interesting question is what happens to software development when writing the code is no longer the central activity. There is an obvious promise here. AI can remove repetitive work, shorten feedback cycles and let developers spend more time thinking about problems rather than translating solutions into code. Agent-based development can allow several pieces of work to progress in parallel. Better specifications can force us to be clearer about what we actually want. I find all of that genuinely exciting. But I have also started to wonder whether we are looking too narrowly at productivity. Software development doesn't just produce software. It also produces understanding, experienced engineers and, when it works well, teams. What happens to those thing...

Evolution Of Programming Languages in an AI perspective

Programming languages are at the heart of possibilities in software development, evolving to meet the growing complexity of the problems we solve with computers. From the early days of machine code and punch cards to the modern era of high-level languages and AI-augmented coding, the journey of programming languages reflects humanity’s relentless pursuit of abstraction and efficiency. As artificial intelligence begins to reshape the landscape of software development, we are poised to enter an era of AI-powered programming languages—tools that will fundamentally change how programmers approach their craft. From Punch Cards to High-Level Languages The earliest programmers worked directly with machine code, encoding instructions in binary or hexadecimal formats. This labour-intensive process required an intimate understanding of the underlying hardware. Punch cards, though a technological marvel of their time, epitomized the low-level nature of early programming—tedious, error-prone, and ...

Agile Work Ai World

The transformation of society through technological revolutions has constantly fundamentally reshaped the labour structure. The Industrial Revolution, for instance, marked a profound shift in work for the labouring classes, moving them from fields. The ongoing transformation brought about by artificial intelligence (AI) has left many of us grappling with uncertainty. Work is shifting, and roles once felt secure are becoming precarious or redundant. While these transitions can be disorienting, they also offer an opportunity to rethink and redesign the way we work—to create environments that are not only efficient but also empowering. Central to this effort is embracing frameworks like agile work, which can counteract the isolation and disconnection—what some might call alienation—that workers often feel in a rapidly changing world. The Challenge of Alienation As AI increasingly takes over repetitive and knowledge-intensive tasks, workers risk losing their sense of purpose in the workpla...

The Industrial Vs the AI Revolution

The transformation of society through technological revolutions has constantly fundamentally reshaped the labour structure. The Industrial Revolution, for instance, marked a profound shift in work for the labouring classes, moving them from farmers' fields and industries into factories. Today, the so-called AI Revolution promises to bring about a similarly seismic shift, not for manual labourers but for the office and intellectual workers who were once considered relatively insulated from mechanization. While the material and historical circumstances differ, the underlying forces remain strikingly parallel. Changing the Nature of Work During the Industrial Revolution, the mechanization of production displaced artisans and craftspeople, as machines took over tasks that had required years of training and skill. This was not merely a displacement of labour but a profound de-skilling of workers, whose tasks were broken into repetitive, machine-supervised steps. The labour force expande...

Balancing Present Needs and Future Growth

In software development, traditional project planning often emphasizes immediate needs and short-term goals. However, Bentoism, which stands for "Beyond Near-Term Orientation," provides a multidimensional framework that can improve software project planning. It advocates for a balance between short-term achievements and long-term sustainability, considering both individual and collective impacts. Technical debt and architectural debt are inevitable challenges that teams must navigate. If managed properly, these debts can help long-term sustainability and growth. Bentoism, with its forward-looking and holistic perspective, offers a nuanced framework for handling these challenges while promoting continuous improvement.  Understanding Bentoism  Bentoism, inspired by the structure of a bento box that contains a variety of foods in separate compartments, encourages a broader perspective in decision-making. It promotes consideration of 'Now Me' (current self-interests), ...