The Semi-Executable Stack: Agentic Software Engineering and the Expanding Scope of SE
In the rapidly evolving landscape of software engineering (SE), the emergence of AI-based systems, primarily fueled by large language models (LLMs) and tool-using agentic harnesses, is causing a paradigm shift. Concerns have been raised regarding the potential threats these advancements pose to traditional software engineering roles. As foundation models become increasingly powerful, capable of planning and executing complex tasks, areas such as scaffolding, routine test generation, straightforward bug fixing, and small integration work appear more vulnerable than ever before.
This unease is palpable among not only students and junior developers but also seasoned professionals who fear that their hard-earned expertise may diminish in value. However, rather than viewing this evolution as a threat to the relevance of software engineering, it is more prudent to recognize it as an expansion of what is being engineered.
Understanding the Semi-Executable Stack
The crux of this argument lies in the notion that the engineering focus is shifting from purely executable code to encompass semi-executable artifacts. These artifacts are combinations of natural language, tools, workflows, control mechanisms, and organizational routines that require human or probabilistic interpretation for their enactment, rather than deterministic execution.
To facilitate this understanding, the concept of the “Semi-Executable Stack” is introduced as a six-ring diagnostic reference model. This model helps in reasoning about the expansion of software engineering and includes the following components:
- Executable Artifacts
- Instructional Artifacts
- Orchestrated Execution
- Controls
- Operating Logic
- Societal and Institutional Fit
By employing this model, practitioners can identify where their contributions lie, potential bottlenecks, and the organizational transitions necessary for adapting to this new landscape. The framework offers a structured way to locate dependencies among the various rings, thereby enhancing strategic decision-making.
Case Studies and Practical Applications
The paper further develops its arguments through three worked case studies, illustrating how the Semi-Executable Stack can be applied in real-world scenarios. These case studies allow for a reframing of common objections to the transition from executable to semi-executable artifacts as engineering targets to be addressed, rather than reasons to resist change.
Additionally, the discussion concludes with a heuristic for organizations to consider: a preserve-versus-purify approach. This heuristic aids in determining which legacy software engineering processes, controls, and coordination routines ought to be retained and which should be simplified or redesigned in light of the shifting landscape.
Conclusion
In summary, the evolution of software engineering is not a matter of decline but rather an invitation to expand our understanding and practices to include semi-executable artifacts. As the landscape continues to evolve, embracing these changes will be crucial for both individuals and organizations aiming to thrive in an increasingly agentic and AI-driven environment.
