(With apologies to the Muppets--I mean Charles Dickens).
Sunday, Dec 24, 2017
Ebeneezer Scrooge contemplated first the array of HD monitors arranged on his desk, then the view of Seattle from his corner office windows. December was always dark and rainy in the Pacific Northwest, and this year was no different--if anything it seemed especially gloomy on this late December evening. Below on the freeway he could see bumper to bumper traffic as people tried to get out of town for the holiday weekend. Some would be braving snowy mountain passes in order to visit distant family members. Others would choke the roads to local malls in order to spend money they couldn't afford on last-minute Christmas presents.
"Humbug," Scrooge said.
Turning back to the bank of monitors on his desk, the disaffected scowl he normally exhibited deepened. Muttering under his breath, he left his office and walked out into the open-space area where his development team lived, crammed together side by side and all working feverishly. To Scrooge, Sundays were just another work day.
Scrooge kicked the first chair he came to and said, "Why do you still have 341 open bugs?"
The developer started to explain, but after a moment Scrooge cut him off. "Humbug," he said. "Work harder."
Turning to a different developer he said,"Your whole team's productivity is at 73 percent of last month. What's going on?"
"If you please, sir," said the developer, visibly frightened, "Bill was in a dreadful car crash and broke both his legs."
Scrooge tilted his head. "So?" he asked. "He didn't break his arms, did he? So he can still use a keyboard, can't he?" Shouting now, to the stunned silence in the large room: "SO HE CAN STILL BLEEPING CODE CAN'T HE??"
He went back in his office to review the budget estimates for 2018. As usual everyone said they were understaffed and overworked. Humbug. He could write most of those apps in a weekend.
A knock at the door interrupted his thoughts. It was Bob Cratchit, his most senior developer.
"Yes, Cratchit, what is it?"
"Mr Scrooge, Sir, today is Christmas Eve."
Scrooge stared at him blankly. "And?" he asked.
"What I mean is, that is to say..." his voiced trailed off. He swallowed visibly.
"Do we get Christmas off?"
Scrooge let him suffer for a long minute. It was always the same: Christmas, weddings, the births of children--why, there were already too many children in the world, why should anyone celebrate the arrival of yet another howling mouth to feed? And so much work to be done, features to be added, customers to be added, databases to be replicated and backed up. And here they were wanting time off.
"Humbug."
"Sir?"
"HUMBUG! Humbug I say. But very well, you shall have your day off--I suppose you even expect to get paid, although I who must pay you get nothing NOTHING for that day. It's a humbug I say. But if I don't let you have your day off I suppose you'll all quit just to spite me."
"Oh, thank you Mr. Scrooge Sir!"
"See that you're here all the earlier the next day then!"
"Merry Christmas Sir!"
"Bah! Humbug! Get back to work!"
At 8:30 that night, Scrooge turned off his office lights and left, carefully locking the door behind him. As he turned down 13th Ave, headed to his shabby home a few blocks away, he noticed the freezing rain was beginning to turn into snow.
Scrooge's house was old and poorly insulated. Around 11 pm he put down the old copy of Visual Basic Journal he was re-reading for the fifth time, turned off the small heater, and went to bed, pulling his thin blankets up to his chin.
Sometime during the night he woke. Checking his cell phone, he saw it was midnight. For some reason the window in his room was wide open and wind-blown snow was piled on his floor. It was freezing cold in the room. As he hurried toward the window to close it, he heard a strange clanking noise behind him. Had a murderer come in through the window? Was this the end? He turned slowly around.
"Scroooooge" came a mournful voice from the darkness. It sounded vaguely familiar. More clanking followed. "SCROOOOGE!" again the wail. A form seemed to take shape in the faint light coming through the window. Suddenly there was a crash, an oath, and the sound of large metal objects slamming into each other. Then silence.
"A little help here? Hello?"
Trembling, Scrooge turned on the flashlight in his cell phone. On the floor was a pile of metal boxes, with the arms and legs of someone sticking out from beneath the rubble. Dragging the heavy items off the human form, Scrooge recognized them as old computer cases and heavy CRT monitors, all chained together with stout links of metal.
With a gasp of relief, the form got to its feet and turned to face Scrooge.
"Dude, thanks. It's that damn Dell server back there. It hates doorways--happens every time. It's almost like it never wants to go anywhere new."
Shining the light on its face, Scrooge stepped closer. "Jake? Jake Marley? WTF? I thought you were dead!"
"Oh, I'm dead and gone all right. As dead as segmented memory."
Scrooge hugged himself to try to keep warm and stared in astonishment.
"This must be a bad dream," he said, as if to himself. "I knew that leftover ginger beef was iffy."
"Believe me, Scroogy, this is no dream. I'm a deader all right. Dead these last 10 years. I have to drag all this freaking hardware everywhere. Talk about a drag! Sorry, no pun intended."
His voice grew somber. "Seriously, dude, you don't want to go here. I'm condemned CONDEMNED to suffer for eternity!" His voice rose to a wail.
"But why? What have you done?"
"Oh, I've done nothing. NOTHING! And that is the problem. It's what I didn't do. I didn't enable autoupdate for Windows server. I didn't get rid of Adobe Flash. I didn't reset the default password on my router."
Tears ran down his cheeks. "I didn't back up my database, and it got encrypted by ransomware." He blew his nose. "But even so, I could have been pardoned for all that. No, no...I'm condemned to eternal suffering for something far far worse that all that."
"What? What did you do Jake? Did you kill someone?"
"Far far worse..." he paused.
"I failed to get off Visual Basic."
Scrooge started. He had lots of VB. In fact, all he had was VB. Lots and lots of VB. VB had been his friend, his partner, his favorite tool for years and years.
"But Jake," he began. But raising a ghostly hand, Marley cut him off.
"Hang on," he said. "I'm on a tight schedule here. I've got at least five other visitations to make tonight and it's a nightmare getting an Uber on Christmas Eve, believe me. I came here to warn you."
"Warn me? Warn me of what?"
Channeling his ghostly voice, Marley recited:
"You will be visited tonight by three spirits. Each will bring you a message. Heed their messages Ebeneezer or you will not be spared from eternal suffering!" He turned and began to shuffle off. "Heed their warn..." at this he abruptly tripped over his chain and fell flat on his face. Another string of oaths followed. From the floor he waved his arms feebly. "Heed them... heed them." And just as suddenly as he had appeared, he vanished.
Scrooge woke with a start. What was that noise? How did he get in his bed? But he was in his bed, and there was no sign of Jacob Marley--so it was a dream after all. But that noise--music? It was...ohmygod it's Dancing Queen by ABBA. The music rose to a crescendo and the room was filled with light, blinding Scrooge temporarily.
As his eyes adjusted to the glare, Scrooge made out an old man seated at a table in his room. Scrooge looked at him in astonishment.
"Are you the visitor that was predicted?" he asked.
The old man's voice was thin and reedy. He had whisps of hair on his bald head and a long gray beard. "I am the ghost of software past!" he said. His head dropped on the table and he began to snore. Scrooge got out of bed and approached the table. It was piled high with, what? Books? No, manuals! Old three-ring binders with labels that said Visual Basic 1.0, and FORTRAN 77, and, yes! Charles Petzold's original book on writing Windows apps. Stacked high beside the manuals were hundreds of black floppy disks.
With a snort the old man awoke and stood up. "COME WITH ME!" he said dramatically and then belched. "Oops, my bad. Too much pizza."
"Come where?" Scrooge asked.
The old man didn't answer, but instead grabbed Scrooge by the arm, dragging him to the window. He was surprisingly strong for someone who seemed so feeble. As he pulled the struggling Scrooge out the open third-story window, Scrooge thought to himself, "No! Now I'll never learn if Jon Snow and Danny get married!"
But instead of hitting the pavement, Scrooge found he was standing in a large room surrounded by what appeared to be college students.
"I recognize this place!" he said. "This is the computing center at my university.
"And that's Elaine, and Steve, and all my friends. Why, they're so young!"
"Elaine! Steve! Over here!" he called.
The old man put up a warning hand. "They can neither see nor hear you," he said.
"Look at those punch cards," Scrooge said. "What a pain that was. We had to write the code out on coding forms, then punch the cards, then submit the deck to the RJE center and wait for it to get batch processed over night."
The old man waved his arms again and the scene changed, this time to an office. Two people were sitting at a conference table.
"That's me!" Scrooge said. "And Bill Jackson, my first boss. I remember him so well--I wrote my first Visual Basic app there. It was for keeping track of the company's bowling league results, but I added on to it and eventually it became the ERP system that ran the entire company. Boy was I proud of that! Matter of fact, it's still running today, so I hear."
"Do ye ken the muckle smit?" the old man asked.
"What?" Scrooge asked.
"Oops, sorry, wrong script. "Do you remember how happy you were in those days?"
"Of course. Life was good. We could crank out apps without waiting for IT to get around to it. We had our own databases, our own servers, and especially our own code. Stuff running on XP boxes under our desks. It was some sweet times."
"Herein were laid the seeds of your own destruction, Ebeneezer Scrooge!"
"Huh?"
"It is late. We must return."
"No! I want to stay and play with OCX controls again."
"We must go...you have two more visitors tonight...come...come" the voice seemed to fade out as the room got darker and darker.
Once again Scrooge was yanked out of sleep by loud music, this time some kind of electronica. A young woman stood over him, tugging on his sleeve. "Wake up, wake up!" she shouted.
Shaking his arm free, Scrooge asked, "Who are you? Are you one of the promised spirits?"
She smiled, executed the Warrior Pose smoothly, took a bite of avocado toast, and said, "I am the Ghost of Software Present."
"What message do you bring, Spirit?"
"Come!" she said, pointing to the window.
"Oh, please! Not the window again! Can we just take the stairs like normal people?"
"Never mind," she said. She began to twirl like an ice skater. As she did, the room seemed to spin in the opposite direction. Scrooge thought he would never look at ginger beef the same way again.
When the spinning stopped, he found they were in a large, brightly lit room. People were sitting at polished wooden tables with laptops open in front of them, chatting excitedly.
Through glass walls he could see into another room where about 10 people were having some kind of stand-up meeting.
"What is it, O Spirit? Why has thou brought me here?" Scrooge had no idea why he was talking like this.
"Look closely Ebeneezer! See what is before you...ooh!" She said, breaking off. "Juice bar. Sweet! I need my wheat grass. Just hang here for a minute, kay?" She vanished.
Moving closer to the group gathered at the table, he heard them discussing a project, but they were using words he was unfamiliar with, like "TFS" and "Github" and "Angular." Scrooge had an uncomfortable feeling that he should know more about those terms.
He moved in still closer. "So in conclusion," he heard someone saying, "we're seeing strong productivity improvements from our DevOps implementation with CI/CD. In fact, things are so far ahead of schedule that we're giving all of you the next two weeks off, with two tickets to Hawaii for everyone on the team!" Much applause and cheering followed.
Scrooge didn't understand much pf that, but he was pretty sure he'd never heard of a development team being AHEAD of schedule. At least, not one he'd been on.
The Ghost of Software Present appeared by his side again. "I don't understand," Scrooge said. She brought one ankle up to her ear, the leg extended straight up. Scrooge thought if he tried hard he might just touch his knees. "Scrooge, Scrooge, Scrooge," she said. "You're almost cute in your old fashioned ways. But time marches on, you know. You're out of step Mister." Her Apple Watch chimed softly. She raised one eyebrow. "Oops, we're out of time."
"But I want to understand."
She began to twirl again. "There is one final spirit to come. Then you will understand everything."
Once again Scrooge found himself in his bed, startled awake. This time instead of a human form there was black cylinder on the table. It was making some kind of chirping noise.
Scrooge: "Are you the third and final visitor? The Ghost of Software Future?"
The chirping stopped. After a moment a pleasant voice came from the black cylinder.
"No, dummy. I'm Alexa."
"So you're not the spirit that was foretold?"
"You're not exactly the shiniest wrench in the toolbox, are you? Like I said, I'm Alexa. Pick up the head set and put it on." He did as told, and was instantly in a completely different world. A VR headset, apparently.
It was a dismal place, this world he found himself in. Like something out of Blade Runner, a gritty urban landscape of sooty buildings and slick wet streets. Garbage was heaped on sidewalks.
From out of the shadows a figure draped in a cloak with a hood pulled over its head stepped forward. Scrooge could not make out any features save two dark and featureless circles he supposed were eyes. Something about the figure filled him with dread. He took a step back, trembling.
"You...you are the spirit? The final spirit?"
The figure merely raised one arm and pointed. It was hard to see, but to Scrooge it almost looked like the hand was not a hand at all, but more like a skeleton. Now he was terrified. Slowly he turned to look in the direction indicated.
A man was crouched in a doorway, apparently trying to keep warm. It must not be working very well because he was shivering. From time to time he would cough violently.
As Scrooge watched, a policeman approached the man in the doorway. "C'mon buddy, you can't sleep here," the cop said, prodding the coughing man with his nightstick.
"I'm not a bum," the man said, turning with a defiant look at the cop.
"Sure, right. Whatever you say bub. Now move along."
"I'm NOT a bum. I'm a software developer!"
"Right," the policeman said.
"It's true. It's TRUE! I'm just out of work. My company, they laid everyone off. I was the best VB6 programmer there, but another company came along with a hosted web version and we LOST ALL OUR CUSTOMERS!" His voice rose to a shriek.
"I lost everything. EVERYTHING! My son, my baby boy--Tiny Tim--he died when our medical insurance ran out. My wife left me for a QA engineer at Amazon." Another prod with the nightstick. Slowly he began to gather his belongings and pile them in a shopping cart. "If only I'd learned C#," he said to himself as he shuffled off, the cop following behind.
As he passed under a streetlight his face came into the light and Scrooge gasped. It was his employee Bob Cratchit! He turned to the spirit to say something but a screech filled his mind--a sound more felt than heard. In pain he closed his eyes, and when he reopened them he found himself in a different place.
At first he couldn't tell where he was, for a dense fog obscured everything. He clearly wasn't in the city, because there was muddy grass under his feet. A bit of wind blew the fog away for a minute and to his horror he saw he was in a graveyard.
"O Spirit! Why hast thou brought me to such a dismal place? Surely this has nothing to do with me?" he asked.
The spirit pointed again. A grave, recently filled in from the look of it. A small headstone he couldn't read. He shook with dread.
"Do not, I beg you, do not make me look O Spirit of Software Future! Just let me go home and to my bed!"
Another screech, more painful than the first. He knew he had to get closer. The headstone was covered in wet leaves. Scraping them off he saw the inscription carved into the marble: it was his own name. Fluttering in the slight breeze on the mound was a newspaper--he picked it up slowly and read:
SOFTWARE CEO DEATH LINKED TO MASSIVE DATA BREACH
The news report said he had allowed a hack on his application, resulting in the loss of private data like social security numbers and credit card info on millions of people. He was being investigated by the FBI and had been charged with multiple crimes. They blamed it on the age of his application, the lack of maintenance and resulting vulnerabilities to an Eastern European criminal organization. The report further said he had died of an apparent heart attack two day after being formally charged and confined to house arrest. The paper quoted an unidentified victim as saying "Good riddance" on hearing of his death.
His face drained of blood, Scrooge turned to the hooded figure.
"O Spirit, say this isn't my future! Surely this isn't carved in stone."
Even as he said it, the irony crossed his mind.
"I will change. I swear it. I see now that my refusal to modernize my code, my platforms, and my people will only lead to misery and even death." Tears ran down his cheeks. "Please Spirit! Say this isn't the only path! Say it isn't!" Sobbing, he fell to his knees, clutching the paper with its dreadful news. "Please, oh please!" The world seemed to spin again and he fell face forward into the mud.
***********************
Sunlight--that rare thing in Seattle in December--poured through the window and fell on Scrooge's face, creeping up as the sun climbed until the rays fell full on his closed eyes, waking him. For a brief moment he stretched and yawned, then the memory of his nighttime adventures came back with a rush, including the terrible ending to his, what? Dream? Time travel? Actual visits by ghosts? He stood up, noticing that the day was extra bright due to the unusual coating of snow on every surface outside, turning the city into a kind of magical fairyland.
"Humbug," he thought to himself as he headed for the door and the coffeepot. "Just a bad..."
And then he saw it.
On the floor, beneath the table.
A floppy disk.
Stunned, he stared at it, frozen. So it hadn't been a dream.
And then he made up his mind.
Scrooge brushed his teeth, made coffee, and opened his laptop. He ordered five books on Amazon.com, signed his entire development team up for three separate training classes on Agile and Scrum, and opened Google up to a search screen and typed: Modernize VB6 to HTML.
And found www.mobilize.net.
Merry Christmas from all of us.