Present-Proofing Your Web Application

The future is about scale?

The April 2006 issue of JDJ includes a short piece from Michael Juntao Yuan titled "Future Proof Your Web Application Using Clustered Cache Services."

Michael implies essentially the following argument:

  1. Compared to *anything else*, Java EE has easy clustering (most web apps need only flip a switch!). And there are lots of clustering choices.
  2. Clustering == Scalability
  3. Scalability == Future-Proofing

I like this argument, not because I agree with it, but because it got me thinking. Especially about #3, that (scalability == future-proofing).

The future is about change!

Future-proofing is about being prepared, so that future events do not render IT investments worthless. I worry about three categories of things that might happen in the future:

  1. We need to do exactly what we do today, but 100s of times more of it.
  2. We need to adopt up-and-coming techonologies. Right now a good example would be Ajax.
  3. We need to do radically new and different things

The first category is what Michael is talking about: doing lots more of what we already do. Certainly this is important, but usually it is the least important of the three categories. The most important is the last one: being ready to do new and different things. (Or am I wrong here? Which of the futures categories is important to you? What platform choices do these different categories imply?)

Who Cares About the Future?

The other thing I would call into question is future-proofing in general. Forget future-poofing, what most projects ned is some present-proofing! Make sure your entire development effort is systematically on-time, on-spec, and on-budget. Then, worry about the future. I know far too many projects that were always ready for the future, but somehow never got around to even shipping in any particular present.