During a typical implementation, it’s common to have multiple model builders build use cases and accomplish tasks simultaneously. During this critical time in the project, it’s important to plan for a key component that may be overlooked—keeping the model clean and tidy.
Keeping a model clean has multiple benefits, including:
Before we get started, there are Four Golden Rules that should always be followed:
In addition to the Four Golden Rules, what else should you think about? For your convenience, we’ve created a user-friendly guide (attached) that breaks down the major areas of a model: Lists, Actions, Modules, and Line Items. Within each section, we’ve answered frequently asked questions and provided a quick-reference to find more details in the Planual. This is not an all-encompassing list, but it will cover about 90% of the performance issues we commonly see.
Reviewing the model should happen early and often! This should not be a one-time exercise. Rather, this should be part of the project schedule, whether it be weekly or prior to the next sprint commencing. Why? First, it is much easier to review smaller amounts of development than reviewing a giant model. And in this regard, it is much easier to make updates/changes because the model has not been fully built, and therefore, you are potentially impacting fewer objects.
Second, this is an excellent way to learn and teach model builders the correct way of building. Remember, just because you can, doesn’t mean you should.
Lastly, this is a great way of showing other model builders what has been built and where the logic lives. In doing this, the logic will not be duplicated in multiple modules, allowing model builders to know where to find it. At the end of the day, you want to strive for peak model performance, scalability, and understandability. By following this guide, you’ll be well on your way!
Another great best practice article. Thank you.
@rob_marshall I can't wait until you write the data integration Planual!
Good comments and I agree about the CoE in how they can help, but this article is really about during the project, getting everyone on the same page and not waiting until UAT to review the model. Do it early and often and what to look for.
Where is the 6th one? Couldn't find it🤔. Let me guess, is it TIMESUM or RANK or RANKCUMULATE or CUMULATE. Too many guesses.
Great and must needed post @rob_marshall ,
I would say we should avoid having to do a model cleanup - because as mentioned is a tedious task - and instead incorporate these best practices while building the model.
Of course, we don't always work on creating new models and often work on models created by other modelers and that's when following the model cleanup process becomes critical.
In my experience, we can have a model that hasn't been maintained for a couple of years, and when we decide to start the cleanup process we feel paralyzed because of the number of obsolete or redundant objects that we fear deleting because of the possible effect on production, not having Notes or documentation exacerbates the problem. As a result, we keep pushing the cleanup task down the priority list and the model performance suffers.
So my most important takeaway from the article is... start by following modeling best practice and incorporate the cleanup in the modeling process, Then do the cleanup early and often. Rinse and repeat.
Well written @einas.ibrahim - best way is to prevent the need for model cleanup in the first place.
@einas.ibrahim I've found that if a model has been around for a couple of years it's probably been bolted onto several times and doesn't conform too well to best practice. Time to strip it down and start all over again. Bit like with a car, is the cost to do the repair worth it vs the cost to just buy a new one.
Separately something that we've started doing is having someone that might've been deep into a project on their next to be that "best practice guru" who can be on the project and can do the review of activity but without the stress of doing the development in of itself.
You are describing a COE lead or a Solution Architect. This is one of their main responsibilities.
Have you tried to convince a client to overhaul an old model? I have, and it doesn't end well 😀
I believe there are different situations of models that require maintenance or fine-tuning, and the solution to "clean and maintain" these models will vary. This article is a good guide.