Blog radlak.com

…what’s there in the world

Clean Architecture, AI Agents, and the Future of Software Engineering: A Conversation with Uncle Bob

In a discussion between Kent C. Dodds and Robert C. Martin ("Uncle Bob"), the two software veterans explore how the role of the software engineer is evolving in the era of AI coding agents. While low-level implementation tools and syntax are rapidly shifting, the core principles of high-level software architecture, modular design, and product engineering remain as vital and unchanged today as they were decades ago.

The Unchanging Rules of Software Architecture

Despite rapid changes in tools, frameworks, and programming languages, the fundamental principles of software architecture—such as modularity, dependency management, and encapsulation—have remained constant for 40 to 50 years. The history of software engineering is defined by a rising tide of abstraction: moving from binary and punch cards to assembly, high-level languages, syntax highlighting, and now AI agents. As AI automates syntax and local implementation details, engineers are freed to focus on system design above the abstraction line.

Refactoring Clean Code Practices for AI

Uncle Bob explains that while he purposefully avoids reading raw code line-by-line when using AI agents, he remains focused on module structures, function signatures, and dependencies. Working with agents slightly shifts clean code rules:

  • Cyclomatic Complexity: While human-written functions should remain extremely concise, AI agents can manage slightly higher complexity functions without degrading readability.
  • Comments: Agents actively read, maintain, and update comments, making them more functional than traditional human comments.
  • Automated Guardrails: Engineers should constrain AI agents using automated metrics, such as the CRAP (Critical Risk Anti-Patterns) metric, which combines cyclomatic complexity with test coverage to ensure code quality.

Developing “Design Sense” and the Role of Junior Engineers

AI agents lack self-critique, long-term memory, and a true “design sense”—the innate intuition humans develop after years of making architectural mistakes. Because AI agents do not consider future consequences, human oversight is essential. To build this intuition, novice developers should spend their first few years writing code manually rather than relying heavily on AI power tools, ensuring they understand the underlying structures before working at higher levels of abstraction.

The Shift Toward Product Engineering

Software engineering is increasingly moving away from isolated task execution toward holistic product engineering. A great product engineer balances technical expertise with deep empathy for the customer. As AI agents take over routine coding tasks, human developers must double down on understanding real-world user problems, orchestrating complex system designs, and connecting technical solutions to human needs.

Mentoring question

As AI tools take over low-level coding tasks, how are you actively developing your architectural ‘design sense’ and deepening your understanding of the end-user’s needs?

Source: https://youtube.com/watch?v=RxxxGkFIUJ0&is=pN3AbxOhr_zxpo2Q


Posted

in

by

Tags: