Seedwork - An alternative to frameworks

What is seedwork?

A seedwork is a copy-pasteable framework that provides a minimal, flexible foundation designed for easy adaptation and growth.

Consider a minimal, core set of classes (a seed) that's easy to refactor and understand. Encourage users to adapt this code to their own needs rather than trying to accommodate all possible use cases in a core codebase.

Why not create a framework?

Frameworks often start as simple solutions to specific problems, but can evolve into more complex systems as developers extend their functionality.

Frameworks become difficult to use, extend, and maintain over time. The more features added, the more complex and less flexible they become.

Over time, frameworks often grow unwieldy, making them hard to learn and use.

Developers must balance extending the framework with maintaining backward compatibility, often leading to limited flexibility.

Benefits of seedwork

A small, understandable framework is easier to adopt and modify (aka grow) when users can truly "own" the framework, customizing it without concern for future updates disrupting their work.

Sources

Martin Fowler's post on seedwork

Michael Feathers on seedwork