“Could you be on this call too, Bruce?”

Bruce puzzled over the request. “Abby,” he said, “if Dale will be there, I’m not sure I need to be.”

“We might need your ban-hammer,” said Abby. “I don’t want this UAT review to turn into a complete re-write.”

“Hey, they’re the customers. If they feel something is missing or not working right, we’ll fix it for them.”

Abby shook her head. “Just come, and chime in if you hear anything you don’t like.” She slipped past on her way to the break room, empty coffee cup dangling from one finger while the other nine gripped a laptop and stack of functional specs.

This project was simple. One application allowed user entry of customer demographic data. One legacy system needed that data. The users wanted a web service to connect the two, and Bruce thought it an ideal assignment for fresh-from-college Dale to tackle. Veteran Abby was there to mentor, but Bruce now worried about Abby’s pessimism coloring Dale’s perceptions.

Bruce wanted his developers to be dedicated to getting the best possible results for the business. So, maybe the users would discover big changes in UAT. So what? That was what user acceptance testing was for. Bruce planned to be the positive influence on the call, not a force for “no.”

Abby, Dale and Bruce sat down together in a windowless conference room. They dialed in and suffered through muzak that sounded like Kenny G’s ode to suicide. Their wait dragged through multiple loops. Abby turned to her laptop, while Dale tugged at the collar of his ill-fitting shirt. Bruce sat with his notebook, pencil poised.

Polycom Phone

The business unit users called in ten minutes late. “Hi, Art!” Abby greeted, not looking away from her computer. “How’s UAT going?”

“Great, great. Looking good so far.”

Bruce was relieved. Dale smiled. Abby mouthed, “Wait for it…”

“Except… well, our data guys noticed the web service isn’t validating customer phone numbers.”

“Um, that wasn’t in the spec,” Dale said.

Abby nodded, still staring at her laptop. “You told us to mirror the functionality of the old DTS feed. The old feed doesn’t do any validation, it just passes it to your legacy store.”

“But that’s half the reason we wanted a new feed!” Art cried. “We don’t want bad data passed around!”

Bruce introduced himself to the call, and took the wheel. “Of course you don’t want bad data passed around,” he said with zen-like patience. “What validation do you need the service to perform?”

“Um, I’m not the person to ask,” Art faltered. “It was in that spreadsheet John sent out with his UAT comments.”

Abby’s turned her frown on the phone. “I didn’t get anything. Who’s John? Is he on this call?”

Noise burst onto the line. “Hey, this is John. Sorry, I was on mute. I’m on the bus.”

“Oh no, not you, John,” Art said. “I was talking about John McNeil.”

“OK, I’m going to go back on mute then. Bye,” John said.

“All right, is-” Abby began.

“See ya, John!” Art said. A chorus of goodbyes from the other users bounced around the conference call. A few people who were only paying half-attention to the call hung up, causing the conference system to spend two minutes announcing, “‘Bob Johnson’ has left the call.”

“Art!” Abby cried. “Is John McNeil on this call?”

“No, we didn’t think he needed to be at this meeting,” Art said.

“Can you forward the spreadsheet to me?” Abby asked.

“Sure, hang on a second…”

The sound of shuffling papers clogged the speaker. Someone quoted a line from a television ad, causing an eruption of laughter that spiraled into multiple off-topic conversations. The sound of a chair scraping followed as someone else loudly announced the need for more coffee.

Dale had detached with a thousand-yard stare. Abby muted the phone, then buried her head in the crook of her elbow.

“Just part of the job, guys,” Bruce said with a reassuring smile.

“I’d have better luck wrangling kindergarteners at a hyena rodeo.” Abby un-muted the phone and raised her voice. “Art? Don’t worry about it, OK? Can anyone explain how you want us to validate the phone number?”

“Sure,” an unnamed voice took over. “You have to make sure the string contains no non-numeric characters, and that it’s 10 digits in length.”

“What should we do if it fails?” Dale asked.

“Remove the non-numerics.”

“And if it’s too long?”

“Just take the first 10 characters.”

“And if it’s too short?”

“Prepend zeroes until it’s 10 characters long.”

“Wait- don’t you want an error telling you the data is bad?” Abby said.

“Oh, no!” the voice replied. “We don’t want any errorneous data, so we don’t want any errors. Errors are bad.”

Abby’s wide eyes targeted Bruce, pleading No! Bruce cringed, but montioned for Dale to keep going.

“If we do this, the data won’t be accurate,” Dale said. “You know there’s no area code ‘000’, right?”

“The legacy system requires phone numbers to be exactly 10 characters long.”

“But the customer UI that feeds the web service already validates the phone numbers,” Dale said.

“We can’t know that.”

Bruce wanted to be customer-first, but this? He rose to his feet, the authority in his voice rising accordingly. “Everyone, if I may: if we’re rebuilding this thing, we want to do it right. Adding zeroes to the front of a phone number is a, uh…” Stupid? Crazy? “In my professional opinion, it’s not the best way we could go about this. We don’t want to introduce extra code that will slow down the web service for everyone, do we?” Yes! That sounded good. “Dale, can you confirm the UI currently does the validation and not the web service?”

“Yeah,” Dale said.

“Great- Dale will email all of us with those details after the meeting,” Bruce said. “Is there anything else?”

A long pause followed, growing scarier as time passed.

“No,” Art finally said. “I think we’re good.”

Abby de-tensed, ended the call, then glanced sharply to the developers. “How does the UI currently validate?”

“Don’t worry, it’s nothing that bad,” Dale said.

“So we don’t have hundreds of area code 000 customers in production right now?” Abby asked.

“No.”

“Good,” Bruce said. “Don’t worry, we never will.”