The Hidden Costs of Things (Total Cost of Ownership)

Determining the total cost of any thing isn’t something that we, as human beings, are automatically good at being able to figure out.

At RailsConf 2012, Rich Hickey is recorded saying that:

Programmers know the benefits of everything and the tradeoffs of nothing.

This is a reconstruction of the Oscar Wilde quote but as applied to programmers.

Lord Darlington. What cynics you fellows are!
Cecil Graham: What’s a cynic?
Lord Darlington: A cynic is a man who knows the price of everything and the value of nothing.
Cecil Graham: And a sentimentalist, my dear Darlington, is a man who sees an absurd value in everything and doesn’t know the market price of any single thing.
Lord Darlington. You always amuse me, Cecil. You talk as if you were a man of experience.

  • Oscar Wilde, Lady Windermere’s Fan

As programmers, we do get excited by technology and conventions and ways of doing things. And we are really bad at considering the total cost of the things we put into practice.

Hickey’s talk is about simplicity and complexity... not prices and total cost. He describes complexity as things being interwoven and simplicity as things being independent of one another.

We are staring at some universal truths here: Total cost is harder to determine when things are interwoven.

What follows is a collection of vignettes (or drive-by-shootings if you prefer) on examples of hidden costs I notice when I look around at my life.

Credit Cards and Cash

Total Cost of Ownership is behind my reduced use of credit cards.

The 2-3% transaction fees are really hard to perceive. They are built into the prices of everything these days. Because it is built into the price, people who pay cash end up paying toward those expenses even when they use cash (exceptions go to those places that post a different price for cash transactions).

Part of the cost is also in habit-formation. Rewards programs want you to swipe as often as possible. And rarely do we stop and ask questions like these:

  • Do I spend more carelessly with a credit card?
  • Am I less able to notice how quickly the total grows?
  • Is it easier to notice how quickly my wallet shrinks if I use cash instead?

And, finally, for those of us who use credit cards to borrow money. OH. MY. GOSH. Paying the finance charge each month is loss of money for no reason and if you don’t pay enough to reduce the principal balance, your debt will grow and compound.

Here is an attitude to internalize: You don’t have to borrow money from credit card companies. EVER. If you’re carrying a balance month-over-month, you can be certain that your life would be improved if you cut up your credit card and pay down the balance as quickly as possible.

Cash is simple. It is crude. And it will help you to manage your money better. And it will never become a compound debt.

Vehicles: High Price, Tendency to Rot, Maintenance Cost, Societal Cost

Vehicles rot when they sit there. They bake in the sun. The batteries die. Water separates from the gasoline and the tank may rust out. Tires may become warped from sitting too long.

The cost of a car (or motorcycle), especially any vehicle beyond a single car, is that you must operate it from time to time.

The total cost also includes paying insurance premiums, property tax, registration fees, and the costs to keep inspections current.

Depreciation is a cost we know well but spend a lot of time trying not to think about. It only matters when you try to sell the car so people who drive a vehicle until it is not maintainable have an advantage.

The cost to maintain roads and parking lots and to police the streets is a huge hidden cost that we don’t think about very often because it is something that is “provided” by the government. There are economic costs and ecological impact that are difficult to fully comprehend.

The Free Internet’s Costs: Time, Privacy, and Fraud Risk

Facebook.

Oh, Facebook. We spend so much time on you. We feed you. And you give us less and less and less.

We pay nothing for Facebook. So it seems like it’s free. But it takes enormous amounts of time and entails large-scale habit formation.

Like Google, they have gotten into the business of selling our attention in a very targeted way with an understanding of our likes and interest. Free isn’t free. It never was and never shall be. It’s either paid for by you or paid for by someone else. There are NO exceptions.

Google and Facebook are paid for by advertisers. Wikipedia is paid for by donations. Advertisers seek to modify your behavior for their profit. Which of these will do less harm to your long-term interests?

The question is whether you want to accept the trade when you consider the total cost.

Some free services from Google have also been phased out. You may spend a lot of time to adopt a free service only to find out that the service provider is not going to provide the service any longer. Free isn’t free. It never was and never shall be.

Mint.com offers you deeper insights into your finances. The price is "free" but they use your financial information to sell you financial products. It also requires a login to all of your online financial account so that they can acquire your monthly statements. Part of the total cost is your increased exposure to risk of having your accounts compromised by others.

Applying This Broad Mind to Everything

Getting yourself into a practice of seeing what is not easy to see is a hard trick. Not only are there hidden costs to things, there are hidden benefits.

Things That Have Hidden Layers of Cost

Really, just about anything we can look at has a hidden cost to it.

  • Any kind of financing
  • Gmail / Facebook / Blogs
  • War
  • Chinese Manufacturing
  • Anything You Can Buy
  • A Desk Job
  • Eating Out
  • Exercise or Sedentary Lifestyle
  • Torrenting Copyrighted Materials

Types of Cost

  • Price / Maintenance / Depreciation
  • Habit formation (especially habits that don’t serve you)
  • Time / Opportunity Cost
  • Money
  • Space (in your house)
  • Presence
  • Connection
  • Awareness
  • Capability
  • Rot/Deterioriation
  • Optionality
  • Underpaid and Discouraged Artists

Types of Benefit

  • Money
  • Automation
  • Skill Development
  • Discipline / Practice
  • Convenience
  • Consistency / Uniformity / Standardization
  • Insights and Analytics (think Mint.com)
  • Novelty / Shiny New Things
  • Opportunity to Connect/Reflect

A Job Hopping Pattern: Seeing Opportunity in Drudgery and Paying Attention

There are reasons to feel disillusioned with the idea of tech companies and tech startups. Unicorn status is the primary goal these days and some put their valuation ahead of every other consideration: culture, impact, sustainability, responsibility.

If I look back on my career, the companies I have worked for were all tech startups that had grown into more mature companies. They have provided me with a really comfortable living. Since college, I haven't had to wonder how I'd make my bills on any given month.

I started on desktop work in college and when I finished college that's what I was doing. It is work with a lot of drudgery. Dull work.

You might ask why anyone would take on a job that involves drudgery but that's a key feature of most of the jobs available to a person just starting out, and it's a common characteristic of every job you can get at any level.

There is a duality that ensures that any job you get involves drudgery: Without the impetus of pain sufficient to drive an employer to hire in order to offload that pain, the job would not exist at all. On the other hand, if the job were just something that needs doing and is easy, you'd have a lot of competition for the job and it would pay very little. The sweet spot is always drudgery that isn't easy.

Now I'm going to say something profoundly important: In business, the opportunity is found in the drudgery provided that you perform the work with the best attitude you can muster AND you pay attention.

Paying Attention

There are two things which deserve your particular attention in any job:

  1. How can you improve the way things are done? Can you design a system that will make any of your tasks take less labor? Can you reduce errors or improve consistency? Can you template any interactions? This is the application of systems thinking to your job.
  2. As you do your job, what other functions do you interact with at the edge of your work? Are any of them something you have been curious to learn more about? Are any of them a truer fit to your personality and interests? If so, it is possible that these edges present possible next opportunities for you to grow into.

I look at the balance of my work life since 1998 and I've generally been able to niche into the most interesting work at some edge within the space I was working. As I said, I had started out doing desktop support. And I was immediately frustrated with the complete lack transparency on the internals of Microsoft Windows. They don't give you much diagnostic info with which to troubleshoot. It was not supportable. So far as I could tell there are two reliable operations implemented by Windows: format disk and install software. (It is not surprising to me that Linux has a larger market share on the server side of things.)

At the edge of working in Desktop support was software development and network engineering. I made sure to chat up the network engineer when we did the transition to Ethernet at my desktop job. This was likely what I was going to aim for and what I spent spare time studying.

But it was really specialized. And it would take a lot of years to get there. Working at an ISP would do. And... thanks to a college connection, I was hired a Sales Engineer at an Internet Service Provider out of college. UUNET. Back in 1998, this felt like the promised land of unlimited opportunity.

What they never tell you in college is that getting the job is the beginning of the story and the struggle. And boy did I struggle. I struggled with the bureaucratic jargon of telecoms. CFA/LOA. Demarc. Routers. BGP. There was a lot that I didn't understand and couldn't quite visualize. I had the job but I wasn't the strongest performer on my team. Eventually, when the opportunity came up, I transitioned into Sales Eng group for colocation and web hosting.

I didn't start thriving as a Sales Engineer until I was selling technology for which I had a crystal clear model of the system in my head. Web hosting is pretty-much just computers and software systems connected by Ethernet. It made much more sense to me and was a much better fit for my skills and interests.

In spite of the obviously better fit, I put in a lot of effort to develop key skills so that I could be successful at this job. I did this primarily by taking full advantage of the smart people around me who knew much more than I did and were willing to share what they knew. With their coaching, I taught myself the basics of Solaris administration by formatting my SPARC desktop and learned a bunch: How to download GNU packages and compile and install them. I learned grep and awk. These are things most people learned in college but I hadn't. Better late than never.

When I noticed a pattern of repetitive work, I turned my efforts to reducing labor and turnaround times. One example of this as a Web SE was customizing Visio templates to make diagram creation for custom web hosting quicker to produce and more consistent. There were really only a half-dozen variants. Create those and pretty them up once. Thereafter you're pretty much just adding the customer name to it.

I also implemented a crude PERL/CGI application for tracking interest in feature requests to provide feedback to product management. It was good times. But every job has it's downsides. The rub on being a Sales Engineer is that the more aggressive sales people will drop everything to get before some customers and I'd have to get on a plane or train with little notice. After that happened about twice, I decided it was time to get back to fundamentals: less sales, more engineering.

I approached the manager in charge of the network design team for hosting and colo to see if I could work on his team. He knew I didn't have a perfectly filled out background but he gave me the chance anyway.

As it turns out, this is an ideal hiring situation for the manager as well. As a manager, you generally want to hire someone you have already worked with because you have some idea of the kind of work they are capable of delivering. Having a rich connection with direct co-workers means that you can get honest and frank opinions on a person's character and willingness to invest and learn. It's pretty low risk compared to hiring an unknown from outside.

The Opportunity of Drudgery

Nearly all of my job transitions have been new niches at the edge of my previous jobs. In all of my jobs, I did not do well at them until I developed enough new skills that I was able to implement new systems to deal with the dull work.

I am beginning to suspect that there is something universal in this that can applied to developing a business as well. I have seen at least one school that teaches an entrepreneurial pattern that involves talking to business owners, coming to understand their problems, developing a wireframe/prototype, and enrolling the customer to pay for it as you develop it.

Here's what I notice: the methodology I just described takes full advantage of the type of work ethic I described above in the Paying Attention section. Only, instead of systematizing your own work, you start by getting in touch with people and probing them to describe the kinds of dull work or pain points they have so that you can systematize their problems into a software solution.

This is interesting for me to consider. It's something I could visualize for myself (and I imagine this is true for a lot of the people I know). I can imagine what gaps I would need to fill in my skillset to make it happen. Getting in front of potential clients isn't something into which many Engineer/Technician types have invested sufficient time.

I love this aspect of being able to visualize a potential future: Things which seem impossibly far, only have the chance to transition to possibly far when you start to map the way there.

I also love that you can do a lot of good by focusing on dull work. It's easy to want a job that is comfortable. And it's easy (or at least, common) to do that job without trying to improve the way that it's done. What's less easy and more rewarding is to develop new ways to get the job done that reduce labor, that improve delivery time, or consistency, or with fewer errors.

Once again: In business, the opportunity is found in the drudgery provided that you perform the work with the best attitude you can muster AND you pay attention.

Inspiration

I think I could love the idea of a small software company that wasn't trying to become a Unicorn. It would solve a specific kind problem for a number of clients and would be able to function even if we didn't all work all the time.

This post was inspired when I read "Million Dollar Products" by Kyle Neath. It gives me a tiny bit of hope and bit of being able to imagine a future tech company that I start with friends so that we can do something meaningful.