Su Niannian spent a week researching competing products.
For domestic SaaS code review tools, she broke down the features, pricing, and payment models of all eleven products on the market. She compiled them into a Lark spreadsheet: four tabs, seventeen columns, thirty-two rows.
When she sent it to Han Luyi, she added: "Look it over first. No rush."
Han Luyi replied at eleven that night: "Looked."
"Let's charge 999 for the Pro version. Just add a few features. Keep it cheap and make up for it in volume."
Su Niannian stared at the screen.
Seventeen columns. Thirty-two rows.
The first thing she had learned after all these years as a product manager was that developers never knew how much their own products were worth. The second was that developers always thought "keep it cheap and make up for it in volume" counted as a pricing strategy.
She replied: "Let's talk in person tomorrow. Bring your laptop."
The next day, at a window seat in Bug Café.
Su Niannian opened the third tab of the spreadsheet: competitor feature comparison.
"Let's make one thing clear first. The difference between the free and paid versions isn't just having more or fewer features. They serve completely different users."
Han Luyi held his Americano and waited for her to continue.
"The free version is for individual developers. Scan for Bugs, generate reports—that's enough. One person writes code and fixes it themselves; they don't need anything else. This tier doesn't make money. We just need to get them hooked."
"The paid version is for teams. What do teams need? Three things."
She held up three fingers.
"First, impact assessment." She pointed at a column in the spreadsheet. BugKiller was the only product with data in it; the other ten were all blank. "Individual developers fix a Bug as soon as they see it. They don't need to know how much that Bug costs. But teams are different. The people making decisions on a team aren't the ones writing code—they're the ones approving budgets. Tell the CTO, 'There's a Bug,' and he'll say to put it in the next Sprint. Tell him, 'This Bug loses us six hundred thousand a month,' and he'll approve overtime today to get someone on it."
She looked at Han Luyi.
"Impact assessment isn't for programmers. It's for their bosses. The free version doesn't include it. If they want to know what a Bug is worth, they upgrade to Pro."
"Second, CI API integration."
"People are already asking about that," Han Luyi said.
"Four CTOs in the beta group have asked. Because individual developers can just run a scan manually, but teams want checks to trigger automatically with every code commit. If a PR doesn't pass BugKiller, it can't be merged. That's workflow-level integration."
She glanced at Han Luyi. "You know what it means once it's integrated into CI, right?"
"Migration costs."
"Exactly. Switching tools means reconfiguring the entire deployment pipeline. Anything that can embed itself into infrastructure isn't something you price at 999."
"Third, a team dashboard. Bug trend charts, fix rates, health metrics for each module, automatically generated weekly reports. It's not technically complicated, but it has the biggest impact on renewal rates, because it lets the boss see every week that BugKiller is saving them money. What he sees isn't a tool. It's ROI."
Han Luyi leaned back in his chair.
Su Niannian continued, "So, pricing. The individual version stays free. Team Pro: 2,999."
"How did you decide that?"
"For most companies, the technical lead can approve SaaS subscriptions under three thousand on their own. Anything over three thousand has to go through procurement and get a VP's signature. 2,999 is the highest price a team leader can approve on the spot."
Han Luyi looked at her for three seconds. "Fine."
Su Niannian closed her laptop. She wanted to say, "Those seventeen columns and thirty-two rows weren't for nothing," but held it in.
"Pro at 2,999. We'll launch the payment module next week."
Su Niannian sat at her desk at Beaver Technology. Two windows were open in front of her. On the left was a blank weekly operations report template. On the right was the BugKiller backend.
A payment callback notification popped up.
BugKiller Pro · Monthly Subscription · ¥2,999.00 · Payment Status: Successful · User: Pengcheng Cross-Border Da Technology Co., Ltd.
Her hands froze over the keyboard.
Her three years at Beaver. The first two had been good. In her first year, she had followed the old product director on an intelligent customer service system, taking it through the entire process from requirements research to phased rollout. In her second year, she had led a data dashboard project herself: a team of seven, launched in three months, DAU reaching twelve thousand. How to argue with developers, how to shut people down with data in review meetings, how to turn an idea into a product from scratch—she had learned all of that in those two years. On the day of her promotion review, the old director had written, "The fastest-growing PM on the team."
Then the old director had resigned. The new product director was named Fang Xu. He had jumped over from some second-tier major tech company, with an impressive résumé but no name recognition in product circles. In his first week on the job, he held a product strategy meeting. The title of his PPT read: "Beaver AI Product Matrix 3.0." Su Niannian sat in the second row and noticed that the vertical axis of the DAU trend chart on page seven did not start at zero, making the slope look three times steeper. She raised her hand and pointed it out. Fang Xu smiled and nodded. "Okay, thanks. Let's align on this after the meeting."
They never aligned on it.
In her third year, she made a forty-page PPT for her Q1 quarterly report. The data, feedback, planning—she had written every page herself. On the day of the presentation, Fang Xu said, "I'll present it. You can sit below and help answer questions." After all forty pages were presented, the VP said it was good. No one mentioned her name once. Last month, Beaver announced its internal innovation awards. She saw a colleague repost it on Moments. The data dashboard she had led won the silver award. The listed recipient was Fang Xu. She checked the announcement three times. The name "Su Niannian" was nowhere in it.
She stared at the 2,999 on the screen for a long time.
The spreadsheet she had just explained to Han Luyi—seventeen columns, thirty-two rows, eleven competing products fully broken down—hadn't fallen from the sky. It was a skill she had honed over three years of product work at Beaver. But Beaver no longer needed her.
She picked up her phone and called Han Luyi.
"Did you see it?!"
"I did."
"The first one! The first payment!!"
She could hear her own voice trembling. Embarrassing. She didn't care.
"Why are you crying over 2,999 yuan?"
"This is the first one! The first one! Do you understand?!" She sniffed. "I spent three years at Beaver, and in the end, I couldn't even leave my name on something I made. Someone is willing to pay for the product you wrote by yourself. Two thousand nine hundred ninety-nine yuan."
"Mm."
There was silence for two seconds. She thought he was about to hang up.
"2,999."
"...What?"
"The first revenue was 2,999. That was the price you set, not the 999 I suggested."
Su Niannian opened her mouth, then closed it again.
"I'm going back to watching the backend," she said.
The coworkers around her at Beaver glanced over. She placed her phone face down on the desk and stared blankly at the payment notification on the screen for a long time.
Over the next week.
On the third day, fourteen. On the fifth day, thirty-one. On the seventh day, forty-seven.
Su Niannian created a Lark document titled BugKiller Paid Data Weekly Report #1. Its first line read:
As of May 26: 47 paid users, monthly revenue ¥140,953. User retention rate: 82.4%.
She typed three exclamation marks after 82.4%, then deleted two of them. She left one.
Normal retention rates in the SaaS space were between 30% and 50%. Eighty-two percent meant users stayed once they started using it. If that number held steady, BugKiller wouldn't need to burn money on customer acquisition at all. Word of mouth would spread on its own.
She sent the document to Han Luyi. He replied with one word: "Mm."
Over at Beaver.
Someone in the product group asked, "Does anyone have the source file for the Q2 user growth data?" Su Niannian typed out a reply. She had made those spreadsheets—more than thirty from Q1 to Q2—and she had set all the sources, definitions, and formulas herself. Just as she was about to send it, someone else replied first: "I'll ask the new intern."
She deleted her message.
Another time was even more absurd. Someone forwarded Fang Xu's product roadmap in a public Lark channel. It included a user journey map. She recognized it at once: the color scheme was hers, the touchpoint labels were hers, and even the typo in the note for the third touchpoint hadn't been corrected. The caption beneath it read: Created by Fang Xu.
Her happiest moments at Beaver every day were when she secretly shrank her browser into a narrow slit to look at the BugKiller backend. One refresh, and the paid user count jumped by one. Another refresh, and it jumped again.
Her phone buzzed. A CTO in the beta group had sent a message: "Do you have an annual plan? It's more convenient for us to pay annually through procurement."
Her heart was over there, while her body was here, with an employment contract separating the two.
She turned her phone face down on the desk. The operations report in front of her was still blank.
The new quarter's OKRs had been set. There was only one line: "Assist with operations support-related work."
Before you continue
Explore the wiki