The 'What/How' Loop: How LLMs Can Deepen Our Understanding of Software Abstraction

In a dynamic discussion, industry experts Unmesh Joshi, Rebecca Parsons, and Martin Fowler delve into the transformative role of Large Language Models (LLMs) in software development, focusing on the critical relationship between defining the problem ('What') and implementing the solution ('How'). Their conversation, held on January 21, 2026, emphasizes that while LLMs offer undeniable speed and efficiency in code generation, the art of building resilient and maintainable software remains deeply rooted in human understanding and careful abstraction.
The core challenge of software development, they argue, is creating systems that adapt gracefully to change. Traditional approaches often treat programming as a straightforward translation of requirements into code, neglecting the iterative feedback loop crucial for uncovering stable system components and anticipating future modifications. This linear view, often reflected in the phrase 'Human in the loop', undervalues the programmer's expertise in shaping abstractions and managing cognitive load.
Martin Fowler emphasizes that minimizing cognitive load is paramount for creating adaptable systems. By structuring code into manageable modules and mirroring real-world domains with familiar concepts (like ships, ports, and containers in a shipping system), developers can navigate complexity more effectively. Rebecca Parsons adds that understanding the domain at varying levels of granularity enables reasoning about system properties without becoming overwhelmed by intricate details.
Unmesh Joshi highlights the fundamental act of programming as mapping the 'real' domain ('What') onto a computational model ('How'). This isn't a one-way process; instead, the 'What' and 'How' continuously inform each other, revealing stable parts of the system and potential avenues for future change. He warns that relying solely on LLMs for code generation without a firm grasp of underlying abstractions can lead to procedural, less understandable code or overly complex designs.
The discussion champions Test-Driven Development (TDD) as a strategy that operationalizes the feedback loop between 'What' and 'How'. Writing tests before implementation forces developers to consider the interface and desired behavior independently of the implementation details, promoting better encapsulation. LLMs, in this context, can be used as a rapid prototyping tool to sketch initial versions, but the final shape of the code should be guided by human refactoring and design principles.
Ultimately, the conversation emphasizes that LLMs are powerful tools but not replacements for human expertise. While they can significantly accelerate initial code generation and exploration, the ability to craft maintainable, adaptable, and well-understood software hinges on a deep understanding of the 'What/How' loop and the careful creation of meaningful abstractions. By using LLMs strategically within this framework, developers can leverage their strengths while preserving the essential human element in software design.
Alex Chen
Senior Tech EditorCovering the latest in consumer electronics and software updates. Obsessed with clean code and cleaner desks.
Read Also
Claude Pilot: Supercharging AI Code Generation with Automated Quality Control
Tired of AI-generated code that's riddled with bugs and requires constant babysitting? Claude Pilot is a new framework designed to ensure that AI-generated code is production-ready, right out of the gate. By enforcing rigorous testing, preserving context, and automating quality checks, Claude Pilot transforms Claude from a fast coder into a reliable development partner.

AI-Powered Prototyping: One Developer's Journey Building a Custom Task Switcher with Claude
Frustrated with a sluggish task switcher on their X11 Plasma desktop environment, one developer turned to AI for a solution. Using large language models (LLMs) like Claude, they rapidly prototyped and iterated on a custom task switcher, FastTab, highlighting the potential of AI as a coding assistant. This experience underscores how AI can empower developers to tackle niche problems and accelerate personal projects, even with limited prior experience.

AI-Powered Accessibility: Engineer Overcomes Vision Loss with Custom Chrome Extensions Built Using Claude Code
Losing his central vision didn't stop Joe McCormick from becoming a principal software engineer. He's now leveraging AI tools like Claude Code to craft personalized Chrome extensions that bridge the accessibility gaps often overlooked by mainstream software, paving the way for a more inclusive digital experience.

Future-Proofing Software Development: LLMs Reshape Roles, Teams, and Cognitive Load
Large Language Models (LLMs) are rapidly changing the software development landscape, impacting roles from junior developers to seasoned architects. Insights from the Thoughtworks Future of Software Development Retreat reveal how LLMs are prompting a re-evaluation of developer responsibilities, team structures, and the very nature of cognitive workload in the age of AI.