Monday, January 5, 2009

Future Creep

Trying to decide what features to put into a system is always a hard thing to do. Often we’re guessing about which things will bring us an ROI soon, and how many resources we put into them. This is one of the reasons that I favor a fairly rapid change rate in your application.

37 Signals posted a note about future creep, and how you want to be careful about spending time on future features, things you’re not doing now, but might do in the future. It brings up some good points, and things to think about, but I think they might be getting a little too hyper-agile.

Spending a few minutes thinking about things, debating them, perhaps determining where they architecturally might fit in can prevent a bunch of costs (in time and resources) down the line. However you don't want to get bogged down into designing around every future possibility.

Instead, make sure that you are moving forward and letting your system evolve as it gets used. You'll learn things, things you anticipated will come up, some you didn't will crop up as well, but likely a lot of what you worried about will never come to pass.

Note that this doesn't just mean technology. It means any process.

No comments: