ERP will make my problems go away!

Some say that ERP will solve all your problems. A deus-ex-machina which takes you to the promised land and brings you years of prosperity and bliss. Reduced operating costs and administrative overhead, improved inventory, higher customer retention, better profitability. It will streamline, improve, integrate, leverage, increase all your good things, and reduce, decrease, eliminate all your bad things.

You don’t buy it, do you?

ERP may help you solve your problems. Eventually.

First thing it will do, though, is—expose them. The question is… are you ready to face them?

Will you get this once you click Finish on your installation, or after having invested between half a million and up to two million dollars (depending on which report you choose to believe) into implementation and maintenance of the solution?

It’s not up to ERP. It’s only up to you.

Your inventory is not ineffective because of a poor inventory management software. Just-in-time is close to a century old, and was a mature concept long before ENIAC ticked its first clock cycle.

Those guys at Ford put the world on wheels in 1920s by outpacing and outsmarting competition without any ERP.

Your administration doesn’t keep your bottom line at the bottom because your software makes it that way. Craig Newman runs a $100 million business with a 28-strong staff. Ask him when he held his last meeting. Or how many conference rooms he has. He operates in 450 cities worldwide with zero administration. And no ERP.

No software will sort out your problems. ERP itself won’t sort out anything. It may sort your customer list A to Z.

ERP is a tool. Nothing more. And not a crystal ball or a magic wand kind of tool. It’s a Schilke piccolo trumpet. Give one to Tine Thing Helseth and she makes you fall in love. Give one to me, and I make you regret it.

Tools are only as good for you as you are good and skilled and disciplined at handling them. Poor tools are just that, poor tools—they won’t help you much. But good tools won’t help you any better if you don’t use them properly.

In fact, the better the tool, the more obvious your lack of skill becomes.

Huge inventory levels may well be result of bad tools to manage inventory properly. Or they may come from people being irresponsible about ordering only what’s necessary. It may come from poor planning tools. Or from people avoiding planning, or not planning at all.

Your profitability may be low due to huge administrative overhead. Or because nobody in your company is taking care of unnecessary costs. Or somebody is hiding them. You may be unprofitable in sales, because for some reasons somebody is doing favors to certain “big” and “important” customers, and nobody knows or nobody cares. The company may prefer keeping it under the carpet. ERP will not miraculously make those customers profitable for you, it will expose them and pinpoint the reason for low profitability.

It’s a tough job firing a top customer who generates 25% of your revenue. Forget revenue. How profitable are they for you? Yes, without revenue it’s difficult to feed all those hungry mouths. And yes, without all those hungry mouths catering to an unprofitable customer, there would be far less mouths to feed. Or there would be more people available to tend to those smaller and “less important”, but more profitable customers.

If you don’t want to face these issues, then what exactly can ERP do for you?

You cannot expect to have a transparent item profitability structure, and be unwilling to go to extreme efforts and turn your accounting habits upside down to attach all costs, whatever they may be, to items.

You cannot expect to have optimized purchase plans, if your people don’t want to maintain planning parameters for all of the 15,693 items you have in your item catalog.

You can’t effectively optimize inventory levels in your 15 locations if you are unprepared to handle the 235,395 stockkeeping units. If you feel that 15,693 items and 235,395 stockkeeping units are too much to handle, so do I, but what are you going to do about that?

How exactly do you expect ERP to prevent your people from opening 35 identical items just because they don’t have time to search for the right one?

Tough questions, ain’t they?

Without an ERP system, these questions may not hurt much. It’s easier to pretend that you have reasons to keep those unprofitable, but “important” customers. It’s easier to find excuses not to maintain your data right.

Once you get your ERP, these questions pop out, your problems bubble up. ERP doesn’t make your problems go away. It makes them come drooling at you like a pack of hungry wolves. This is the first thing that happens when you get ERP.

Then—if you are determined enough to face them—only then you stand real chances to become one of those 20% or 50% or 200% better-in-something-due-to-ERP success stories to make headlines of analysis reports and research papers, and make those who didn’t dare or didn’t care envy and whine that it’s just a marketing hype.

I enjoy reading your posts and I think you are right, many thanks for sharing your thoughts!

In real live, do you get to put everything in practise? Do you get to convince all you customers about the importance of design? Do you get to convince all your employees (if you have any in charge) about all development good practises? etc
Do you decline a project if any of thoses points are not clear?

I know, too many questions at the same time, but I’m really interested on reading the answer!

thanks, I’m glad to have you here as a reader and I’m looking forward to you participating in discussions. In real life, it is difficult to always put everything into practice. Theory and best practice is one, but when it comes to applying, I’m always trying to do my best. It would be a pure lie to say that always in every situation I do everything exactly as I “preach” here – what I do is I try and make sure that if possible it is done in the best way. In practice, often there are situations that a compromise has to be done. What I always do is discuss and emphasize the importance of design.

Ever since I’m working alone, I am insisting on design, and I am trying to prepare good design documents myself. I am still working alone, but when I have employees, they will also have to follow the best practices. There are certain areas where there can be no compromise, and on these I am insisting and if it would come to that, I’d decline a project, rather than undertake something that will in my opinion surely lead to failure. I have never been into situation to downright turn something down personally (I worked for a company who did), but I did influence the customers to take a different decision, and I was willing to walk away if they didn’t.

Once on a design review project, the customer was proposed by three options by a partner company – and they hired me to analyze them and choose the best. None of these was good enough, so I proposed the fourth. The partner didn’t like that, and the customer eventually chose another partner, and they chose this fourth approach, and as far as I know everything went perfect. In my current project I always advise customers against a bad practice, even if that costs me my services. For example, if customer wants extra development for something I believe can be achieved with standard, I’ll say that to the customer, and explain upsides and downsides of both approaches, and I advise for non-customization.

Please, whenever you have anything to ask or say, or express agreement or disagreement with anything you read here – please do so. This is the point of blogs – share opinion, experience, knowledge, and discussion is a great way to do that. I’m looking forward to seeing you here more often.

Thanks a lot for you quick and complete answer.
As you said, sometimes a compromise has to be done, and it’s the [good] consultant job to point customer into the right direction.
But I often have the feeling that I’m not able to convince customers in any of my thoughts. Maybe I need to improve my negotiation skills, or maybe time and experience will bring it to me!

When you have to format C/AL variables (numbers, dates/times, booleans) for exchange with other apps, call FORMAT(variable,0,9) instead of simply FORMAT(variable). The format 9 formats the variable according to XML standards, and this value can then be interpreted correctly on any system with any regional settings. This is useful also when passing string-formatted values from C/AL to C# or JavaScript.

To check if a BLOB field has a value, you call its HASVALUE function. For example: IF Item.Picture.HASVALUE THEN;

In older versions, earlier than NAV 2009, you had to call CALCFIELDS before you could check HASVALUE, which – if you think of it, did not make much sense. This was changed in NAV 2009, so ever since that version you can check HASVALUE before you decide to call CALCFIELDS first. It makes all the sense – you don’t need to pull up to 2GB of data over just to see if anything is inside.

If you are an old-school guy (or just old, as me), and you CALCFIELDS first, HASVALUE next, maybe it’s time for you to reconsider it.

Rembember – the pattern is: IF Field.HASVALUE THEN Rec.CALCFIELDS(Field);

Any function that accepts only one parameter can be called as if it were a property, and this applies to built-in system functions, your own custom functions, and even .NET methods alike. Instead of doing it like Report50001.SetDefaultPostingDate(101015D) you can always do it like Report50001.SetDefaultPostingDate := 101015D. Of course you can improve semantics of your code significantly if you simply call the function PostingDate instead of SetDefaultPostingDate, then you can just write Report50001.PostingDate := 101015D;

If you want to rollback the database changes, but do not want the code execution to end, simply call ASSERTERROR ERROR(”); The ERROR(”) will quietly rollback the data changes, and the ASSERTERROR will capture the error, allowing the code execution to continue.

Use Labels (View > Labels) instead of data columns for captions in your reports. It’s amazing how much you save in terms of data transfer. And your Data Set looks better too. Microsoft, why don’t you use this consistently on your standard reports?