The Shoemakers

Over an email thread a little while back, one of my colleagues suggested that programming should be a required subject in high school. To survive in today's world, everyone should have a basic understanding of programming because technology is so essential to everyone's lives. His friend retorted that, "Since shoes are also essential, high school students should take a mandatory year of cobbling."

I think the shoemaker analogy falls apart in a big way. Companies don't need to modify their shoes every time they want to execute a business strategy. But I can't think of any serious strategic change that doesn't require software changes. I think this fallacy is also behind the notion of "outsourcing IT because it's not 'core'." Technology is core to every company's business today.

For example, suppose a big box shoe retailer in the US wants to enter the Canadian market by opening just one store. Building the store and hiring the staff is the single smallest part of that challenge. The retailer will need to set up at least one new distribution center, so their supply chain systems will have to change. Canada has a completely different tax system from the US, so that means they either have to extend their current tax system to support VAT and Canadian product classifications or, more likely, create a parallel tax system for the new market. Two tax systems means a new feed into their general ledger system.

Products in some parts of Canada have to be labeled in both English and French so their merchandising system needs to keep track of multiple languages. The same goes for their online content management system.

Employment laws are different in Canada, so the HR systems have to be extended, updated, or run in parallel to keep track of the workforce. Payroll is probably outsourced to an in-market provider, but a new feed will have to be built there.

Data privacy laws are different, and they prohibit storing customer data in any US jurisdiction (thanks to the PATRIOT act). That means a new "single system of record" for the customer database. Any system dealing with loyalty programs also has to be updated to know about both customer databases.

Oh, and the website should support single sign-on so a customer can use their one account ID and password no matter where they happen to be. A Canadian customer must be authenticated against the Canadian customer database, so identity federation comes into play.

I'm already tired just writing this much up. There are probably a half-dozen other major enterprise systems that would all have to be modified, duplicated, integrated, or federated just to open this one store in Canada.

But I bet the employees can still wear the same shoes.