29 October 2007

One Code Base to Bind Them

My kids are finally old enough to figure out that the Lord of the Rings movies are pretty cool. (They're not old enough yet to get that the books are better). So I couldn't resist the obvious Lord of the Rings rip off in the title when I saw InfoWorld's new article about MS pursuing a single code base for the Dynamics ERP products.

I say new because this Holy Grail of an idea keeps coming up in various permutations. I'm sure there are folks in Redmond and Fargo who wish they'd never heard the term "Project Green". I have no deep insight into Microsoft's strategy but even their public moves seem disconnected. Much of the Solomon pieces are now outsourced and latest NAV version is delayed so a common code base seems unlikely anytime soon. It feels like the strategy keeps changing. I don't know if that's a strategy problem or a message problem. If it's a message problem, somebody please fix that. If it's a strategy problem, I'm not sure I want to know.

In the tradition of the wizards from LOTR here's what my crystal ball says that the future holds:
  • The "common code base" will be focused for now on implementing similar features within the apps using MOSS and SRS as the core. This is similar to the strategy already used of adding Smartlists to Business Portal in order to enable that functionality in SL.
  • A second focus is making the apps look and feel close enough that users should be able to move between them with minimal relearning. The latest versions of NAV and GP already look like close siblings.
  • Ideally at this point, more and more .net code would have been fused into these apps making the core code base closer.
  • A new app emerges with the old NAV, GP, AX and maybe SL code replaced with a .net core. Probably this new app will have 2 flavors, a Pro and a Lite for cost and feature reasons. Because the new app looks and feels like your old app you don't care so much what's under the hood as long as it all works. This could suck if you're a developer but if you don't know that you're going to be competing with NAV and AX 3rd party developers, we'll here's your wakeup call.
Bottom line, build similar features, similar functionality, use MOSS to implement the new stuff so you don't have rewrite as much in each app and at some point the transition becomes painless.

My concern is that something like this is going to require a delicate balance for a long time to pull off. This is a Frodo like task with lots of pitfalls including which customization model gets embraced, which code access policy survives, etc. And all that is before they have to deal with whiny customers like me.

Read all the "common code base" articles you want, it certainly feels like the time frame to converge these pieces is as long as the Lord of the Rings Trilogy.