Chapter 11
Danni
I love the ocean but I don’t love fish. I don’t like how they slither, I don’t like how they feel, and I don’t like how they smell–alive, dead, or cooked.
Every day for the past week and a half, Chance has brought salmon for lunch, popped it into the microwave, and sullied the air with a fishiness that lingers well into the afternoon. His alpine mist isn’t even a match for it.
Morgan, Kayla, and I have been going out to lunch to avoid the worst of the smell, but I can’t keep spending ten dollars a day at Chubb’s Sub and Grub. That adds up quick.
Hence, I’ve taken a break from software architecting to whip up a petition. It’s simple—one paragraph with enough lines for everyone in the office to sign, not including Chance.
A Petition for Olfactory Peace
We, the undersigned, call a moratorium on microwaving salmon or any other types of fish due to its offensive, lingering odor. While we support the consumption of omega-3 fatty acids, we feel they have no place in this office unless in pill form. By signing this petition, we seek to re-establish office order, noting that we wholeheartedly support the right to privately consume fish. Just don’t do it here. In unity:
And that’s that. I send it to the printer in the supply room and then run to pluck it off the machine before anyone sees it. Stealthily, I attach a piece of tape, wander nonchalantly into the empty breakroom, and then check over my shoulder to make sure I’m still alone before slapping my petition to the wall. I’m back in my seat before anyone gets wise.
Chance didn’t notice my ninja moves. One, because they were ninja moves, and two, because he’s been hovering by Drew all day every day since last week. They’re hunched in front of Drew’s monitors, hyperfocused on something while I sit over here enjoying my alone time except for the annoying twinge in my chest whenever I suspect that they’re mucking with my code. But they wouldn’t be doing that. My code is already in test. Every programmer knows you don’t mess with code when it’s in test.
I clench my jaw and refocus on my work. My meeting with Chance and Heng is in twenty minutes, during which I plan to give them an overview of our benefits portal application and talk them through the code scaffolding. Ever since Christopher told me I was taking the lead on this project, I’ve spent my mornings and afternoons idiot-proofing the architecture so neither Chance nor Heng veer off course–mostly Chance. Heng and I haven’t talked much, but I sense he’s a rule follower, not an ego-coder, thank goodness.
At five minutes to ten, I push away from my desk and squint at Chance’s back, which is next to Drew’s back, both of them hunched over like they’re peering at an old Commodore 64 green screen versus the three monitors that Drew bought himself because he didn’t approve of JetAero’s standard issue LCD monitors. Also, two monitors weren’t enough. He brought in a third one, and then he chained them to his desk so no one could steal them. Probably a smart move. I looked it up. They cost five hundred dollars each. In other words, Drew and Chance have plenty of viewing area.
What are they doing over there? Designing a fusion rocket to travel to Proxima Centauri? Or is Drew slowly getting Chance up to speed on JetAero’s apps? I thought I was supposed to train Chance.
Oh well. If he wants to follow Drew around like a puppy, I can’t stop him. And this way, Chance’s gum chewing is out of earshot and his big feet are nowhere near my tiny feet.
I take a deep breath and straighten my spine. Don’t be negative. Good thoughts. You’re his project manager. You have to get along.
I hustle my negative thoughts into a corner, including the one hating on Chance’s feet, and head in his direction, zeroing in on the back of his head, specifically the loose curls that he often combs with his fingers while tilting his head back, turning his Adam’s apple into a mountain begging to be climbed and conquered.
No. Not that.
“Meeting time,” I say to Chance’s curls as he runs a hand through them. Of course. It’s like he read my mind.
The thought of Chance poking around in my brain turns my face into a fireball. Luckily, he’s still homed in on that five-hundred-dollar monitor, his pupils nowhere near my flaming cheeks.
I look away and remind myself how annoying he is. Messy, inconsiderate, gum-chewing Chance. What a disaster. Be professional, Danni.
“Meeting time,” I say again, because Chance didn’t budge the first time.
He doesn’t budge the second time either. I kick the bottom of his chair. He lifts a hand and offers me the back of it. “Be there in a minute.”
What has him so distracted that he can’t even flip his palm around to wave at me properly?
I peer at Drew’s monitor, and my name jumps out at me. It’s in the comments section of a block of code that I spent two days coding and debugging. The flame returns to my cheeks. They’re in my code! What are they doing in my code?!
Heng approaches, both hands wrapped around a notebook, looking uncertain. “Are we meeting here?”
I look at him sideways, offering only one cheek to protect him from the intensity of the two-alarm fire on my face.
Maybe Drew is just stepping Chance through my code as a training exercise. Because they wouldn’t dare touch my code. Not when it’s already in test.
I paste on a professional smile. “We’re meeting in CR3. Heng and I were just headed that way.”
I will Chance to stand and follow me. He does not. That leaves me and Heng alone in the conference room, staring at each other from opposite sides of the table.
The walls of the small conference room close in like a trash compactor as Heng and I breathe self-consciously into the space between us. I’m in charge. I should diffuse the awkwardness. “All right, then. Ready, Freddie?”
“Oh. I’m Heng,” he says with a slight accent. Heng keeps to himself. This is the first time I’ve heard him speak.
“I meant, are you ready to get started?”
“Oh, yes. Very.”
I fidget with my laptop, and then glance over my shoulder. Still no sign of Chance. “Are you from Southeast Asia?” I ask, and then second guess myself. Chance pops into my head calling me a racist xenophobe, except he never said xenophobe. Morgan did that. “I had a friend from Laos,” I explain.
“My parents are from Cambodia. You’re very perceptive.”
Or stupid. One of the two. I’m going with stupid. Where’s Chance?
I lean over and prop my forehead against my palm. “Sorry. I’m flustered. I just saw my name on Drew’s monitor, and–”
“What’s up?” Chance announces boisterously.
“Your time,” Heng says.
Chance pulls out a chair and spins it around before straddling it. He rests his forearms on the back, leaning toward us. “My time’s up?” Heng looks pleased that Chance got his joke. Chance looks at me and arches an eyebrow. “Am I off the team?”
“Not yet,” I say.
I push myself to standing and cross to the whiteboard while Heng utters a quiet, “Burn.”
“I’ll make this quick,” I say. “I’m not into meetings. Most of them would only take five minutes if people stayed on task.” I grab a whiteboard marker while Chance rubs his palms together.
“That’s my kind of Scrum master,” he says.
“We’re not a Scrum team. We’re Agile here, but not too Agile. My old boss’s motto was, if software is getting delivered on time, our processes are working. Don’t break what isn’t fixed.”
Chance lets out a sound that’s a mixture of “ch” and “sh.” I’m not sure if he’s mocking me or telling me to be quiet. Rather than try to figure it out, I start diagramming the application architecture that I’m about to foist onto them.
“Don’t you mean, don’t fix what isn’t broken?” Heng says.
I glance at him over my shoulder. “Isn’t that what I said?”
Chance makes his “ch/sh” sound again.
“I knew what you meant,” Heng says.
They both listen quietly while I diagram our objectives and division of labor.
“Where are the requirements?” Chance asks.
“They’re in the old app,” I say, still outlining subtasks.
“Please don’t tell me the old code is the requirements.”
I look over my shoulder. “I could lie to you, or just say yes. Which would you like?”
Chance leans back and rubs his face.
“We get to write the requirements ourselves as we go,” I add.
He groans. Heng looks on expectantly.
“How are we supposed to be Agile without functional requirements? How do we know what pieces to deliver first based on customer expectations?”
I turn slightly so I don’t have to crane my neck and then jab my whiteboard marker at my drawing. “I’m explaining it right now.”
“We’re supposed to do backlog grooming and daily standups and two-week sprints with incremental releases.”
“I already told you, we’re not fully Agile. We don’t have the testing staff or the software for it.”
Another groan.
I let it roll off my back. “We’ll meet every Monday, Wednesday, and Friday until you get settled. Then we can decide from there. Bring your requirements questions to me. If we can’t figure them out together, I’ll go to the customer. I’m putting together a prototype for them to demonstrate the basic functionality. They’re already familiar with the interface because I designed it to work seamlessly with their HR app.”
I return to my seat and plug my laptop into the projector, pull up my code mockups and lean back, crossing my arms to survey my work. It’s nothing fancy. That’s by design. I minimized the architecture’s complexity, reducing unnecessary interface calls.
Chance spins his chair around, and then he rests his elbow on the table and leans into his hand, his eyebrows knitted together as he takes in my code. Heng looks at my brain baby approvingly while Chance continues to scowl.
Undeterred, I pull up some HTML and talk through the app’s layers one by one. When I’m done, Chance’s chin is still on his hand and his eyebrows are so close together they could kiss each other. A couple of eyebrow hairs actually do, right in front of me, with no shame.
Chance has no shame either.
“This isn’t real Chai coding,” he says.
Heng waits for him to continue. I swallow the curse word that nearly crosses my lips before actually opening my mouth. “Excuse me?”
“I don’t know what this is. This is just…not it.”
My eyelid starts to twitch. “Actually, it is it because this is the architecture we’re going with.”
Heng blinks at me, mouths the word “burn” and then flicks his eyes back at Chance.
“How much design time do we have?” Chance asks.
“None. I used it all. The app is due in six weeks.”
Chance leans back and rubs his face again and finishes the job by running his fingers through his hair and presenting his Adam’s apple to the room. I don’t want to climb it, more like karate chop it. A good throat punch. That’s one way to establish my authority.
“What about my code isn’t ‘real’ Chai work,” I say, saving the throat punch in case this meeting starts going south of south . Surely it won’t. Also, I don’t feel like getting fired today.
“The backend code is too simplified. There are too many objects in the view layer, too much duplicated code.”
“Really.” It’s not a question. It’s a challenge.
“I hate mucking around with HTML. If we genericize the view layer, it complicates the backend and makes the coding more fun.”
Heng’s eyebrows shoot up his forehead. Mine stay in place by sheer willpower, but I require a moment to force my tongue to behave. A deep breath reduces my boiling blood to a simmer. I spread my palms against the tabletop, focusing on my fingers while I carefully choose my words. “See, that’s what I’m trying to avoid. Complications.”
“If you want to change the look and feel of the app, you’ll have to modify five hundred objects.”
“Not five hundred. More like thirty and not when the HTML and CSS are written properly. Then it’s just a matter of changing a few styles.”
“But if it’s genericized, you only have to change it in one place.”
“This app needs to be in test in six weeks.”
“No problem.”
“And when you’re gone and someone has to maintain your code. They need to be able to make sense of your ‘complications.’” I use air quotes. It’s not professional, but neither is Chance’s behavior.
“That’s what comments are for,” he says in an ah-ha tone like he just solved world hunger.
“Do you include comments? Because a lot of coders don’t include comments.”
“Sure, when they’re necessary.”
“And how do you decide when they’re necessary?”
“I just do,” he says before crossing his arms.
I grit my teeth and tap my thumb against the tabletop. Heng is leaning back, one arm draped over his stomach, his opposite hand covering his mouth. Smart. Chance could learn a thing or two from his coworker. But I have a feeling Chance doesn’t like to learn from others, he prefers to forge his own path, never mind everyone else. I’ve read this story before, but it’s a Choose Your Own Adventure, and I’m in charge of how it ends.
I lean over the table, meet Chance’s eyes, point at my code on the wall, and invoke my JetAero authority. “This is how we’re really doing it. We’re using the KISS method. Keep it simple stupid.”
Chance furrows his brow at me.
I smile at him. “Who’s ready for lunch?