One day, Darrell worked in the Vancouver office of a small California-based company. The next day, a Fortune 500 company went “OM NOM NOM” and Darrell found himself suddenly employed by them.
Before long, the word “integration” tricked down from above, like a golden stream of endless project work. Trying to link the small company’s software release with the behemoth that had swallowed it was going to be no small task. The massive undertaking meant that Darrell had to spend 30% of every month in the California headquarters.
One day, Darrell sat down at his desk and attempted to log on. The system replied: “The network is busy. Please try again later.
” Despite being part of a gigantic multinational, this particular network only served 50 users and had servers that could take on three times that capacity. It made no sense to see that message.
As Darrell debated what to do, one of the admins, Tim, popped his head over the cube partition. “Hey, Darrell- did you get my email?”
“No,” Darrell said. He looked up at Tim then back at his computer. He pointed at the screen. “I can’t log on. Is that related?” He glanced back up to the empty space where Tim’s head had been. Tim had evaporated the instant Darrell said “No”.
Obviously, that wasn’t terribly important. With no real work to do, Darrell decided to pay attention to the blinking voicemail light on his phone. The only message, from early that morning, was from Tim. “Hey, I sent you an email.”
After a few more attempts, Darrell logged in and found Tim’s email.
Hey, could you stop by when you get in the office? Thanks, Tim.
Darrell wasted ten minutes prying his palm from his face with his stapler. It was a good, hefty stapler. Solid metal construction, with a weighted base; “Colonel Mustard in the Library with the Stapler” sort of weight. Darrell wisely left it in his cube when he went to visit Tim.
“Oh, there you are,” Tim said. “I just wanted to let you know that I’m running a few maintenance scripts, and the network is going to be a little slow while it runs.”
“Give me a moment,” Darrell replied. “I need to run and grab my stapler.”
Instead, he saw some real work in his inbox, and focused on that. When the slowness on various network services irked him, he did a little poking to see what these “maintenance scripts” were. Turned out, Tim was running some clumsy find
commands to delete files, and they were nice
’d to maximum priority. Darrell simply accepted the bastard operator’s rudeness and tried to focus on his work. He mostly forgot about Tim’s shenanigans until Friday morning.
By mid-week, Development had integrated most of their changes into the Main trunk, and after a few final rounds of unit testing, they made their Thursday afternoon deadline for final check-ins. The code was ready for QA, once the nightly build was finished. Friday morning, dozens of testers sat idle at their desks. Business managers and IT honchos from around the parent company had flown in from all over the world to “supervise” the final push to integrate.
And they remained idle for the first half of the day, for the overnight build had failed. All of the team leads, including Darrell and Tim, were lined up against a conference room wall. The managerial firing squad had a very simple question: “Why is there no build?”
It wasn’t the sort of environment that made you want to speak up, but Darrell had run a quick df
just before the meeting, just to eliminate the obvious problem. “It looks like the build server is out of disk space,” he said. “We probably just need to clean up old builds.”
“And who is responsible for that?”
All eyes turned towards Tim. Tim didn’t notice. A few pointed coughs didn’t get his attention. Finally, the project manager growled, “Well, Tim?”
“Huh? What? Oh! Well, I’ve got a lot on my plate, right now. I probably won’t have time-“
“We need this fixed today,” the chief executioner IT manager said. “Make time.”
“Well, I’ll need at least four hours,” Tim stammered.
“You have four hours.”
The blindfolds and cigarettes were collected and the team leads were released. Tim was frogmarched back to his cube with the mandate, “Fix it!” The clock ticked off four hours. Darrell kept tabs on the server between his other work with a quick df
command. The free space never changed.
Everyone was marched back into the conference room. The project manager stared at Tim. “Well, Timothy, where is my build?”
“What? No! I needed four hours to make a plan how to fix it. I have a plan now—“
“You haven’t started? It’s 4PM on Friday. Testing should have started 8 hours ago. We have an offshore team ready to run through key cases over the weekend.”
“Well, I was planning to start on Monday…”
“You.” The project lead turned his eyes to Darrell. They were dead eyes; the eyes of a killer. “You identified the problem. Do you think you can fix it?”
“Um, yes,” Darrell replied.
“Good. You fix the build server. Tim can clean out his desk.”
As Darrell had suspected, there were a large number of builds to clean up. Source Control triggered a build on every check-in, and Tim had set the server’s retention policy to keep every build ever created, not only the builds that were used for a Release.