Agentic and AI-assisted software engineering
Agentic and AI-Assisted Software Engineering
Putting an AI agent to work takes more than handing it a task. It takes an understanding of its strengths, the judgement to choose work that suits it, and a way to guide and review the result.
This collection explores an emerging division of labour in software engineering: combining human wisdom with machine knowledge and mechanical reasoning. It moves from a mental model for collaboration to practical applications in refactoring and observability, then considers how software design itself can make that collaboration more effective.
1. Understand the Collaborator

An agent can explain a thousand engineering concepts without the experience that gives them meaning in practice. Treating it as a knowledgeable but inexperienced collaborator changes the interaction: context, conversation and mentoring become essential parts of solving the problem. This essay establishes the mental model behind the rest of the collection.
2. The Brain-Work Brain-Toil Framework

An engineer works out a refactoring pattern; an agent helps apply it across a mature codebase. The distinction between designing the solution and repeating its application creates a productive division of labour. This case study follows the guidance, planning and review that make it work—and the shortcomings that still require an engineer’s hand.
3. Carry the Approach into Observability

Controlling a logging bill requires understanding what the logs are doing for the system. Log Quad gives that understanding a structure: intent, severity, frequency and location in the code. Engineers define the analysis and decide which changes make sense; agents help classify emissions and apply those decisions across the codebase.
4. Make Intent Clear in the Code

Collaboration also depends on the software being worked on. Tangled business logic and cross-cutting concerns make intent harder for both engineers and agents to follow. The story behind Flow, a C# effect system, explores how composition and declarative operations can make code easier to understand, extend and review.
Comments
Post a Comment