Start With Seeds

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...

Seeds are not libraries. If you are solving the same problem over and over again, a library is the answer. But if you are solving a similar problem over and over again, a Seed may be the answer. Hopefully, a Seed will reduce the startup cost for projects, making it easier to get a project started in the right direction.

The Seed must...

I will report on the usefulness of this practice...

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



EditText of this page (last edited October 16, 2003) or FindPage with title or text search