The daisy wheel stabbing at green-lined sheets could have been Satan’s fanfare, but Andy was long accustomed to tuning out ambient printer noise. It was 1982, and he spent most of his time before his Commodore PET 4032, churning out useful things in 6502 Assembly. Most of the code was for printing invoices, much like customer invoice currently printing and making all of that racket.
A sudden cloud formed over his desk. Once Andy clued in to the shadow overhead, he glanced up to find the new regional sales manager, Rick, accordion-folded printout in hand.
Capturing Andy’s attention wasn’t enough. With a scowl, the sales manager pushed the stack toward Andy as though serving a warrant. “This is unacceptable!”
When apologies and groveling weren’t forthcoming, the sales manager jabbed a finger at one column of the invoice, the one displaying the quantity of each material ordered by the customer. These values were words representing thousands of tons- for instance, 2.5 for 2,500 tons.
“Who wants to see all these fractions?” Rick asked. “Customers don’t want to have to think about, ‘is this tons, or thousands of tons?’ Put the actual tonnage value in there, and fetch me a new stack of printouts.”
“They don’t want to think?” Andy repeated. “Well, all customers get the same invoice. I’d have to change it for all customers.”
The sales manager faltered. “I’m really only worried about the Brewster account, but we should be consistent.”
“I’ll need a change request.”
Rick frowned and placed his arms akimbo, bending the unacceptable invoices in his right hand into papercut-dealing boomerangs. “You want me to get your manager on the phone? Is that what you want?”
What followed was a phone call and a great deal of screaming, shouting, and chest-beating. Eventually, Rick slammed the phone down and said, “He wants you to do what I say. So, I don’t care what it takes. I need this fixed by 3PM. OK?”,
Because he wanted to knock off at 3:02, obviously. Between customers they’d had for years and the latest salesbeast to breeze through the door, Andy wondered who was truly having difficulty parsing a decimal? There was a good technical reason why tonnages were displayed as decimals: their assembly code used 16-bit words for all numbers. They often invoiced customers for a hundred thousand tons, a quantity well in excess of 65,536, which was the biggest number they could work with. Hence invoicing by the thousands of tons.
There was a way to make it look like the value had been multiplied by 1,000. Andy spent a few minutes modifying the invoice template so that it would always print three zeroes after the tonnage value, whatever it happened to be. He reran the program, then promptly forgot the whole business amid the coding he had to do on other business packages.
“Where did these dots come from? And the number of zeroes is wrong.”
“Huh?” Andy struggled to break out of his programming haze. The sales manager had returned with the new accordion stack in hand. It was well past 3:00, as the looming figure’s annoyance could attest.
The invoice looked just the way Andy expected it to. The tonnage values, integer and non-integer alike, now sported long goose-egg tails. “2” had become “2000”. “2.5” had become “2.5000”. Rick jabbed at a newly bezeroed decimal value. “Where’d these dots come from? They’re confusing. Take them out.”
“I can’t.” Andy thought fast, as there was no use trying to explain the real reason. “We need those for Europe and Asia compliance. That’s how they do thousands separators.”
“What? These aren’t going to Europe or Asia.”
“A lot of other ones do.”
“Wait… did you change the invoice for all customers?” Rick asked, with a twinge of panic in his voice. “I didn’t tell you to do that.”
“Yeah, you did. ‘I don’t care what it takes. I need this fixed by 3PM,’ you said.”
“Stop trying to be difficult. Figure it out, and give my customers a readable print-out!” Exasperated, Rick threw the invoices into the air and stormed away, leaving the printout to drift to the ground like the saddest pile of confetti ever thrown. “By 5. Or else!”
Andy was in no mood to recode or reprint. Once the sales manager cleared the scene, he rounded his desk, gathered up the invoices, and reached for the nearest bottle of whiteout.