2025-01-18

From Generative OOP to AI: Starting at the fith floor

Written in collaboration with ChatGPT-4.5

Software engineering has evolved significantly, yet a recurring theme remains: how to empower small, agile teams to focus on creativity while minimizing time spent on foundational tasks. Fred Brooks’s concept of a “chief programmer” team centralized creativity under one lead, delegating implementation to others. Steve Jobs’s NeXTSTEP revolutionized this model by offloading foundational work to pre-built object libraries, allowing developers to focus on higher-level design. Today, generative AI extends this principle by automating boilerplate code and refactoring, enabling developers to operate at unprecedented levels of abstraction. Fred Brooks, in The Mythical Man-Month, championed the “surgical team” approach, where a chief programmer guided the project, supported by implementers focused on foundational code. This model emphasized hierarchical efficiency but constrained creative opportunities for the team. In contrast, Steve Jobs’s NeXTSTEP democratized creativity by bundling object libraries that handled foundational tasks. This shift eliminated subordinate roles, allowing small teams to collaborate as equals.

NeXTSTEP, introduced by Jobs in the late 1980s, embodied object-oriented programming (OOP) principles. Objects in NeXTSTEP were modular and encapsulated, functioning as “black boxes” that ensured reliability and prevented tampering. This architecture allowed developers to work on higher floors of abstraction, as Jobs famously analogized, focusing on application-level features rather than foundational code. Generative AI tools like ChatGPT extend the philosophy of OOP by automating foundational tasks. These tools generate boilerplate code, assist with debugging, and provide architectural suggestions. By integrating generative AI, developers can focus on creativity and innovation, much like how NeXTSTEP freed programmers from the minutiae of implementation.

In a recent project, I developed an interactive tennis game using an Arduino as a motion controller. Generative AI tools expedited prototype development by providing real-time debugging and code generation. This allowed me to concentrate on enhancing the user experience and refining gameplay mechanics, demonstrating how AI can amplify individual capabilities. From Brooks’s hierarchical model to Jobs’s object-oriented vision and today’s generative AI tools, the trajectory of software engineering reflects a consistent goal: enabling small teams to achieve more with less. By automating foundational tasks and promoting abstraction, these approaches let developers focus on impactful design and innovation. Generative AI represents the latest milestone in this evolution, allowing developers to operate on even higher floors of the metaphorical skyscraper.