Radical Pricing
Genesis stepped off the bus, splashing through puddles in neon-yellow rain boots, towards the old, rusted bay door of the "Radical Radiators" building. Her actual employer was "Radiation Programmers", which was either related to the heating company or had purchased the building cheap when the radiators went out of business.
Key in hand, she unlocked the door, walked past the "No Smoking" sign, and settled in beneath the buzzing fluorescent lights. Laptop on wi-fi, NPR murmuring in her headphones, Genesis settled in for her day: writing software to handle payment processing for fan fiction sites.
The garage creaked open. Ten seconds later, a man with a gray, frayed beard ambled in, his blaring music audible even through Genesis's noise-cancelling headphones.
"Hey Howard, how was your commute?" Howard grunted in reply. Their interactions were minimal, consisting mainly of morning nods and grunts. Genesis was replacing Howard on the team, and it wasn't clear to her if Howard was on his way to a new job or was getting fired and training his replacement.
Howard made a bee-line for the ancient coffee machine tucked in the corner. After concocting a brew, he settled at his desk amidst a litter of candy wrappers, soda bottles, and a sandwich from yesterday's lunch, grunting as he sat down.
Genesis checked the time, and realized she had an impending 8:45AM meeting with the CEO, Alexis, or as she preferred to be called, "Alexa". There was no agenda, so she opted for coffee and settled into the makeshift conference room, once a car repair garage's back office.
Alexa arrived late, Starbucks in hand. "Sorry, let's meet in my office."
Once in the office, Alexa set the Starbucks cup down, and grabbed an energy drink from the mini-fridge and some ibuprofen from her desk.
"So, there's no agenda for this meeting," Genesis said.
Alexa downed the pills and chased them with the entire energy drink. "I'll draft one later. How's it going with Howard?"
"Fine."
"Why isn't he here? I invited him to this meeting. Go grab him, will you?"
Genesis went over to Howard's desk, and over his blaring music, said, "Hey, I think we have a meeting. Did you get Alexa's Slack message?"
"Hay is for horses," Howard said, "and I don't check slack. I'll be there in a few minutes. Alexa is always running late anyway."
When the entire team was settled in, Alexa laid out the problem. "Our longest client is an author called ForeverNap. They reliably publish every Saturday, but have a whole complex pricing approach they want. It's great revenue for us, but it means that every Saturday, someone has to go and manually change their entire pricing model- and since they're one of our biggest publishers, that someone is me. Every Saturday, I get up at 6AM and manually fix it. Can we automate this at all?"
"I think," Genesis said, "this would be pretty easy to add a custom code path in the Django models, though long term we might need to do some serious refactoring if we wanted to scale this-"
"It can't be done," Howard said. "ForeverNap's pricing can't be changed through the code. If we did that, we'd slow it down for everyone else. This could lead to a bigger issue down the road, and as Genesis was hinting at, it isn't good coding standards." He turned to Genesis and added, "I have some concerns that if you find it difficult to come up with a solution that you'll be able to maintain in the future. You know I've got 19 years in this business."
Genesis let Howard's statements hang in the air, and said, "Okay, I was hired because I'm a Python and Django expert, but this code is a bit rough and it's my first week. I'm pretty sure I can support this and get up to speed, but I think for now we'll defer to Howard's expertise."
The rest of the week followed that pattern. Alexa would raise a concern. Genesis would offer at least a first-draft solution, Howard would explain why that couldn't be done and offer no solutions of his own. At least, that's what happened when Howard was paying attention in the meetings, which wasn't often- Alexa frequently needed to repeat her questions to him.
Saturday morning, Genesis realized she'd left her headphones in the office. On her way out to enjoy the weekend, Alexa swung past the office. Walking in, she was hit by a wall of cigarette smoke. Alexa was behind Howard's desk, her laptop out, typing away. Caught misbehaving, Alexa coughed out, "What are you doing here?"
"I forgot my headphones," Genesis said. "What about you?"
"Ah, yes. Like I said in the meeting, I manually change the pricing. So I come here and enjoy a cigarette for special occasions."
Genesis sighed and walked to her desk. ForeverNap released their new uploads at a 40% discount for the first week. It was trivial to add a simple conditional that automatically updated the prices for that customer only. Genesis ran some quick tests on her local build, pushed it through CI, and then released it.
The load on their service was never terribly high, so the chances of hurting response times was low, but Genesis had also set up enough alerting that, if this blew up later, she could just revert the change from home. For now, though, it made sure that all of ForeverNap's uploads would come in at the new pricing.
"You can go home now," Genesis told Alexa. "We should probably talk more about how we want this feature to work in the long run, but you at least don't have to come here at 6AM anymore."
"Oh, great," Alexa said. "No more special occasions." She looked at her cigarette wistfully.
[Advertisement] Utilize BuildMaster to release your software with confidence, at the pace your business demands. Download today!