Programmers: Stop Undervaluing Your Time!
--
It boggles my mind that developers would participate in a “hackathon” to build free integrations for a private, proprietary platform, but I guess that is what they are doing.
Let’s calculate the actual price of what you’d be doing.
Assuming a pretty standard, low rate as a contractor of $75/hr, if you spend two full 8 hour days, your time for the weekend is worth about $1,200. If you’re on a team of 4, you win $1,250. Makes sense!
But you probably won’t win. You’re competing against maybe, 10 teams. So the expected value of your cash prize is (1 / 10) * $1,250 = $125.
Your weekend is worth more than $125.
Wait, you don’t believe in the company?
I see this as an instance of a disturbing trend of programmers undervaluing their time, especially in this climate of, in the US, 3.6% unemployment. There are too many jobs, and too few programmers.
All the while, tech companies are posting profits that are absolutely bananas.
- $19.9 billion for Apple in Q1 2019
- $16.9 billion for Facebook in Q4 2018
- $9.4 billion in profit for Google Q1 2018.
But the “market rate” of a software developer is still about $100k-$150k per year. F the market. Let’s start charging more.
I’ve heard stories of startup CEOs that intentionally pay their programmers below market rate, just to make sure they “believe” in the company. This usually comes in the form of a “low ball” after initial negotiations of a higher payment. Counterintuitively, this will actually increase your zealousness for a company! Robert Cialdini and his research team back up this “consistency principle,” in Influence: The Psychology of Persuasion with multiple studies. People need to feel consistent with prior actions. Once someone is already working for a company, it’s not a far step to ask for a slightly lower rate. And if they actually work at the lower rate, they may even end up becoming a die-hard fan of the company. It must be great because I’m already doing it, right?
Car salesmen pull this trick a lot, too. They give you an offer that seems too good to be true, which you gladly take advantage of. Then, oops, there’s an error, and we seem to have offered you something $2,000 lower than what is listed here on the paper. So sorry. It’s already the “market rate” for a car, and since you’re here, and every other car on the market is being sold for this price, why don’t you sign? (This unfortunately happened to me; uncanny when it was described in the book.)
By the way this “market rate” BS is called “normative” leverage. It’s a logical fallacy, “Appeal to Normality.” You need to use two other forms of leverage, negative — what you can take away from the company — and positive — what can you add to the company. You can get both, and if you’re currently being lowballed, you probably have both.
Before we talk about sales though, let’s talk about marketing.
Marketing for Programmers
Programmers seem to have an odd distaste for marketing. They seem to think it’s trickery, or using behavioral economics to make a few more sales.
No, marketing is simply identifying who you are selling to (your market), what they care about, and matching your product (your programming time) to that.
Once you’ve got — and expressed! — this glorious “product-market” fit, you can do what’s called “value pricing,” or pricing based on the amount of value that the customer is getting. If the customer, say, Apple, will make $1 million extra this year as a result of you working there, you can split the value difference and charge $500k. You can do some simple Googling and math to determine how much profit each company is making for each employee it has — in other words, how much more value each employee is bringing, on average, to the company. Spoiler: it’s generally in the millions. And you’re doing a free hackathon this weekend.
So let’s dig in. Generally, you do not want to segment your market based on demographic groups (age, gender, income, etc), but psychographic groups: what they care about. For a programmer, this might look something like this:
- Companies that need development speed (most software-only startups)
- Companies that need engineering that won’t fail (fintech or military)
- Companies that need proprietary technology and defensible patents (legitimate AI companies, Apple, Oculus)
- Companies that need quality (very few of these, but, Blizzard, Apple)
There are probably more, but these work.
Next, there are four primary categories of value:
- Functional: what are the actual functional benefits of your work? (Speed, quality, patents)
- Monetary: how much money can we help a company make or save?
- Psychological: can we give peace-of-mind or some ego-boost to companies?
- Social: can companies brag about having us work for them?
Marketers generally talk about “moving up” the value chain. You start by defining and expressing your functional value, then your monetary value, etc. For example, Apple started marketing their computers as easier to use than any other computer, and eventually ended up at the “I’m a Mac/I’m a PC” campaign (full social value!).
That’s really it for the foundation. This is the basic “syntax” for marketing. Beyond that, there are specifics for crafting specific content for your market, but most of that naturally follows. Maybe you write a Medium article targeted at startups: “How to Architect Your Software For 3 Pivots in 3 Months” that hammers that, hey, I’m Tucker, and I’m an expert at speed. Maybe you take the psychological route, “How to Make the Most of Your Runway.”
In the end though, it all follows from: who are you selling to, and what do they care about.
Sales for Programmers
Now for the brass tacks. I’m by no means an expert in marketing or sales, but I think I can relay enough information to arm you so you’re not completely defenseless.
This is an area where, doing the right, moral thing works out in the end (as it pretty much always does, if you do it carefully). There is only one rule, and you must never break it:
One of the greatest disservices you can do to yourself is to walk away feeling like you got taken. Your aim should not be to merely get a job or contract. It should be for you (and the other party!) to walk away with self respect. You should both feel like you just made a good deal. There is no shortage of money. You are worth it.
Obviously, this needs to be counterbalanced with: do things that build your self respect. If you’re going to be a hard negotiator, you need to be an excellent programmer. You should have read Code Complete, Structure and Interpretation of Computer Programs, Pragmatic Programmer, Gang of Four, Martin Fowler. You should read the actual documentation of Node.js and Postgres (if that’s your stack). You should have played with Rust or Go. You should know your roadmap really well, and score well on the programmer competency matrix. You should have a lot of friends (like me, on LinkedIn) whose networks you can bring to the table. You should be trustworthy and not steal hours from the people you work with, or steal intellectual property like software cracks on the pirate bay. You should be a good, solid person.
There is no time limit to negotiations. Slow things down. State your price and then talk. It’s comfortable. It’s fine. Nothing bad is going to happen. You bring a lot.
It matters if you truly want what is best for the people you’re doing (or may not do) business with. It is smart to occasionally do a little bit of free work, but only if it’s not expected or asked for, and usually only if the person is new and hasn’t worked with you before. This is a gift, and the person know it’s a gift. The book Influence goes into gift-giving more, but it’s not a weapon. It’s an actual gift because you want the people you do business with to succeed.
Now is when you bring out all the marketing thinking and work you’ve done. You can hammer the functional, monetary, psychological, or even social (if you’re at that level) benefits of having you as an employee or business partner.
And if someone tries to lowball you, plainly state what they are doing, and that the rate is the rate. Do not budge.
Crafting a “power statement,” from New Sales. Simplified, can also be useful for structuring your conversations. This is slightly-longer, structured alternative to an elevator pitch. This is broken down into:
- Intro: 1 sentence stating who you are (X programmer with Y years of experience)
- Customer problems: A list of problems your customer (the company) is facing
- The offering: What you offer as a programmer
- Differentiators: A list of reasons you are different from other programmers
Here is mine for reference:
Hi, I’m a startup CTO with 17 years of software experience. I currently lead a small, “special-ops” team of American developers in solving hard technical problems, quickly.
Companies seek us out when:
- They want to build something innovative, but aren’t sure what is overly idealistic hype and what is actually practical, and don’t want to get caught in “development hell.”
- Their tech projects fall apart, with software riddled with bugs, and developers suddenly “unavailable” because of personal issues.
- Deadlines are always retreating forever into the horizon, with no actual end in sight.
- They are unsure if their developers are being honest, and are confused by an onslaught of technical jargon.
- They are unable to assess whether a developer actually knows what they are talking about.
What we offer is good engineering, using the latest — and best — technologies, with guarantees on deadlines and quality.
We’re different because:
- We’ve used all the latest technologies, and can separate hype from what is actually practical.
- We give guarantees on deadlines and cost.
- We actually test our work before delivering it.
- We always seek to do what is right, even it is when uncomfortable.
- I put my name on my work and stand by it. I give all my clients my personal cell number, and aim to build life-long relationships.
- We can speak at a high, general level, or down to the actual math behind the algorithms and techniques we use. We have read the books and the research papers
Let me know if you’d like to set up a quick call to discuss any new projects.
Feel free to craft your own, based on the psychographic segment you target and the marketing thinking you’ve already done.
Further Reading
These have been the most helpful books for me, as a programmer, in learning to not undervalue my work: