Quick but worthwhile links

Martin Fowler: 07 Aug 2025

Abi Noda observes

Just met with a 2000+ eng company. Their developers are saving 2+ hours per week thanks to Copilot.

But they’re also losing:

  • 3 hrs per week due to slow builds
  • 4 hrs per week on dev environment toil
  • 2 hrs per week waiting for code reviews

AI is not a silver bullet.

Nik Malykhin found it useful to get an AI assistant to write its own coding rules by analyzing his code, and then asking it to refine them as worked with it.

the central paradox of using AI assistants effectively: to offload cognitive work to an AI, you must first do the meta-cognitive work of codifying your own development philosophy and collaboration style.

I agree with Charity Majors that there is a valuable distinction between disposable versus durable code, and that makes a difference in how we use AI with it.

The difference between disposable code and durable code is not about whether the code was generated by AI or written by a human, or even how difficult it was to write. The cost is defined by the standards you are building to, and the rest of the software development lifecycle: how well you expect to maintain it, extend it, migrate it, understand its behavior, or fix it when it breaks. This is the expensive part of software development, the type that requires deep expertise and familiarity with your language and environment. Disposable code is cheap because you don’t even try to maintain it.

Jim Highsmith thinks that we should think of AI as Alternative Intelligence

It’s not fake intelligence, or artificial empathy, or HAL 9000 with manners. It’s something else. Something that thinks differently, not defectively.

Rod Johnson asserts that we know that memory is important to AI systems, but we forget that Domain Models are an important form of memory

Event Sourcing provides perfect episodic memory by storing the complete history of domain changes as immutable events. Every decision, every state transition, every business event is preserved with full context.

Repository patterns offer domain-focused memory interfaces that understand business concepts. A CustomerRepository knows how to retrieve customer information in ways that preserve business meaning, not just raw data.

Bounded contexts from Domain-Driven Design partition memory into semantic boundaries, preventing the concept pollution that plagues pure vector-based approaches.

Aggregates function as cohesive memory clusters with consistency boundaries—exactly what we need for reliable agent behavior.