Expand your SuiteScript skills in the Sustainable SuiteScript community for NetSuite developers.

The High Cost of Bad Design

Created: October 11, 2017

The code you write today can really bite you tomorrow. Even worse, the code someone else writes today can really bite you tomorrow - or six months from now.

Today in my coaching chat room, a student discovered some code that had been written by an external contractor that is very likely responsible for crippling the performance of many of their Transaction records - to the tune of about 30 seconds every time anyone saves a single Transaction record. Think of how much productivity is being lost across the entire organization because of this poorly-designed code. That's 30 seconds of wasted down time every time that every person saves a Transaction, whether it's being created or updated.

It was built to automate an important piece of their Transaction processing, but because it was designed so poorly, it's not only completely ineffective, it is also very likely that my student is going to have to rewrite all of this automation from scratch.

I have no doubt that there was no malicious intent behind this code; it was simply the quickest solution to an urgent problem. And I'm sure it worked fine, for a time. But now that there are more users in the system, more transactions being processed, and more customizations being added in, this poorly designed code is costing the company more and more every single day - well beyond the amount that was paid on the contractor's invoice.

The hardest part of software development is that there is never just one right answer, and there are no silver bullets. You have to make hundreds of decisions every day on every project that will have long-term repercussions on the project and the entire organization.

Luckily, there are many responsible, tried-and-true best practices, particularly when it comes to designing your SuiteScript customizations, that can help protect you in the long run from disasters like this one, and mitigate the risk of having to start all over.

Are you following such best practices? What about the rest of your team? What about that contractor you worked with a few months back?

How many times have you settled for the quickest solution to an urgent problem? How many times has someone else settled on the quickest solution for your urgent problem? Will those decisions come back and bite you later?