If ExtremeProgramming is growth based, a Seed is a domain-specific starting point for a project.
Seeds are an attempt at rescaling XP so that it works on my particular level - a single contractor experienced in a particular domain. I currently have...
The Seed must...
Huh? Can you be a bit more concrete about what you mean by a seed, please?
Some ideas have been tossing around in my head since I was reading GenerativeProgramming by Krzysztof Czarnecki & Ulrich Eisenecker. In this book they talk about active libraries. An active library is essentially a framework which consists of program generators and test code.
I have started thinking about building frameworks within frameworks. As you apply refactoring to your code, you will also organize it into various libraries. The libraries are split along domain boundaries. Each new project contributes code to your frameworks.
A framework built in this manner will be the seed for your next project. -- BillBurris
See also: MichaelFeathers' Stunting a Framework at: http://www.artima.com/forums/flat.jsp?forum=106&thread=8826
The extremely early version which works end to end in spirit, but does little or nothing useful, is a seed.
You mean a SpikeSolution?
No. A SpikeSolution is a useful proof-of-concept that you plan on throwing away. A Seed is a starting point that you plan to keep.
This seems to be the same conclusion that drove me to write http://www.sf.net/projects/megg (some documentation at http://www.javanicus.com/blog2/items/41-index.html [not much as it is so simple to use :)] ), with the basic drive of doing almost the same thing in each project, and wanting to accelerate that initial coding step. It is using Velocity for code generation of what I guess is a seedwork. (And it even generates its own tests)
-- jez