A common criticism of Open Source software vendors (most often made by our proprietary brethren) is that Open Source vendors are founded by engineers and technologists who do not understand commercial business, and the importance of the sales and marketing functions. I will let that generalization stand for now (of course, commercial success requires a proper balance across the disciplines!), and focus my first series of posts on the "flip side", namely:
Software architecture as archeological dig (when engineers have no voice)
- what generally happens over time in "sales-driven" software companies?
First, some context. As a relative newbie to the world of Open Source ERP, I was immediately struck by how transparent and "out in the open" everything is, at least here at Openbravo--not just the source code, but complete documentation, release status, virtually everything! My iGoogle now has a graphical widget that shows me the number of open bugs in the new Openbravo 2.50 release, by severity. Take a look at Openbravo's public wiki: as a new employee, I can be told "just read the wiki, and you will be pretty much up to speed re: what we are up to". Wow, all there on the web, linked together, searchable, easy to consume (even from an iPhone!) .
And once you start reading, you see topics like "Concepts for Openbravo ERP Redesign". Yowza, "Redesign"?, why do we need a redesign? That makes it sound like what we have now is no good. Did I take the right job? And then you step back and realize that in the proprietary world, you were used to spending a lot of cycles on perception (so time is spent by high-priced marketing staff "sanitizing" such politically incorrect verbiage). Here in opensource land, we are doing real Collaborative User Experience Design (complete with UI mockups) out in the open with partners and clients!
And as I am reading and learning more, it occurs to me that this transparency is not just a "difference", it is a hugely valuable differentiator. The first area I want to talk about related to transparency is Software Architecture, which in my experience is a mission-critical Software Engineering discipline that requires ongoing investment to deliver sustainable, adaptable business systems that will last over the course of decades. Open Source vendors tend to be very strong in this area, simply because the Darwinian nature of the overall open source ecosystem demands it--architectural weaknesses are quickly exposed publicly, and, if not addressed, your open source project will die due to lack of interest on the part of developers. So, the transparency assures that only the best architectures will actually be built upon, and that they will be updated with worthy new technologies that inevitably arise in the future (recent past examples include RESTful Web Services and AJAX).
So what happens over time when a system's architecture is allowed to evolve in a non-transparent, "hidden" manner, as is often the case with sales-driven, proprietary mid-market ERP vendors?
Hidden Architecture Syndrome
Well, the short answer is that "Hidden Architecture Syndrome" (HAS) sets in. And, depending on where the proprietary product is in its lifecycle, the symptoms of this syndrome do not bode well for its users, longterm.
I have identified 5 phases of HAS, based on my experiences working in the mid-market ERP space:
- Life is Good: We have a product that fits a niche!
- Bulk Up: Our success has attracted competition
- Attrition & Contraction: Initial effects of technological obsolescence
- Pump up the Marketing: This stuff is still good, just need more focused marketing for new deals
- Keep Milking the Base / Get Acquired: (aka, "Decision time for customers")
One final thought at this point: Why is the "common wisdom", as espoused by the analyst firms (Gartner, AMR, etc.), that the shelf life (or customer buying cycle) for an ERP system is 7-10 years? I think that much of the answer is that Hidden Architecture Syndrome is prevalent industry-wide, and a decade is about how long a vendor can profitably "ride" any given architecture (before dramatically reducing the R&D investment on that "legacy" system).
But it doesn't have to be that way, does it? What if your ERP vendor actually invested in a rock solid, modern architecture, and then invested incrementally to refine and improve it at every release? From an economic perspective, nobody actually wants to "rip and replace" every decade (conceptually, that's like planning to get a divorce once per decade). Doesn't it make a lot more sense to find that perfect partner, one who shares your goals and openly commits to making the necessary investments? Think that perfect partner doesn't exist? Think you can't have "ERP for Life"? Perhaps you haven't been looking in the right places! :)