Remember when you last acquired a new bookshelf? If is had moveable shelves, a big 'design' issue for you was to optimize the spacing. Regardless, you probably thought for some time about how to arrange the books - alphabetically, thematically, Dewey..., and how to distribute the free space amongst the shelves in anticipation of acquisitions. As time when on, if there was any "update activity" on the bookshelve's contents, your initial design probably became less optimal:
- not enough space for the books beginning with "R", or on topics associated with "Golf" or "Fishing"
- the "tall" shelf now had never-opened coffee-table books mixed with the "Reference" section atlases...
and eventually it became time to take everything out of the bookshelf and reorganize.
Like this bookshelf, AustLit is reaching "middle age" - the flexibility of youth has been challenged by hundreds of (self-)compatibility constraints which resist change. I've been noticing this over the past few weeks when adding in the new tagged-format options and work sorting options. Nothing major, just slight resistance of the original design and existing code base to being flexed, stretched and punctured. As with bookshelves, there comes a time when you take everything out and start again. The AustLit system is a long way away from that time - the design is sound, and what has been happening so far has happened almost entirely within that design. The main impact of recent changes has been in the time they take to test. Now that AustLit is a production system with paying customers, changes have to be carefully tested to ensure that they don't break or interact with existing functions in unexpected ways. And as the number of functions increase, the possibility for unexpected interactions increases. Most changes to AustLit will continue to be simple due to the basic architecture - new attributes, new relationships present no "threat" to the basic design. But they do require more work to update the summary, detail, HTML and tagged-text stylesheet, and to add to the search screens (if applicable) and test that the searches involving them haven't thrown the Oracle query optimizer into an unexpected new mode!
Simple and effective guidlelines for designing web sites. Includes a wonderfully simple study of where items should be located on pages based on asking people where they'd first look to find certain elements such as a search box.
The American architect Christopher Alexander set forth a philiosophy of architecture, from the smallest nook to the largest city, based on recognising and implementing patterns of construction/implementation/use.His work has been very influential in the world of software, with numerous books of patterns to help software designers recognise common problems and solutions. Martijn van Welie has started a collection of patterns for web pages.