When I took over the company's NetSuite account it came with years of scripts written by people who had since moved on. Nothing was on fire. That was the problem: the bugs worth finding were the ones people had learned to live with.
Here are five from the last few months. Names and numbers are left out; the shapes are what matter.
1. The error that was not an error
Saving a quote showed an unreadable message, a Java class name followed by a memory address. People read it as a failed save and typed their work in again. The quote had saved every time.
An after save script, whose only job was to send an email, was throwing its own failure after the record had already been committed. So the message was noise, and underneath the noise the email it was meant to send had stopped going out. The fix was small: catch and log inside the script, never throw once the record is saved, and repair the email.
An error shown after a successful save teaches people to distrust every save.
2. A button that emailed the wrong inbox
A service report button on tasks emailed the report to the address on the linked case. On partner programme accounts that field held the programme's own inbox, so raw reports, internal notes included, were going to the partner. The button now checks where it is about to send, and on a programme account it stops and says why.
3. Fields that vanished in edit mode
One person could see two completion date fields on an order and a colleague could not, on the same form. A client script decided whether to show them by looking up a setting on the department, and that lookup ran with the user's own permissions. Without access to the department record, the lookup failed quietly and the fields were hidden.
It looked like a permission problem with the order. It was a permission problem with something else entirely, which is why nobody had found it.
4. A field that filled itself in
The evaluator on an order was being set to whichever technician had last been on site, which was often not the person who did the evaluation. A small server script now leaves it empty on the programme departments and never overwrites a value a person picked.
5. A text that arrived after the technician
Customers get a text when a technician sets off. One customer got it six hours late, minutes before the job was finished. The technician's phone had been offline, the start of the job only reached the ERP in the afternoon, and the workflow treated it as new.
The sender now checks how late the update arrived, skips anything more than an hour old, and logs why. An hour, because the start is stamped when the van leaves and real drives here run to about fifty five minutes.
What they have in common
Every one of these already had a workaround: entering a quote twice, asking a colleague to fill in a date, apologising to a customer. Workarounds are the best bug tracker a company has, and nobody files them.