Sunday, October 17, 2004

How many products?

How many products are there? This is a recent discussion on the Now Economy blog.

Mark Baker is sarcastic. "A fascinating question. Almost as fascinating as why anyone would want to know!" I find this sarcasm strange because it was actually Mark's recommendation that led me to the Now Economy blog in the first place.

So let me say why I am interested in the "how many" question?

Firstly, the absolute number may not be as important as the trend. If the number is doubling (or halving) every year, this is an important phenomenon. (In biology, are new species evolving faster than the old species are becoming extinct? In commerce, are new high-tech startups being founded faster than they can be killed or acquired by the big boys? Is consumer choice increasing or decreasing?)

Secondly, the process of asking the question tells us something about the semantics of the situation. When I'm doing requirements engineering for computer systems, I always ask "how many" questions. Some people think I'm doing this because I want to look ahead to hardware and network capacity. Perhaps, but the main reason is that I find out more about the underlying concepts are used here.

This aspect of data modelling is crucial for web services. If I have a service that references PRODUCT, I need to know what granularity of product it assumes. Is every tiny variation counted as a separate product? And if I'm desiging web services, I need to find a level of granularity that is meaningful for the users.

Note that the Now Economy discussion quickly shifts from How Many Products to How Many Product Codes. As if there was a simple correspondence between product and product code. But this begs the question. I have worked in major oil companies where the correspondence between products and product codes is very difficult to manage. It turns out that this apparent simplification introduces more complexity: we may now have to pay attention to the correspondence between the granularity of (multiple alternative) Product Codes and the granularity of (multple alternative notions of) Product.

These aspects of semantics are ignored by many web service practitioners, who optimistically hope that everyone has the same understanding of the same implicit data model. After all, we're all using the same XML schema, so how could we possibly misunderstand one another?

Asking how many is a great way of discovering we're not on the same wavelength.

No comments: