If your product is client-managed, how do you sell the server?

Raymond Chen

A friend of mine told me about a project he worked on two decades (and three employers) ago. Let’s call it Project Nosebleed. Their project used a client-managed database: You have a central file server that houses the database files, which were in a proprietary file format that only the clients understood. All the client applications open the database files, coördinating¹ access among themselves by using file and record locking primitives. All you needed the server for was a place to house the files. It could have been a NAS server for all anybody cared. (Well, except that the concept of NAS hadn’t taken hold yet at the time of this story.) The company sold two products. One was simply called Nosebleed, which was the program that ran on the client machines. The client program connected to the central file server and updated the files as appropriate. What I found puzzling was that they also sold a Nosebleed Server product. I mean, the database is completely client-managed. No actual code runs on the server. What the heck is there for this alleged Server product to do? My friend took pity on me and told me the answer: The server product is used to create the database files and perform database maintenance activities. But I still found it ironic that a client-managed system has a server product. I suspect the business folks figured they could make a lot more money by breaking the program into two products.

¹ I am an old fogey who learned to spell coördinate with the diaersis, Hallowe’en with the apostrophe, and was taught to use an apostrophe to pluralize numbers. I still spell that way out of habit, and because I know my readers love arguing about it.