"I think I understand the process," Miguel said, "but how do I check in the code?"

Stephan leaned over his desk for a closer examination of Miguel. His expression spoke of a deep distaste for what he saw. "You don't," Stephan said. "Only I access source control. Only I check in files, after I've confirmed that you haven't made any mistakes. Can you imagine the chaos if we just let any developer have access to our code base? We like to keep things nice and organized around here."

Stephan was their source control. The developers had a crummy Visual Source Safe install configured, which let them have some rudimentary collaboration, but nothing in there "counted". The canonical version was in Stephan's private SVN. When the developers finished a task, they gave Stephan the files. He would compare the changes, manually, line-by-line. If he liked the code, he checked it in. If he didn't like the code, the threw the file away. Sometimes, he might even tell the developer that he had done so.

Worse, Stephan's system was a black hole. Code went in, but didn't ever come back out. Stephan worked directly against his source repository. Half the time, a developer's changes would break simply because Stephan had already made changes to the files.

"Which is why I review your code," Stephan explained. "I don't want to waste my valuable time letting you know every time I do some minor task. I need to review your code, anyway to make sure you follow standards."

When Miguel violated those standards, he had a conversation much like this one.

"You used a cursor," Stephan said. "Cursors are inefficient."

"Sure," Miguel said, "but in this case, the other option was to use a LIKE '%term' search, which is even less efficient."

Stephan's shoulders slumped, as if borne down by the weight of Miguel's incompetence. He sighed, and said, "I see. I'm afraid we're going to need to make a few changes around here."

Changes were made; the primary change was the addition of a trio of new project managers. That was their title, in any case. The three women hired to fill the role had no PM experience, no software experience, and knew nothing about the company or the projects they were going to work on. But they were all attractive to Stephan and they did understand time-sheets, so they focused on their core competencies.

These three, the Moirae, lurked around the office, and capriciously weaved the fates of the developers. When Miguel had the temerity to report a 46 hour work week, they descended from their Olympian perch in the corner office to demand an accounting. "Our work week," they said in chorus, "is 40 hours."

"Yes, but we had a production release," Miguel said. "With all the rework, there was no way I was going to make the deadline. If I could have gotten at source cont-"

"Our work week," they repeated, "is 40 hours."

Miguel made his best efforts to stick to 40 hours. After a month of perfect 40-hour work weeks, the Moirae returned. "We suspect," they said, "that you are forging your timesheet. It is implausible that you have been working exactly 40 hours a week for an entire month. It is completely unrealistic, and you are not the only one with a suspicious timesheet. We'll be installing cameras to make sure no one lies."

Life settled into an unpleasant, but survivable routine. Stephan would change things in source control, or maybe he wouldn't. Developers would need to pull an all-nighter to fix the code by the deadline, or maybe they'd get their 40 hour week. Regardless of what happened, Stephan would call them all incompetent trouble-makers, and the Moirae would nod their heads and add that the employees were also liars and frauds and could not be trusted to track time accurately.

One day, Stephan called an all-hands meeting. "Guys, despite the challenges I've had, this company has been very successful, and we're all committed to that future success," he said. The Moirae clustered behind him, grinning. "But our management team has received a fantastic offer to go work for another company. We have to take it." He continued, "That's the bad news. The good news is that they're willing to work around our schedule, so I'll still be around here, overseeing source control and deployments. You shouldn't notice any real changes during this period."

[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!