Some people really benefit from hearing advice that everyone knows, for the same reason we keep schools open despite every subject in them having been taught before.

In that spirit, here's some quick Things Many People Find Too Obvious To Have Told You Already.

Your idea is not valuable, at all. All value is in the execution. You think you are an exception; you are not. You should not insist on an NDA to talk about it; nobody serious will engage in contract review over an idea, and this will mark you as clueless.
Technologists tend to severely underestimate the difficulty and expense of creating software, especially at companies which do not have fully staffed industry leading engineering teams ("because software is so easy there, amirite guys?")

Charge more. Charge more still. Go on.
The press is a lossy and biased compression of events in the actual world, and is singularly consumed with its own rituals, status games, and incentives. The news necessarily fails to capture almost everything which happened yesterday. What it says is important usually isn't.
Companies find it incredibly hard to reliably staff positions with hard-working generalists who operate autonomously and have high risk tolerances. This is not the modal employee, including at places which are justifiably proud of the skill/diligence/etc of their employees.
The hardest problem in B2C is distribution. The hardest problem in B2B is sales. AppAmaGooBookSoft are AppAmaGooBookSoft primarily because they have mortal locks on distribution.
Everyone in Silicon Valley uses equity, and not debt, to fuel their growth because debt is not available in sufficient quantities to poorly capitalized companies without a strong history of adequate cash flows to service debt.
Investors in venture-back companies are purchasing a product. It is critically important to understand that that product is growth. The reason tech is favored as an asset class that it appears to be one of few sources of growth available on the market at the moment at any price.
The explosive growth of the tech sector keeps average age down and depresses average wages. Compared to industries which existed in materially the same form in 1970, we have a stupidly compressed experience spectrum: 5+ years rounds to "senior." This is not a joke.
The tech industry is fundamentally unserious about how it recruits, hires, and retains candidates. About which I have a lot more to say than could fit in a tweet, but, a good thing to know.
If you are attempting to hire for an engineering position, greater than 50% of people who apply for the job and whose resume you select as "facially plausible" will be entirely unable to program, at all. The search term for learning more about this is FizzBuzz.
Software companies in B2B which aspire to growing quickly will eventually spend more on sales and marketing than they do on engineering. You can read S-1s of successful IPOs and calculate the ratio; it is sometimes 2X++.
The chief products of the tech industry are (in B2C) developing new habits among consumers and (in B2B) taking a business process which exists in many places and markedly decreasing the total cost of people required to implement it.
There is no hidden reserve of smart people who know what they're doing, anywhere. Not in government, not in science, not in tech, not at AppAmaGooBookSoft, nowhere. The world exists in the same glorious imperfection that it presents with.
Significant advances shipped by the tech industry in the last 20 years include putting the majority of human knowledge in the hands of 40%++ of the world's population, available on-demand, for "coffee money" not "university money."
Weak-form efficients market hypothesis is a good heuristic for evaluating the public markets but a really, really bad heuristic for evaluating either technical or economic facts about tech companies, startups, your career, etc etc. Optimizations are possible; fruit hangs low.
Startups are (by necessity) filled with generalists; big companies are filled with specialists. People underestimate how effective a generalist can be at things which are done by specialists. People underestimate how deep specialties can run. These are simultaneously true.
Most open source software is written by programmers who are full-time employed by companies which directly consume the software, at the explicit or implicit blessing of their employers. It is not charity work, any more than they charitably file taxes.
The amount of money flowing through capitalism would astound you. The number and variety of firms participating in the economy would astound you.

We don't see most of it every day for the same reason abstractions protect us from having to care about metallurgy while programming.
CS programs have, in the main, not decided that the primary path to becoming a programmer should involve doing material actual programming. There are some exceptions: Waterloo, for example. This is the point where I joke "That's an exhaustive list" but not sure that a joke.
Technical literacy in the broader population can be approximated with the Thanksgiving test: what sort of questions do you get at Thanksgiving? That's the ambient level of literacy.

Serious people in positions of power eat Thanksgiving dinners, too. Guess what they ask at them.
Salaries in the tech industry are up *a lot* in the last few years, caused by: a tight labor market, collapse of a cartel organized against the interests of workers, increasing returns to scale at AppAmaGooBookSoft, and the like.

Investor money *does not* pay most salaries.
This concludes, for the moment, an off-the-cuff list of things which would otherwise be too obvious to bring up in conversation.

Meta thought: you radically underestimate both a) how much you know that other people do not and b) the instrumental benefits to you of publishing it.

More from Patrick McKenzie

I like this heuristic, and have a few which are similar in intent to it:


Hiring efficiency:

How long does it take, measured from initial expression of interest through offer of employment signed, for a typical candidate cold inbounding to the company?

What is the *theoretical minimum* for *any* candidate?

How long does it take, as a developer newly hired at the company:

* To get a fully credentialed machine issued to you
* To get a fully functional development environment on that machine which could push code to production immediately
* To solo ship one material quanta of work

How long does it take, from first idea floated to "It's on the Internet", to create a piece of marketing collateral.

(For bonus points: break down by ambitiousness / form factor.)

How many people have to say yes to do something which is clearly worth doing which costs $5,000 / $15,000 / $250,000 and has never been done before.
So the cryptocurrency industry has basically two products, one which is relatively benign and doesn't have product market fit, and one which is malignant and does. The industry has a weird superposition of understanding this fact and (strategically?) not understanding it.


The benign product is sovereign programmable money, which is historically a niche interest of folks with a relatively clustered set of beliefs about the state, the literary merit of Snow Crash, and the utility of gold to the modern economy.

This product has narrow appeal and, accordingly, is worth about as much as everything else on a 486 sitting in someone's basement is worth.

The other product is investment scams, which have approximately the best product market fit of anything produced by humans. In no age, in no country, in no city, at no level of sophistication do people consistently say "Actually I would prefer not to get money for nothing."

This product needs the exchanges like they need oxygen, because the value of it is directly tied to having payment rails to move real currency into the ecosystem and some jurisdictional and regulatory legerdemain to stay one step ahead of the banhammer.
There are a *lot* of software shops in the world that would far rather have one more technical dependency than they'd like to pay for one of their 20 engineers to become the company's SPOF expert on the joys of e.g. HTTP file uploads, CSV parsing bugs, PDF generation, etc.


Every year at MicroConf I get surprised-not-surprised by the number of people I meet who are running "Does one thing reasonably well, ranks well for it, pulls down a full-time dev salary" out of a fun side project which obviates a frequent 1~5 engineer-day sprint horizontally.

"Who is the prototypical client here?"

A consulting shop delivering a $X00k engagement for an internal system, a SaaS company doing something custom for a large client or internally facing or deeply non-core to their business, etc.

(I feel like many of these businesses are good answers to the "how would you monetize OSS to make it sustainable?" fashion, since they often wrap a core OSS offering in the assorted infrastructure which makes it easily consumable.)

"But don't the customers get subscription fatigue?"

I think subscription fatigue is far more reported by people who are embarrassed to charge money for software than it is experienced by for-profit businesses, who don't seem to have gotten pay-biweekly-for-services fatigue.

More from Tech

A brief analysis and comparison of the CSS for Twitter's PWA vs Twitter's legacy desktop website. The difference is dramatic and I'll touch on some reasons why.

Legacy site *downloads* ~630 KB CSS per theme and writing direction.

6,769 rules
9,252 selectors
16.7k declarations
3,370 unique declarations
44 media queries
36 unique colors
50 unique background colors
46 unique font sizes
39 unique z-indices

https://t.co/qyl4Bt1i5x


PWA *incrementally generates* ~30 KB CSS that handles all themes and writing directions.

735 rules
740 selectors
757 declarations
730 unique declarations
0 media queries
11 unique colors
32 unique background colors
15 unique font sizes
7 unique z-indices

https://t.co/w7oNG5KUkJ


The legacy site's CSS is what happens when hundreds of people directly write CSS over many years. Specificity wars, redundancy, a house of cards that can't be fixed. The result is extremely inefficient and error-prone styling that punishes users and developers.

The PWA's CSS is generated on-demand by a JS framework that manages styles and outputs "atomic CSS". The framework can enforce strict constraints and perform optimisations, which is why the CSS is so much smaller and safer. Style conflicts and unbounded CSS growth are avoided.
A common misunderstanding about Agile and “Big Design Up Front”:

There’s nothing in the Agile Manifesto or Principles that states you should never have any idea what you’re trying to build.

You’re allowed to think about a desired outcome from the beginning.

It’s not Big Design Up Front if you do in-depth research to understand the user’s problem.

It’s not BDUF if you spend detailed time learning who needs this thing and why they need it.

It’s not BDUF if you help every team member know what success looks like.

Agile is about reducing risk.

It’s not Agile if you increase risk by starting your sprints with complete ignorance.

It’s not Agile if you don’t research.

Don’t make the mistake of shutting down critical understanding by labeling it Bg Design Up Front.

It would be a mistake to assume this research should only be done by designers and researchers.

Product management and developers also need to be out with the team, conducting the research.

Shared Understanding is the key objective


Big Design Up Front is a thing to avoid.

Defining all the functionality before coding is BDUF.

Drawing every screen and every pixel is BDUF.

Promising functionality (or delivery dates) to customers before development starts is BDUF.

These things shouldn’t happen in Agile.

You May Also Like