While working on a call for projects in the context of LGRU (codename: Tools for a Read-Write World) I drift off into reading an interview with Ward Cunningham. Cunningham developed concepts and codes for collaborative tools such as the Wiki, and also inspired programming methods like Extreme Programming.
Bill Venners: Everyone would likely agree that predicting the future is difficult, but is it always a bad idea?
Ward Cunningham: (...) When we start talking about what will be desired in the future, we might have some instincts and they might be right, but they won't always be right. And we have to attend to the times when they aren't right. (...)
Somebody might say, "Why don't we look forward, look at all the work we have to do? Why don't we design a system that makes all work easy from the beginning?" And if you can pull that off, that's great. It's just that, over and over, people try to design systems that make tomorrow's work easy. But when tomorrow comes it turns out they didn't quite understand tomorrow's work, and they actually made it harder.
Bill Venners: To tackle the cost of change curve, you found a way to make it practical to make changes all the way through the lifetime of a project. And that made it less important to plan for the future, because you could make changes when they were actually needed as the future unfolded. Does an overall architecture simply emerge through the process of focusing only on each small step?
Ward Cunningham: I like the notion of working the program, like an artist works a lump of clay. An artist wants to make a sculpture, but before she makes the sculpture, she just massages the clay. She starts towards making the sculpture, and sees what the clay wants to do. And the more she handles the clay, the more the clay tends to do what she wants. It becomes compliant to her will.
A development team works on a piece of code over several months. Initially, they make a piece of code, and it's a little stiff. It's small, but it's still stiff. Then they move the code, and it gets a little easier to move.
Working the Program: A Conversation with Ward Cunningham, Part III. Bill Venners, 2004 http://www.artima.com/intv/clay.html