Ideological Resistance to Patents, Followed by Reluctant Pragmatism
A software engineer's journey from opposing software patents to adopting defensive patenting as a necessary shield for startups and open-source projects.
MartinFowler.com is the long-running technical blog of Martin Fowler, author, software architect, and Chief Scientist at ThoughtWorks. The site serves as a cornerstone for modern software engineering, featuring influential essays and guides on software architecture, refactoring, agile methodologies, design patterns, and continuous delivery. Martin’s writing combines deep technical expertise with a clear, educational tone, making complex ideas about domain-driven design, microservices, and testing strategies accessible to engineers of all levels. Classic works like Refactoring, Patterns of Enterprise Application Architecture, and Continuous Integration originated from concepts first explored on this blog. With over two decades of archives, MartinFowler.com remains one of the most authoritative and enduring resources in professional software development.
51 articles from this blog
A software engineer's journey from opposing software patents to adopting defensive patenting as a necessary shield for startups and open-source projects.
Explores the role of humans 'on the loop' in AI-driven software development, balancing automation with human oversight.
Proposes a 'whiteboard before keyboard' design-first approach for AI coding assistants to prevent hidden design decisions and improve collaboration.
Martin Fowler shares insights from a software retreat on how LLMs impact senior, mid-level, and junior developers, and discusses cognitive debt.
Martin Fowler reflects on the future of software development with AI, discussing cognitive debt, the role of LLMs, and how they might change programming.
Explores context engineering for AI coding agents, covering configuration features, reusable prompts, and tools like Claude Code to improve developer experience.
Martin Fowler shares fragmentary thoughts from a tech event, covering AI's impact on understanding code, LLMs as navigation tools, and the future of software libraries.
Martin Fowler critiques the overuse of bold text in technical writing, arguing it diminishes emphasis and suggests better typographic practices.
Explores how AI coding agents impact internal code quality, using a case study of adding GitLab support to a Swift app.
Martin Fowler's blog fragments discuss AI/works™ platform, AI electricity consumption, and the need for rigor in AI-enabled software development.
A conversation on how LLMs help shape software abstractions and manage cognitive load in building systems that survive change.
Explores managing the tension between adaptation (exploration) and optimization (exploitation) in tech teams, advocating for a balanced, context-driven approach.
An analysis of how AI, specifically Claude, is transforming software development workflows, with a focus on real-world implementation details and the role of TDD.
Martin Fowler's link blog covers mainframe modernization, AI code review challenges, and building disposable web apps with LLMs.
Martin Fowler explains his shift from Twitter to 'fragments' posts on his blog for sharing short tech thoughts and links.
Martin Fowler's blog fragments on AI writing style, software testing principles, EU regulations for X, and the concept of 'reverse-centaurs' in automation.
A summary of recent tech articles discussing AI's impact on code quality, AI-assisted healthcare, security risks, and developer productivity.
Martin Fowler discusses the latest Thoughtworks Technology Radar, AI's impact on programming, and his recent tech talks in Europe.
Martin Fowler's foreword for 'Frictionless', a book on improving software developer productivity by focusing on feedback loops, flow state, and cognitive load.
An engineer argues that software development is a learning process, not an assembly line, and explains how to use LLMs as brainstorming partners.