A Fork in the Code (a business fable)
“I’m looking forward to the first demo, Joe,” said the CEO.
Joe grinned. “Me too.” He glanced over the CEO’s shoulder at floor-to-ceiling windows. He loved the view of the city skyline from here. Some day, he wanted an office like this.
“You’ve done a good job of selling this project. Everybody’s got their eyes on you. Any bumps in the road I should know about?”
“Nah,” said Joe, smiling and shaking his head. “Smooth sailing. We’re still on track for next Wednesday.”
“We’ve got a problem.” Marcus, the team lead, stood in the doorframe of Joe’s office, looking more worried than usual.
Joe closed his laptop. “Sit down. Talk to me.”
Marcus sat down heavily. “Filip was going through some new test scenarios and found a synchronization bug.”
Joe blinked. “How bad is it?”
Marcus grimaced. “It’s bad. It’s a miracle we found it at all. Everything starts out fine at first. But over time? there’s a skew that slips in, and after a week or two it’ll be data corruption city.”
Joe glanced at his calendar. The demo was tomorrow.
“Can we still do the demo?”
Marcus threw his hands up. “Yeah, we can do the demo, and everything’s going to look great. That’s the problem.”
Joe waited.
Marcus shook his head. “You know how this company works, Joe. They’re going to see it working, and they’re going to get excited and want to move up the timeline for delivery.”
Joe nodded. Yeah, he’d seen it before. “How long will it take to fix?”
Marcus shook his head. “This kind of bug is devilishly hard to track down. It could be a few days. It could be a few weeks. I just don’t know.”
“Can you patch it? Force it to work?”
Marcus looked up at the ceiling for a moment, then wrinkled his nose. “Maybe, but that’s going to make the new system twice as slow as the system it’s replacing. And then what’s the point?”
Joe grunted and didn’t hesitate. “Patch it. Then let’s go back to your desk and look at the schedule, see who we can retask to find that bug.”
Marcus’ face fell. “You sure? That’ll make the demo tomorrow slow. I mean painful.”
Joe shook his head. “We don’t have time to second-guess ourselves. Patch it, then find that bug. I’ll run interference for you.”
That afternoon, just as he got back to his desk, Joe’s phone rang.
“Joe, it’s me. I need you in my office.” The CEO sounded grim. Word had traveled fast.
“I’ll be down in a minute.”
Usually Joe enjoyed visiting the CEO’s office with its nice view, but now, walking down the hall, his feet felt heavy. It had to be Dan, the CTO. Dan, a champion of the previous system, had been against this project from the start.
Sure enough, when he entered the office, Dan was standing by the window, looking pleased. The CEO was at his desk.
“Joe,” said the CEO, “Have a seat. What’s this I’m hearing about the project?”
Joe glanced at Dan. “Well, I just got back from talking to Marcus and the senior engineers myself. There’s a problem.”
“Pretty late in the game for problems. You told me smooth sailing.”
Joe nodded. “I did, and then the wind picked up. The QA team did their jobs and found a bug.” He shrugged and shook his head. “Really, it's a good thing they found it. It’s a bad one. This could have caused a lot of damage if it’d slipped into production.”
“What’s the damage to the schedule, though?”
“We can still do the demo, but the system's going to be slow until the team finds the source of the data corruption.”
“What did I tell you?” Dan crowed. “This whole thing is a waste of time. If the old system isn’t broken, don’t fix it.”
Joe took a deep breath. “It'd be premature to throw the new system out. The synchronization simply won’t be real-time—“ he hesitated, but plowed ahead. “There’s going to be a half hour delay at first.”
Dan laughed. “Well, that’s definitely a difference from the old batch system. Why, that system takes a whole fifteen minutes to sync up.”
The CEO shook his head. “This isn’t good, Joe. We’ve been pouring a lot of money into this project.”
Joe nodded thoughtfully. “Yeah. And we need the real-time feedback to coordinate between departments better. You’re right. That half hour delay’s not acceptable. About that demo.”
A few minutes later, it was Joe’s turn to stand at the entrance to Marcus’ cubicle, looking worried.
Marcus looked up. “Uh-oh. What is it?”
“Have you guys jury-rigged the sync patch yet?”
Marcus shook his head. “No, I was actually about to start on that.”
Joe made a chopping motion with his hand. “Axe it. We’re canceling tomorrow’s demo. Rescheduling for next week. Forget the patch. Put every resource you can afford into squashing that bug.”
Marcus’ eyebrows shot up. “No demo?”
“No demo.”
Marcus closed his eyes and heaved a deep sigh. “That’s the best news I’ve heard all day.” He opened his eyes. “Why the change?”
Joe grinned. “I found some time to second-guess myself.”
“Dan?”
“Dan.”
—
The next week, after the demo, the CEO came over and clapped his hand on Joe’s back. “Well, I’m impressed, especially after last week’s trouble. Good work.”
Joe smiled and pointed at the engineering team as they filed out of the conference room. “It wasn’t me. Marcus and Filip tore the data synchronization apart and put it together again piece by piece. They put some long days into it.”
The CEO nodded. “Still, it was gutsy of you to reschedule the demo when you had so much riding on it. And it paid off. If you’d gone ahead with the original schedule, you would have had a lot of disappointed people on your hands. Including me.”
Joe grinned. “Thanks. Only Dan’s disappointed right now.“
The CEO chuckled. “He’ll get over it.”
The point of this story is to show some of the traits of a good software project sponsor:
Being a good project sponsor isn’t easy, but it can be worth it. A successful software project can transform your business for the better.
What software projects have you seen succeed or fail in your business? What happened?