Was it necessary to kill the Classic client?

dinosaurAbsolutely.

The world needs to move ahead. The technology advances. Who doesn’t want to keep up with the progress, stays behind. That’s how it has worked since the dawn of civilization.

I can’t know the exact reasons why Microsoft has decided to stop support for the Classic client with NAV “7”, but I can offer my view and position on why I believe this was absolutely necessary.

Classic—or C/SIDE—client has been around for a decade and a half, and over that time it has not evolved much. It works great generally it’s pretty responsive, provides unparalleled productivity in data entry, but technologically, it’s a dinosaur.

Some are complaining that Microsoft should have invested into overall performance improvements of NAV, rather than into development of RTC or three-tiered architecture. Well, as paradoxical as it may seem, the only way to improve NAV overall performance was to finally abandon the old and tired two-tiered architecture, and finally recognize that there have been major technological advancements over past couple of decades, that C/SIDE simply seemed to be completely unaware of.

It starts with the Classic, or Native, database server. It simply has to go. It’s a technological relic of the ISAM and magnetic tapes age. ISAM has died long ago, so have magnetic tapes. Any product optimized for that kind of technology has lost perspective a decade ago. Plus, it is totally non-scalable—at maximum 1GB of memory and utilizing maximum of 1 processor cores—it can’t compete with SQL Server, and Microsoft’s decision to finally do away with it was logical and welcome.

When C/SIDE client and Native database came along, relational databases were still a visionary new technology. ISAM was mainstream, and it was natural that Navision has chosen that approach. However, Navision has failed to do what should have been done years ago, and exchange the tired old ISAM horse for a faster, relational one. Instead, they have always given advantage to backwards compatibility rather than technological improvements.

And now Microsoft has to pay that toll.

It’s absurd: Microsoft has a beast of a product, outperforming any competition and monopolizing the TPC-E Top 10 handling up to 3,800 transactions per second. On the other hand, this monster is crawling under pressures of simulating the ISAM environment, barely supporting several dozens of users concurrently posting transactions.

When Native is gone, there will finally be room for true SQL Server performance improvements.

Most people actually do agree that Native database has to go, but why the Classic client? Well, simply because once Native server is gone, in order to enable the improvements, the client has to be thoroughly re-architected as well. It is slow because it emulates ISAM, it uses cursors, it executes on client-side and clogs the network. You can’t truly improve performance if you don’t do something with the client.

RoleTailored Client and three-tiered architecture were inevitable. They had to happen. And once they happened, the only thing that doesn’t make much sense is maintaining the old client just for the sake of existing install base. Backwards compatibility does make sense, but not indefinitely. At one moment you need to just cut the iron ball off your leg to be able to start moving ahead.

But it’s not only about SQL and ISAM and cursors and two clients. Another thing has happened over the past five years, which nobody could expect two decades ago.

The Cloud.

If anything, the recessions has left us with one big lesson learned: mind the costs! We will all start minding the costs. Customers had already been looking skywards to reduce the IT costs, but the recent (or current) recession has just boosted the transition of software ownership from on-premises to the Cloud. Like it or not, ten years from now Cloud will be everywhere, and whoever would be still betting on on-premises will lose.

Classic client is completely incapable of reaching for the Cloud. On the other hand, RTC is already Cloud-ready. With NAV 2009 R2 and App-V and RTC-over-Internet, companies who could only dream about NAV can now afford it, and get far more value from it than those investing millions in on-premises implementations.

Evolution is a nasty thing. Either you evolve and survive, or you go extinct. If NAV decided to stick with old technology stack for the sake of backwards compatibility, it would do the existing user-base a terrible non-favor: a couple of more years, and NAV as a product would be gone, eaten-up by fast-evolving Cloud-dwelling competitors. Old, C/SIDE, Classic or Native—whichever you prefer—technology stack just had to go.

It wasn’t past due. It was an inch close of being too late.

Vjeko

Vjeko has been writing code for living since 1995, and he has shared his knowledge and experience in presentations, articles, blogs, and elsewhere since 2002. Hopelessly curious, passionate about technology, avid language learner no matter human or computer.

This Post Has 12 Comments

  1. QQ

    very very good post!

  2. Valentin Gvozdev

    1.”You can’t truly improve performance if you don’t do something with the client” – completely disagree. Performance is nothing to do with the client – problem in the LOCKTABLE command. Look what performance can be achieved with OLD client: http://thriftysoftwarebuildingteam.com/attachments/STLMgmt.pdf

    2.“Classic client is completely incapable of reaching for the Cloud.” – completely agree. Microsoft pushing cloud in expense to many other thing – including small partners who was driving success of NAV.

  3. Vjekoslav Babic

    @Valentin:
    1. I agree that there are performance improvements that can be achieved by addressing the LOCKTABLE issue, but LOCKTABLE is not the only thing client does. Tables will get locked anyway, without LOCKTABLE getting called explicitly, and there’s not much you can do there. NAV is primarily having detrimental effect on SQL server because of the excessive use of cursors, and this is again primarily the client issue, not server issue. I don’t dispute the results provided by your paper, but I am pretty sure that just by doing those changes you mention you can’t bring just about any implementation to a significantly bigger number of concurrent users. Also, your paper doesn’t even mention the network as a bottleneck, and with NAV–primarily due to the Classic client–it can easily become one.
    2. Regarding the Cloud – Microsoft isn’t pushing it. Cloud is happening with or without Microsoft. Microsoft was actually always pretty conservative about Cloud, and was a fairly late newcommer to the Cloud market. Amazon Elastic Cloud was there before. Google was creating Cloud apps long before Microsoft even considered the option. Salesforce has had its force.com platform before Microsoft had Azure. Microsoft isn’t pushing it–on the contrary, I’d say Microsoft was pushed there, and is going through a radical paradigm shift, because Microsoft as a company knows how to sell desktop software and licenses, and Cloud model is bringing major disruption to them. So, instead of pretending that Cloud is not happening (which would in the end ruin the whole partner channel depending on Microsoft ignoring the technology shift in progress), Microsoft has finally made a move and entered the market.
    It’s always very simple to whine about the old times when things were better. A better way is to adapt. Smaller partners should look into ways to adapt, not to whine and cry out to Microsoft to stop supporting the Cloud paradigm.
    In fact – if you ask me – there has never been a better opportunity to small partners than now. Small companies are usually more agile, and more flexible and have better ability to adopt a new paradigm. It’s big companies and big implementation partners that should worry. Small ones can truly shift their paradigms now, turn into Cloud companies, provide better value to their customers, and eat the dinosaurs.

  4. Valentin Gvozdev

    I heard lately that 90% Microsoft R&D went into CLOUD. I guess they are pushing it. Unfortunately cloud is not for small companies – that’s why Microsoft changing partner network rules. 5-10 people company cannot deal with CLOUD concept. You need more people who will support many customers who use the same application. Essentially you cannot have unique system for one customer in CLOUD. It will never be profitable.
    For ERP market Microsoft needs VERTICAL partners who successfully implemented “single code” concept for their solution. I am not sure what will be minimum number of customers to make CLOUD solution profitable but my guess 100+. This will mean 24-7 support around the world, development team, testing and QA, implementation tem – all goes to 100+ employee company.
    Small solution centers will have to partner with CLOUD partners and be used as implementation/training offices in different countries.
    I am not sure how small company will go into “cloud” – I do not count pure hosting as a “cloud” solution. CLOUD creates a lot of overhead for development and reduces a lot of cost for end customers. You will need a lot of customers to cover the overhead. Small company cannot have many customers – the concept of small company – “have few customers but serve them better than others can”.

  5. Vjekoslav Babic

    Your argumentation is valid, but I would say there are many perspectives to take on that. Yes, definitely you can see Cloud as a threat, but if you take a different angle, you can quickly turn it into an opportunity.

    First, Cloud is happening. It’s not that Microsoft is helping or preventing, it’s where everything is moving into. Cloud may not be (a simple choice) for small solution providers, but it definitely is the right solution for small companies (and for any company, after all). You cannot stop an avalanche from happening. Small companies, and any company in fact, need lower-cost solutions, scalable and flexible, and Cloud is offering exactly that. On-premises can offer that, but not at the same price/performance.

    Solution providers should think of way how to cope with that. If they can’t, they will surely lose the game.

    I am a small company. Two people so far. And my whole strategy is in the Cloud. I see tremendous opportunities there. Yes, you cannot win in the Cloud by doing what you have done so far on-premises. You need to change, to adapt.

    Once, at a productivity training, the trainer started the class with a quote which really struck me: “If you always do what you’ve always done, you’ll always get what you’ve always got.” In the Cloud, you can operate as you did in on-premises, you need to adapt.

    And you are right–in the Cloud, you’ll probably need to grow beyond your current scale, if you want to offer cloud solutions. You’ll need help desk, you’ll need engineers, accountants, clerks… You can do two on-premises implementations per year with a two-people NAV shop, and you’ll get all the cash flow you need. With the Cloud, as you note correctly, the cost model and cash-flow work in a totally different way.

    Again – you need to adapt. The Cloud certinly won’t adapt. And it certainly won’t go away. It isn’t a hype anymore–it’s slowly, but steadily becoming mainstream.

  6. Vjekoslav Babic

    Also – about “have few customers but serve them better than others can”. You still can have that in the cloud. The problem is that earlier you could be small, have few customers and serve them better than others, and at the same time not be radically different or radically better than others. In the Cloud, you need to be remarkably better than others to be able to operate small.

    But it’s the same that happened to all sort of trades in the past–small have ruled, they have served their customers well, and they were eaten up by big business which cut costs for their customers.

    You can buy a pair of shoes for $100, or you can buy them at $5000. In profit per piece, $5000 works better, and can be done by a single-person shoemaker. And this $5000 per -pair shoemaker still can find his market–only he needs to be remarkably better than the rest.

  7. Slawek Guzek

    Cloud, cloud, cloud…

    It does not solve problems – it moves them elsewhere and creates new ones.

    If you host your data locally – well you have overheads to keep your servers up and running. Now you move to cloud – hooorayy we don’t have servers so we don’t need staff.. And the data is available from anywhere…

    But wait a minute.. How the data is available ? Via EXTERNAL NETWORK connection. Is it free ? Is it 100% reliable ? Of course NOT. What worse – you have NO control whatsoever. Having fast network connection with high level SLA is expensive. Extra costs – per month. And SLA applies to your provider network (not to connection between provider access point and your network, not to your border router, etc). What happens if your fibre optic cable outside your building get cut ? What happens if your border network router fails ? So you still DO need someone to take care about your network.

    One-off expense for internal server and plus monthly staff costs (available to do some internal support as well) versus infinite monthly charges for (much higher) bandwidth, for high network SLA level, AND for cloud services. And you still need someone to take care about external network, and possibly someone doing internal support.

    I am not a math genius so I cannot see how cloud enthusiasts have arrived at ‘cloud as costs saving solution’

    That’s only one ‘small’ issue I can see. One from many more problems created by cloud.

    In Poland in ‘dark communist ages’ people used to joke – ‘Socialism, with great level of success, is fighting problems which never exists in capitalism’. Same more-less is going to be with cloud.

    Cloud is definitely good – but NOT for ERP solutions in my humble opinion.

    1. Vjekoslav Babic

      @Slawek: What happens if your electricity cable gets cut? What happens if your on-premises network cabinet gets soaking wet from malfunctioning fire extinguisher? Wouldn’t it be better instead of computers to only use paper – it’s unaffected by those risks. What you are recommending is an infinite redundancy strategy, and of course it can easily have infinite costs. At certain point the risk response strategy about Cloud downtime will shift from avoidance to acceptance, especially for non-mission-critical applications, and especially as the impact of the risk continues decreasing (and I would say this shift is already happening). The Cloud is maturing, it’s past the proof-of-concept stage, and its cost-effectiveness in other areas is soon going to happen with ERP as well. Maybe today there are no true (or convincing) Cloud ERP solutions available, but they will come. Additionally, you can easily combine certain Cloud offerings with on-premises offerings to achieve cost effectiveness. Yes, the Cloud introduces all sorts of new problems which you didn’t even have with on-premises. The same way you today have problems with data security, privacy or disaster-recovery which you didn’t have in 19th century. A new paradigm shift always brings new problems.

  8. Slawek

    Do you really believe in cloud’s cost-effectiveness in ERP market ? Do you really believe that big clients using serious ERP systems will move to cloud-based systems in, say, next 10 years ?

    1. Vjekoslav Babic

      @Slawek: I really do believe in cost-effectivenes of Cloud-based solutions, in any segment. ERP is no different. I am not sure about “big clients using serious ERP systems” and the “next 10 years” as much as it applies to the “big clients”. I however do believe that small and mid-market is going to shift gradually to Cloud based solutions over the next 5 years, and after the 5 years the shift is going to be even steeper. I also believe that in 10-15 years, for most of small to mid-market the Cloud will be mainstream, and on-premises will be used only by those companies that either don’t have a viable Cloud option, or for some reasons do need software on premises (no or very low connectivity at the ERP end-point). About big companies, there are two reasons why I believe they are not going to shift this fast: first, they are generally slower at adopting new technologies before they are fully mature and because their ERP lifetime cycle is often more than 10 years, and second because for big companies cloud is often not as cost-effective as it is for the small. Small companies need to have overhead, which big companies already does. A big company with 15 people in IT department can add new responsibilities (ERP maintenance) to that department without increasing overhead. In my opinion, people overhead is the biggest direct cost-effectiveness driver of the Cloud solutions. For NAV, the license break-even point of BE vs SPLA models is after 16 years of ownership, when you add server hardware to the equation, the break-even point is after 7 years of ownership. This is attractive to small and mid-market where expected ERP lifetime is slightly above the 7 years. When you include people overhead, small companies will mostly never experience the break-even point, and big companies may experience the break-even point within the expected life-time. So – this is why I don’t see significant adoption of Cloud ERP in big companies, while I do in small to mid-size ones.

Leave a Reply