Using hair care products as an example I will go through an exercise that illustrates some of the tricky issues encountered with categorizing data.  Why do hair care products need categorization? Suppose we are creating a hair care shopping web site where consumers are guided to the right hair care products for their particular needs. Surprisingly, even simple shopping web sites need information architecture work (at some point in their lives) and even more surprising is that if you try to design the categorization up front it can get messy so quickly. This leads to the question of whether it even possible to get it right. What is so complex about categorization? Let’s explore…
(more…)

These are principles that I have picked up along the way which have been reinforced by experience.  These principles, which can be found in many programming books, I have found to be generally valid and useful.  I’ll add to this list as I remember them.
(more…)

Reading A Pattern Language by Christopher Alexander has given me some ideas about modeling data for enterprise IT systems. I’ll jump right in to my stream of conciousness. If the organization is viewed as a space in which different types of entities interact to accomplish the goals of the organization then we can define these entities in spacial terms such as Alexander lays out a town with its neighborhoods, shopping centers, buildings, roads and etc. This provides a structure for thinking about how the organization operates and what function IT applications perform within that organization. (more…)

It should be simple. Our web site currently is translated into only a handful of languages, but we allow the visitor to pick from many different locales when viewing the site so that currencies, prices, dates and other such locale specific things can be displayed for the correct country and language. The idea is that we localize for most countries, but only translate into the few languages. We have had the problem solved and have implemented many web applications using this scheme, but for some reason we keep hitting problems and coming back to the issue. What is so hard about localization? Is it that we have the theory wrong, that our developers just need better training on the standards, or that localization is inherently hard? Let’s explore. (more…)

If data never changed or needed to be updated our lives as software designers might be a little easier, we could just store the data once and be done with it. But data changes, it gets edited and deleted, and we designers cringe when we hear a user utter the words, “Can I undo that?” Its what Einstein did to Physics, he messed with the time dimension and everything came unraveled. Fortunately, for most of us we don’t have to work at the messy quantum level (yet). As it is with web software designers and data versioning, you might design twenty applications without having to worry much about it and then one day it hits you. “Can I undo?” Desktop application software designers have had to deal with the “undo” problem for many years, and now its time that web and IT software designers jump in. To make matters more complicated we have to figure out how to solve this problem for vast amounts of data typically stored in databases. Let’s call it Web 2.0 with the undo feature! (more…)