by taylodl | 2025-09-19 16:55:24+00:00
There's a lot of optimism in this article, but I think there are a lot of realities needing to be considered. I'm just going to go point-by-point how I see things unfolding (based off my 40 years of software development experience).

AI Is Eroding the Incentives for Shared Software

Historically, developers contributed to libraries and frameworks because reuse benefited the community. Open source thrived on the idea that "many eyeballs make bugs shallow." But in an AI-driven world, the value of sharing diminishes. Why help competitors when AI can generate, modify, and enhance anything I need, anytime I need it?

The communal spirit that sustained open source is being replaced by hyper-personalized, AI-generated solutions. The incentive to contribute disappears when code generation is no longer a bottleneck.

Frameworks and Libraries: Legacy Artifacts

I believe we’re witnessing the end of the creation of shared frameworks. Existing ones may persist, maintained and enhanced by AI, but the creation of new ones will slow dramatically. Organizations will increasingly operate as islands, generating bespoke systems tailored to their internal models and processes.

This fragmentation isn’t new - it’s been happening for decades. AI will accelerate it.

Software Vendors Face an Existential Crisis

If customers can generate similar solutions in-house with AI, the value proposition of external vendors collapses. Vendors already struggle against low-cost offshore labor. AI will make it even harder to justify external software purchases when internal teams can generate tailored solutions faster and cheaper.

I concede I may be wrong on this one. Vendors can also use AI to quickly enhance their offerings and provide personalization capabilities. There's still some value in having "a throat to choke."

The Path Forward: Rigor, Not Prompts

Prompt-based software engineering is not the future (I think many of us here will agree with this statement). It lacks the rigor needed for enterprise-grade systems. Instead, we must embrace formal modeling tools such as BPN, ArchiMate, UML, SysML, and Gherkin - to provide AI with precise, structured specifications. AI will assist in developing these models, but they must still undergo human architecture and design review before code generation. This ensures alignment with business goals, compliance requirements, and operational realities.

It also preserves the ability for people to reason about the systems that get built.

Dual-AI Pipelines: Code and Contravariant Tests

The previous points are things I've been thinking about for a while, this point I just realized as I was crafting this comment. I'm thinking we should have one AI system generating code from formal models, while another generates contravariant tests (see Uncle Bob Martin). This test-driven approach adds constraints to the software that's generated - it must be testable, and having another AI read the same specifications and create the tests ensures a robustness of the implementation.

What does all this mean? If you want to remain employed, focus on line-of-business solutions grounded in formal models and architectural discipline, because these are the keys to creating more bespoke software.