The way to create something beautiful is often to make subtle tweaks to something that already exists, or to combine existing ideas in a slightly new way.
There are only two things you have to know about business: build something users love, and make more than you spend. If you get these two right, you’ll be ahead of most startups. You can figure out the rest as you go.
As for building something users love, here are some general tips. Start by making something clean and simple that you would want to use yourself. Get a version 1.0 out fast, then continue to improve the software, listening closely to users as you do. The customer is always right, but different customers are right about different things; the least sophisticated users show you what you need to simplify and clarify, and the most sophisticated tell you what features you need to add.
“A painting is never finished. You just stop working on it.”
Programs should be written for people to read, and only incidentally for machines to execute.
Plans are just another word for ideas on the shelf. When we thought of good ideas, we implemented them.
Everyone encourages you to grow up to the point where you can discount your own bad moods. Few encourage you to continue to the point where you can discount society’s bad moods.
Why does everyone talk about making money? It is a kind of shorthand: money is a way of moving wealth, and in practice they are usually interchangeable. But they are not the same thing, and unless you plan to get rich by counterfeiting, talking about making money can make it harder to understand how to make money.
Nerds were being trained to get the right answers, the popular kids were being trained to please.
Hackers need to understand the theory of computation about as much as painters need to understand paint chemistry.
When I was a kid I was constantly being told to look at things from someone else’s point of view. What this always meant in practice was to do what someone else wanted, instead of what I wanted. This of course gave empathy a bad name, and I made a point of not cultivating it. Boy, was I wrong. It turns out that looking at things from other people’s point of view is practically the secret of success. Empathy doesn’t necessarily mean being self-sacrificing. Far from it. Understanding how someone else sees things doesn’t imply that you’ll act in his interest; in some situations — in war, for example — you want to do exactly the opposite
When we interviewed programmers, the main thing we cared about was what kind of software they wrote in their spare time. You can’t do anything really well unless you love it, and if you love to hack you’ll inevitably be working on projects of your own.
When a piece of code is being hacked by three or four different people, no one of whom really owns it, it will end up being like a common-room. It will tend to feel bleak and abandoned, and accumulate cruft. The right way to collaborate, I think, is to divide projects into sharply defined modules, each with a definite owner, and with interfaces between them that are as carefully designed.
One way to tell how good people are at empathy is to watch them explain a technical matter to someone without a technical background.
In one culture X is ok, and in another it’s considered shocking. My hypothesis is that the side that’s shocked is most likely to be the mistaken one. I suspect the only taboos that are more than taboos are the ones that are universal, or nearly so. Murder for example. But any idea that’s considered harmless in a significant percentage of times and places, and yet is taboo in ours, is a good candidate for something we’re mistaken about.
To do good work you need a brain that can go anywhere. And you especially need a brain that’s in the habit of going where it’s not supposed to. Great work tends to grow out of ideas that others have overlooked, and no idea is so overlooked as one that’s unthinkable.
When you find something you can’t say, what do you do with it? My advice is, don’t say it. Being labelled as a yellowist will just be a distraction. Argue with idiots, and you become an idiot. The most important thing is to be able to think what you want, not to say what you want. And if you feel you have to say everything you think, it may inhibit you from thinking improper thoughts. I think it’s better to follow the opposite policy. Draw a sharp line between your thoughts and your speech. Inside your head, anything is allowed. Within my head I make a point of encouraging the most outrageous thoughts I can imagine.
A company that could pay all its employees so straightforwardly would be enormously successful. Many employees would work harder if they could get paid for it. More importantly, such a company would attract people who wanted to work especially hard. It would crush its competitors. Unfortunately, companies can’t pay everyone like salesmen. Salesmen work alone. Most employees’ work is tangled together.
It was not till the Industrial Revolution that wealth creation definitively replaced corruption as the best way to get rich. In England, at least, corruption only became unfashionable (and in fact only started to be called “corruption”) when there started to be other, faster ways to get rich.
If function is hard enough, form is forced to follow it, because there is no effort to spare for error. Wild animals are beautiful because they have hard lives.
Working to implement one idea gives you more ideas. So shelving an idea costs you not only that delay in implementing it, but also all the ideas that implementing it would have led to.
Building something by gradually refining a prototype is good for morale because it keeps you engaged. In software, my rule is: always have working code.