Friday, May 13, 2005

Bean Counter Economics

"We shouldn't be paying for cable modems for our employees - let them surf the web on their own nickel," said Bean Counter (hereafter know by the nickname "BC", which coincidentally happens to also describe the representative century of enlightened thinking exhibited by said individual).

The argument I proceeded to make for paying for this "perk" should have pleased even BC. But for some reason, it didn't. It went something like this.

"They more than pay for themselves," I said.

"No they don't. They generate zero revenue."

This is a fairly standard response from BC. There is "cost savings" and "revenue from sales". Investment is a foreign concept, invented by strange people in a strange land, and BC is deeply suspicious of it. He liked things he could count.

"While I could attempt to explain that the software a developer writes is the revenue generator here, let me try to show you how it also saves costs."

"This I gotta hear." BC always loved a good justification, particularly one that had been worked on for days. It made saying "no" that much more satisfying.

"How much do we pay a contract software developer?" I asked.

"Anywhere from $50-$120, depending on who the vendor is," he replied. These were costs. He knew them cold.

"How much do we pay for a cable modem for a software developer?"

"$41.50, on average."

"Okay," I say. "Let's say that John over there didn't have a cable modem. He puts in his time at the office, goes home, eats dinner, and has some free time. How does he spend it?"

"What do I care, as long as he isn't billing it to the company," said BC.

"But I do care. Because if he had a cable modem, he has the opportunity to spend some time on work. He might spend some time doing some extra work because he's falling behind, or has something due tomorrow."

"He could do that work here," BC countered.

"You think if he has a spare hour to spend on work, he's going to spend half of it driving here and back? Besides, coding is a creative exercise, and sometimes you need to be out of the cubicle chaos to get work done. Sometimes you get an idea late at night, and you want to code it up before you forget. Sometimes you're at home, waiting for the plumber to come fix your toilet, and want to get some work done because you know you're falling behind."

"So he can just put in a few more hours at the office. That's what I do." BC looked smug, like he owned the moral high ground over all these slackers that wanted to do their work at home, of all places, probably snacking on bags of chips and watching John Stewart in the background.

"And many of them do. But at some point, they go home. And when they're there, I want the barrier to be as low as possible to their doing just a wee bit more work should they choose to." I rushed on. "Think about it, BC. If they only used it once, not just once in the week but once in the month, we come out ahead."

"How do you figure?"

"We save the delta between the cost of a contractor to do that hour of work vs the cost of the cable modem, which by your own admission even at our cheapest rates has an ROI each and every month."

BC shook his head and looked like he felt really sorry for me. "It just doesn't work that way. We didn't save the delta, because we hadn't planned to spend the delta in the first place. And it's not even the same money - the cable modem expenses come out of facilities budget, while the contractor costs come out of your personnel budget. So you're not only not saving money from an expense you were never going to incur in the first place, but you're actually shifting the costs out of your department into the facilities overhead, thereby hiding the true cost of your organization." BC looked very superior now, having run rings around me, logically like.

"BC, trust me on this. Developers putting in extra hours for the company is a good thing. Extra hours mean extra features, which mean more competitive products, which mean more sales. Employees putting in extra hours means fewer contractor hours, which means cheaper hours." I paused. "Cable modems help promote this activity."

"That's all speculative and abstract. You can't tie revenue to it, the costs are real, and they don't displace some other existing cost. There is zero financial justification for them. So I'm recommending cutting them from the budget." BC started to walk off. "If the developers want to put in extra hours so bad, let them do it here in the office with everyone else."

I sat there, frustrated and stunned. Not just at his lack of understanding of how adverbs work, but because for once I thought I had a firm, economic argument for a development practice that could sway BC.

Most of the time, the economic justification for enlightened software development organization practices are even harder - try explaining how spending money on an IDE will pay off, or how spending money on a release party to let off steam, snacks for the office, pay scales above the median for the great programmer who you know is 10x as good as the "median"...

Or the biggest one today - why some software tasks just can't be performed as well in India. Not because Indians suck - they have a similar distribution of talent to the US, I think - but because outsourcing your family jewels is always a bad idea. And for a software company, developing new product is the family jewels.

People who make the decisions in software companies should have grown up in software companies. And in the really good software companies, they did.

Time to start another really good software company.


Post a Comment

Links to this post:

Create a Link

<< Home