Rules of database app aging

Sunday 18 January 2009

Peter Harkins succinctly distills out rules of database app aging, namely that fields become optional, and relationships become many-to-many. When I read that I wanted to add,

All booleans become enumerations.

but commenters have already extended the list.

One comment on the blog post in particular caught my eye. Jonathan Holland said,

This sounds more like database aging when your original schema was poorly planned.

I don’t know what world Jonathan is working in. In my experience, these sorts of aging effects of applications are due not to developers doing a sloppy job as they are due to the domain needs changing. Sure, sometimes, developers try to ignore inconvenient stuff like timezones, but much of the time, the application needs change. When designing the schema for version 1, it’s impossible to predict what version 3 will need. Trying to anticipate it won’t guarantee your schema won’t change, it will just mean you do a lot more work in version 1, and then version 3 turns out to be completely different than you expected, so not only does your schema stretch in difficult and unexpected ways, but half the flexibility you built in turns out to be completely unhelpful and possibly even a crushing burden.

Comments

[gravatar]
Peter Harkins 12:33 PM on 18 Jan 2009

He's working from hindsight rather than foresight. In retrospect, most of my changes make me say, "Oh, right, of course...". It's a lot more fun to write about it as the stupid universe breaking my beautiful design, though.

Because of my unusual environment for software development I see the version changes you describe happen in a matter of days instead of months, and I see it on three or four projects per month instead of one or two a year. You're right: YAGNI is not just a useful heuristic, it is a life preserver.

[gravatar]
Simon Brunning 5:35 AM on 19 Jan 2009

Your last paragraph is as good an exposition of YAGNI as I've seen.

[gravatar]
Viximo 11:45 AM on 10 Feb 2009

This seems like an event you'd like!!!

February 18th, 6-8pm @ the Viximo loft [1 Camp Street, 02140] in Cambridge **

Straight up: VixML + Vodka is the don't-miss meetup for iPhone app creators, designers and developers hoping to make the jump to iPhone apps, and entrepreneurs with big ideas who want in on the bonanza. Join us and...

See why VixML is the easiest, fastest way to create iPhone awesomeness
See projects in the works, get tips and how-tos on getting started
Chat up VixML creators and make some friends
Toast and repeat
RSVP now!

Add a comment:

Ignore this:
Leave this empty:
Name is required. Either email or web are required. Email won't be displayed and I won't spam you. Your web site won't be indexed by search engines.
Don't put anything here:
Leave this empty:
URLs auto-link and some tags are allowed: <a><b><i><p><br><pre>.