Developing with AI: Iteration or Revolution?

Photo by Midjourney
Photo by Midjourney

As I delve deeper into AI, I realize that the landscape is more complex than it seems. Not surprisingly, there are simple categories of AI Enthusiasts and AI Skeptics, but there is more nuance hiding among the Enthusiasts themselves. They can be divided into two groups: the Iterationists, who see AI as an extension of traditional software development; and the Revolutionists, who view AI development as a fundamentally new paradigm.

Conflicting Paradigms

Iterationists see AI as an extension of traditional software development. To them, AI is just another tool, and building AI features is part of the usual cycle of building, testing, and refining.

Then, there are the Revolutionists. They view AI development as a fundamentally new paradigm of continuous adaptation and growth. It is about nurturing and guiding AI systems rather than simply programming them. AI is seen as an evolving entity requiring constant vigilance and innovation. This approach has the potential to lead to more dynamic and adaptable AI systems, which can be a significant advantage in a rapidly changing technological landscape.

Viva La Revolutionist

I identify as a Revolutionist, even though we may be in the minority. This perspective is born out of observing trends over the past few decades, and it fills me with a sense of excitement for the future of AI.

Consider Moore’s Law. It has consistently improved technology, making computing power cheaper and more abundant. This shift enabled the rise of Web 2.0, where dynamic languages like Ruby and Python flourished. In the context of AI, Moore’s Law has facilitated a similar transformation. For years, we pursued research of magical algorithms. Now, we are leveraging massive computing power to brute-force learning in incredible ways. Betting against this trend feels unwise.

Large language models (LLMs) are non-deterministic—meaning their outputs cannot be precisely controlled—even with a temperature setting of 0.0. This is a key concept in AI, as it means that the behavior of AI agents is chaotic—in a Chaos Theory sense. This reality poses a challenge when it comes to managing AI agents. How can we manage them using deterministic tools? We have been trying to accomplish this on humans—a decidedly non-deterministic agent—via scientific management for over a hundred years and consistently failed. We will need to supervise AI agents closer to how we manage ourselves and other workers than how we manage the software systems deployed today.

Is It Really Software Development Anymore?

I am rethinking how I approach software development. Traditional programming emphasizes creating predictable systems. With AI, especially LLMs, the real challenge will move from maintenance to evolution. Unlike conventional software, AI products need ongoing nurturing and adaptation far beyond their initial development. New, unexpected behaviors will be triggered constantly as customers interact with agents in unforeseen ways. We already see this today in basic software systems. Merging unpredictable users and systems will be a delightful chaotic challenge. I am eager to participate. However, it is essential to acknowledge that this approach may also introduce new complexities and uncertainties that need to be managed.

One final exciting learning I have had talking with others is that the best prompt writers for AI models are often not engineers but English majors and individuals with minimal programming knowledge—i.e., limited bias. This insight is crucial for Revolutionists. Learning from these experts and integrating their skills into our development process will help us excel in this new AI era. It underscores the importance of diverse perspectives in AI development. For example, the use of natural language prompts in AI models has been a significant development, and this approach was largely driven by individuals with a background in linguistics, not traditional AI engineers.

Final Thoughts

The AI landscape is evolving, and so must our perspective. Whether you identify as an Iterationist or a Revolutionist, it is clear that AI development requires a new approach. As we continue to explore and harness AI’s potential, I encourage you to consider the revolutionary approach and the importance of diverse perspectives in AI development. Let us learn from each other as we cultivate the future.