Martin Fowler on AI and Software Engineering
| Jurgen Lust
Software developers of my generation all know him obviously, and I’m wondering if people starting out in the business still do. Here’s a very nice interview with Martin Fowler, one of the few true thought leaders when it comes to software engineering and architecture, about the influence AI will have on our craft.
Some key takeaways for me:
1. The non-deterministic nature changes everything. LLMs don’t behave like traditional tools we’re used to in software development. This fundamentally shifts how we need to think about integrating them into our workflow.
2. Right now, they are mainly useful for 2 things: understanding legacy code and as a thinking partner for exploring new ideas.
3. Craftsmanship still matters. If a junior developer delivered code with the same lack of rigor some LLM outputs have, you’d be having a serious conversation with HR. LLMs still tend to spit out endless blocks of over-engineered code, and they often lie. Don’t trust them, verify!
4. Avoid the waterfall trap. Especially with specification-driven development, the temptation to create big designs upfront is real, but that wasn’t a good idea before, and it still is not.
5. The DSL opportunity. This might be the most exciting part: LLMs could finally make domain-specific languages practical in ways that were previously too costly. Building truly expressive DSLs that capture your domain’s ubiquitous language might be within reach with these new tools.
Here’s the video: Watch the interview