The Unicorn Project Read online
Page 5
Maxine hears an audible gasp from the whole audience and a loud buzz of urgent murmuring. Sarah continues, “This will finally give us parity with the competition, and we will be poised to regain market share.”
Maxine sighs in frustration. She understands Sarah’s urgency, but it doesn’t change the fact that there are over a hundred developers who are nowhere near as productive as they should be, struggling to perform routine builds, spending too much time in meetings, or waiting for things they need. Sarah’s speech sounds like listening to a general tell you how important winning the war is and then finding out that all the soldiers have been stuck in port for three years.
On the other hand, at least Sarah hasn’t pitched something completely new today.
Steve thanks Sarah and then quickly reviews the company financials, and an injury that happened in one of the manufacturing plants last month. He talks about Hannah, who had her finger crushed by a stamping machine, and how they’ve replaced that machine with one that has a sensor preventing the plates from closing when anyone is the danger area. He applauds the team for not waiting for budget to act on this, “Remember, safety is a precondition of work.”
Maxine loves these report-outs and has always been impressed and emotionally moved by how much Steve cares about employee safety.
He says, “That almost concludes our report-out. We have about fifteen minutes for questions and answers.”
Maxine’s attention wanders as people ask Steve questions about the revenue forecast, the performance of the physical stores, the recent issues in manufacturing … But when someone asks about the payroll outage, she’s jolted alert before shrinking back into her seat while straining to hear every word.
“I apologize to everyone who was affected by this,” Steve replies. “I understand how disruptive this was to everyone, and rest assured that we’ve taken very specific actions to make sure that it never happens again. It was a combination of technical problems and human error, and we think we’ve remedied both of them.”
Maxine closes her eyes, feeling her cheeks turn bright red, hoping no one is looking at her. She can’t see how her exile to the Phoenix Project could possibly be considered a remedy.
CHAPTER 3
• Monday, September 8
After the Town Hall, Maxine returns to her desk. She looks at her calendar. It’s day four of her imprisonment and her quest to perform a Phoenix build, but it feels like it’s been nearly a year, the hours passing like molasses.
She gets a notification on her phone, startling her back to reality:
Phoenix Project: stakeholder status update (starting in 15 minutes).
This is a new meeting for her. To further her quest, she has asked everyone to feel free to invite her to any meetings. It beats sitting at her desk, and she’s still trying to get the lay of the land. She’s hoping to find someone who can get her some of the things she needs. She’s been careful to avoid getting assigned any action items or to volunteer to work on fun-sounding features—she cannot be distracted from the Phoenix build.
Everyone around here thinks features are important, because they can see them in their app, on the web page, or in the API. But no one seems to realize how important the build process is. Developers cannot be productive without a great build, integration, and test process.
She arrives early and is surprised that there’s no room except in the back. She stands against the wall with five other people. Looking around, her eyes widen—all the movers and shakers in the company are here. Maxine smiles when she sees that Kirsten Fingle is leading the meeting. She heads up the Project Management Office. Maxine loved working with her when she was supporting a major program that had several of Kirsten’s project manager ninjas assigned to it—they were typically reserved for the most important projects that required lots of coordination across many groups within the company. They’re aces at making things happen. They can escalate and resolve issues quickly, often with a single text message.
At the front of the room is Chris, who gives her a terse nod—he oversees the efforts of over two hundred developers and QA people, dominated by the Phoenix Project. Chris is glaring at someone across the table from him who looks like Ed Harris from Apollo 13. When she quietly asks the person next to her who he is, he responds, “Bill Palmer, the new VP of IT Operations. Promoted last week after the big executive purge.”
Great, Maxine thinks. But she enjoys seeing the seniority of the people in the room. It’s like being up on the bridge of the starship Enterprise and watching the officers interact with each other.
She enjoys the first fifteen minutes of the meeting. It’s chaos. Everyone is trying to decipher what exactly Sarah meant at the Town Hall when she said that the launch was “later this month.” Kirsten says emphatically, “The date is still being negotiated and nothing specific has been communicated to me yet.” Could it really be another false alarm? Maxine thinks, incredulous.
Maxine guesses that there is extra urgency as they review the business priorities, the top issues needing escalation and attention, and the priorities that need deconflicting. She doesn’t know what all the acronyms mean, but she adds the ones that she thinks are actually important to her list and leaves out the insipid corporate argle-bargle.
As the meeting drones on and against all her expectations, she grows bored as the focus turns toward meaningless minutia, passionately pushed by … she honestly has no idea. Does OEP stand for “Order Entry Protocol” or “Order Entry Program”? Or were they talking about the OPA again? Or maybe they were the same thing? Do I really care?
Forty minutes later, her eyes are glazed over—it’s the “task status” phase of the meeting, and Maxine has lost all interest. If she had anything else to work on, she would have left by now.
Her feet hurt from standing so long, and she is reconsidering her decision to stay in the meeting when she hears someone complaining about how long they’ve been waiting for something they need. She smirks as she thinks, Join the club. That’s what I do all day long.
One of the Dev managers responds from the “junior people” side of the table. “Yes, we’re definitely behind, but we have a couple of new developers starting this week to help, and they should be up to speed and productive in a week or two.”
Ha. I’m really good at this stuff and I’ve made almost no progress, she thinks, looking at the floor. She smirks to herself. Good luck, chumps.
There is a long, awkward silence in the room. Maxine looks up. To her horror, everyone is looking at her—she realizes that she must have said something aloud.
She looks at Chris, who has a stunned expression on his face and is wildly gesturing with his hands at her in a “no, no, no” kind of way.
From the front of the room, Kirsten quickly says, “Great to see you, Maxine! I had no idea you were on Phoenix. We’re glad to have someone of your experience helping this effort—you couldn’t have shown up at a better time!”
Chris buries his face in his hands. If Maxine hadn’t already been standing against the wall, she would have been backpedaling. Mimicking Chris, she waves her hands in front of her. “No, no, no … Sorry, I’ve only been here a few days. You’re all doing an amazing job. Please carry on—I’m just here to help with documentation and builds.”
Kirsten, with the earnestness that makes her so effective, doesn’t let it go. She leans forward. “No, really. I think you said, ‘Good luck, chumps.’ I’m always interested in your perspective, given your extensive success in plant operations. I’d love to better understand what made you laugh.”
“I’m sorry I laughed,” she starts. “It’s just that I’ve done nothing except try to get Phoenix builds going on my laptop since last Wednesday, and I’m basically nowhere. I’m waiting for credentials, license keys, environments, configuration files, documentation, you name it—I know everyone has a lot on their plate and I know that Phoenix is such a large application that getting all the pieces together to do a build must be a pretty immense under
taking, but if we all want our developers to be productive, they need to be able to perform builds on Day One. Ideally, they should be writing code in a production-like environment so they can get fast feedback on whether the code they write works with the system as a whole. After days of trying, I still don’t have anything resembling the whole system—I have a box of subassemblies, with a whole bunch of missing parts. And I’m really, really good at this stuff.”
She looks around the room and gives a half-hearted shrug to Chris. She really needed to get that off her chest. Chris looks aghast.
“I’m just hoping these new engineers that you’ve been hiring have better luck than me, that’s all,” she concludes quickly.
There’s a long awkward silence. Randy nods emphatically and crosses his arms, looking smug. Someone from across the table laughs loudly. “She is so right! They’ll need a lot more than luck! Getting a Dev environment around here is like going to the local DMV to renew your driver’s license—take a number, fill out a bunch of forms, and wait. Hell, I can get a driver’s license in a day … it’s more like trying to get a permit to start a new construction project—no one knows how long it’ll take.”
Half the people in the room laugh unkindly, while the other half of the room is clearly offended.
Maxine looks at the wise-cracking person who spoke—he’s about forty-five, slightly overweight in an “ex-athlete” sort of way. He’s square-jawed, oddly clean-shaven, with big, square glasses. He’s wearing a skateboarding T-shirt, and his face has a permanent scowl.
Based on his crankiness, Maxine bets that he’s a senior developer—being stuck in an environment like Phoenix for a long period of time must take a toll on people.
Someone from the front of the room starts responding—she recognizes William, the super nice Director of QA, who has gone out of his way to help her. “Look,” he says, “our teams are getting further behind on testing, so we all agreed that in order to hit our dates we would deprioritize environment work—shipping fully tested features would take priority. We all knew that this would increase the lead times for getting environments to our teams. Trust me, my teams are being hit just as hard as yours—QA needs environments to test in too.”
The cranky developer immediately responds, “William, you got suckered. That was a terrible decision. This is a disaster. Maxine is right—developers need environments to be productive. You should have an entire team of people assigned to fix the environment creation process. I’m on three projects that need staging environments, all of which have been waiting months. In fact, this is so important, I’d like to volunteer to help,” he says.
“Denied,” says Chris wearily from the front of the room. “Stay in your lane, Dave. We need you focused on features.”
William says, “Wait, wait … I’ll have you know that we’re not actually the bottleneck for environments—we have several environments that are ready to go, but we still need login accounts from Security and storage and mount points from Ops. I’ve escalated it but haven’t heard anything yet.”
Chris points a finger accusingly at Bill and turns to Kirsten, “I need help on escalating our needs to Operations.”
Bill quickly responds. “If we’re the bottleneck, I need to know. Let’s figure out how to get William what he needs.”
Kirsten nods, appearing slightly exasperated. Maxine assumes it’s because more and more dependencies are surfacing. “Yes, good idea, Bill. Alright, let’s move to the next milestone on the list.”
As Kirsten talks, Chris turns to look at Maxine, his expression screaming, Which part of “lie low” did you not understand, Maxine? Maxine mouths the word sorry.
Out of the corner of her eye, she sees a younger man kneel by Kirsten, whispering in her ear while gesturing at Maxine. Instead of wearing khaki pants, he’s wearing jeans and is holding a black Moleskine notebook.
Kirsten nods and smiles at him, points at Maxine, and whispers a couple of sentences in return. The young man nods, furiously taking notes.
Maxine decides to make a beeline for the door, leaving as quickly as possible before she does something else stupid.
She makes it into the cool hallway, relieved to be out of that hot, stuffy room. She heads to the kitchen, where it is even cooler. She’s thinking about getting a mug of coffee, maybe her fifth today, when she hears someone say behind her, “Hello, you must be Maxine!”
She turns around. It’s the young man from the meeting who was talking to Kirsten. He smiles broadly and extends his hand, saying, “Hi, I’m Kurt. I’m one of the QA managers who works for William. I heard in the meeting that you need license keys and environments and a bunch of other things to get a build running? I think I can help.”
For a moment, Maxine just stares back at him, not sure if she heard him correctly. For days, her life has been to search every nook and cranny for the components needed to build Phoenix. For days, she’s been submitting ticket after ticket into an uncaring and faceless bureaucracy. She’s stunned that someone actually seems to want to help her.
Maxine catches herself staring at Kurt’s outstretched hand, snaps back to reality, and shakes it. “Nice meeting you. I’m Maxine, and, yes, I’ll take any help I can get to get a Phoenix build going!”
She adds, “I hope that I didn’t step on anyone’s toes back there. I’m sure everyone is doing their best, you know, given everything that is going on …”
He smiles even more broadly, pointing his thumb back toward the conference room that they were in. “Those folks? Don’t worry about it. They’re in such deep trouble that they’re all covering their asses and throwing each other under the bus. I doubt they’ll even remember what you said by the end of the day.”
Maxine laughs, but Kurt is all business. “So, you need to get Phoenix builds going. How far have you gotten and what do you still need?”
Maxine slumps. “Not nearly as far as I want, and it’s not for a lack of trying.” She describes in considerable detail what she’s done so far and all the steps that still remain. She opens her checklist on her tablet, showing him all the open to-dos, pointing out everything she’s waiting for.
“Wow, most people give up long before getting as far as you have,” Kurt says. “May I see that?” he adds, gesturing to her tablet.
“Sure thing,” she says, handing it to him. Kurt runs his finger down the list, nodding and appearing to compare it with another list in his head.
“No problem, I think I can get you almost all of these things,” he says. And with a smile, he adds, “I’ll throw in a couple other things that I’m guessing you’ll need later. Don’t worry, you couldn’t have known. We had to learn the hard way too. No one around here documents the build environment very well.”
Kurt takes a picture of her list with his phone and gives it back to her. “You’ll hear from me in a day or two,” he says. “The Phoenix Project is in the Stone Age. We’ve got hundreds of developers and QA people working on this project, and most can only build their portion of the code base. They’re not building the whole system, let alone testing it on any regular basis. I keep pointing this out to the powers that be, but they tell me they have everything under control.”
He looks pointedly at her. “You wouldn’t put up with that back in your old MRP group supporting the manufacturing plant, right?” he asks.
“No way,” she responds quickly. “It’s like that guy said in the meeting—developers need a system where they can get fast and continual feedback on the quality of their work. If you don’t find problems quickly, you end up finding them months later. By then, the problem is lost in all the other changes that every other developer made, so the link between cause and effect disappears without a trace. That’s no way to run any project.”
Kurt nods. “And yet, here we are, running the Phoenix Project, the most important project in the company, like we would have run a program in the 1970s. Developers coding all day and only integrating their changes and testing at the end of the project. What cou
ld go wrong?” he adds with smirk. “They keep telling me these decisions are above my pay grade.”
They both laugh.
Kurt doesn’t seem bitter or cynical. He radiates a good-natured vibe with an easy acceptance of the way the world works. He continues, “I envy how much your manufacturing team got done and how many platforms you supported. We’ve got ten times as many people on Phoenix, but I suspect your old team gets a lot more done than we do.”
Maxine nods. She definitely misses her old team.
“Oh, and by the way, there’s a rumor that might interest you,” Kurt says, looking around as if afraid of being overheard. “Word is that Sarah pushed for Phoenix to launch this week, and that Steve just approved it. All hell is about to break loose. Let me know if you want to tag along as they assemble the release team. That’ll be super fun to watch.”
After that strange interaction, Maxine sits back at her desk and realizes that she is waiting again. Absentmindedly, she looks at a quote she always has taped to her desk from one of her favorite Dr. Seuss books, Oh, the Places You’ll Go.
The book describes the dreaded Waiting Place, where people wait for the fish to bite, wind to fly a kite, for Uncle Jake, for pots to boil, or a better break … Everyone is just waiting.
NO!
That’s not for you!
Somehow you’ll escape
all that waiting and staying.
You’ll find the bright places
where Boom Bands are playing.
Everyone on the Phoenix Project is stuck in the Waiting Place, and she is determined to rescue everyone from it.
It’s 11:45 a.m. Maxine looks at her calendar. It’s only day four of her forced exile. While she hadn’t hear back from Kurt, she did manage to get access to the third of four source code repositories. Today, she decides that she cannot wait for other people any longer.