Inventing on Principle

Videos ¡ Technology

Note: This was recommended to me by Jishnu Mohan

URL

https://youtu.be/PUv66718DII

Highlights

A lot of people talk about “following your passion”, or “doing something you love”. This talk is about following a principle — finding a guiding principle for your work, and using that to guide what you do

Bret’s principle: The principle of immediate connection

What sort of tools create an healthy environment for ideas to grow?

The Principle

💡 Principle: Creators need an immediate connection to what they’re creating

Implications

What this means — when you make a decision, you need to see the effect of that immediately. There can’t be a delay, and there can’t be anything hidden. Creators have to see what they’re doing.

Using this principle

Coding — there tends to be a lag between what you code, and what the output is

To resolve this, you can have the code editor and the output running and changing in real time. Node’s dev mode does this, for example. It’s a much richer experience than waiting for something to compile. That makes it so much easier for us to make changes as we go along, and allows us to be a lot more creative about the changes we make!

The image below is an example of this in action

Putting the code and the output side by side let’s creators be much more creative

Putting the code and the output side by side let’s creators be much more creative

When he was doing this, he realised that as he was changing certain values, he loved the transition that was happening on the screen. And had the idea “what if I could use this for an animation?”

This kind of insight could never have happened if he had to wait for the program to compile every time

Things like autocomplete, proactive rendering of new additions etc can really help with this!

Having an immediate connection allows ideas to surface and develop in ways that would be impossible before

If you can have a direct mapping between what the code is and what its output is, it allows you to have a very visceral sense of what kind of changes will allow you to be more creative!

In the image below, the code highlighted in yellow directly links with the area in red on the left

And this can work the other way too!

Impact

You can make these changes as quickly as you think of them — which is fantastic for building something. The computer is truly assisting you as you play around with it!

Being able to try ideas as you think of them is so important to the creative process. If there’s any delay in that feedback loop between thinking of something and seeing it, and building on it, then there’s this whole world of ideas which will just never be. These are thoughts that we can’t think.

Ideas are very important, and the thing about ideas is that ideas start small. They start out tiny and weak and fragile. In order to develop and mature, ideas need an environment where the creator can nurture them, feed them, and evaluate them. That’s what the principle of immediate connection is all about.

When this principle is violated. When ideas are stillborn or stunted because the creator can’t see what they’re doing, that’s wrong in a very deep sense.

💡 Creators need to be able to see what they’re doing. If they’re creating something, you need to be able to see across all relevant dimensions that impacts. Otherwise, they’re just designing blind

When the changes made are visual, it leads to a very visceral connection between the creator and the creation

The principle has nothing to do with programming in particular. It works with any kind of creation. Like data modeling in electrical engineering, or animation!

💡 There are important ideas that must be grown. And without an environment where they can grow, in which their creator can nurture them with an immediate connection — many of these ideas will not emerge or emerge stunted

“When I see a violation of this principle, I don’t see an opportunity. When I see creators constrained by their tools, their ideas compromised, I don’t say ‘Oh good! An opportunity to make a product, start a business, or do research into a particular field`. I’m not excited about finding a problem to solve, I’m not in this for the joy of making things. Ideas are very pressure to me and when I see ideas dying, it hurts. I see a tragedy. To me it feels like a moral wrong. It feels like an injustice. And if I think there’s anything I can do about it, it feels like it’s my responsibility to do so.”

It’s not opportunity but responsibility

The words used, “injustice”, “tragedy”, “moral wrong” — these are not the words normally used in a technical field. We do hear them in social causes, but not in most technical things.

Activist lifestyle — a person dedicates themselves to fighting for a cause. This lifestyle is not just for social activism. As a technologist, you can recognise the wrong in the world. You can have a vision for what a better world could be. You can dedicate yourself to fighting for a principle. Social activists typically fight by organising, but you can fight by inventing

Larry Tesler’s principle

Him and his team at Xerox PARC (in the 1970s) an intuition around how people thought and lived. But at the time, software interfaces were designed around modes. So in a text editor, you couldn’t just type on the screen like you would on a typewriter. You would be in command mode. If you wanted to insert text, you would have to press i to go into insert mode and then escape back out to command mode

(Basically vim)

He saw people use computers, and realised that they weren’t comfortable with it even after many months of use. He believed this was because the mode-centric view of UX was a barrier that many people couldn’t cross

This represented a threat to the dream of what personal computing could be

His principle: no person should be trapped in a mode

The slogan he went around saying was “don’t mode me in”. This principle was something he printed on his tshirt, and it informed everything that he did in his work.

Eventually, came up with a text editor called Gypsy, which introduced text editing as we know it today

To select text, he invented Moses selection where you could just click and drag over the text you wanted to select

After this, even people who had never seen a computer before could be up and running in 30 minutes. This was clearly a transformative change in enabling people to connect with computers

Larry made elimination of modes his personal mission. This is his license plate for the last 30 years!

He obviously solved a huge problem. But in a different way, the problem he solved only existed in his own head. Nobody else saw this as a problem. For everybody else, modes were just how computers worked. There wasn’t anything wrong with them

Larry recognised a wrong that had been unacknowledged in the culture. That’s how many changes begin (both social and technical)

Doug Engelbart’s Principle

He invested interactive computing — the concept of putting information on a screen, navigating through it, looking at information in different ways, pointing to things and manipulating them.

He did that at a time when real-time interaction with a computer was almost unheard of. Today, he is best known as the inventor of the mouse. But what he really invented was this entire new way of working with knowledge

His explicit goal from the beginning was to enable mankind to solve the world’s most urgent problems. His vision was that of something called Knowledge Workers – these complex, powerful information tools to harness our collective intelligence

He only got into computers because he had a hunch that these newfangled computer things could help him realise that vision. Everything that he did was almost single-mindedly driven by pursuing this vision

Alan Kay’s Vision

Invented the desktop interface (windows, icons, command menus). Also invented object-oriented programming, among loads of other things

His goal was to amplify human reach, and bring new ways of thinking to a faltering civilisation that desperately needed it

His approach was through children. Believed that if children became fluent in thinking in the medium of the computer (i.e., programming was a form of basic literacy like reading and writing — they would become adults with new forms of critical thoughts and new ways of understanding the world, and we would have a more enlightened society)

Everything he invented came out of this goal with children, and following principles that he adopted from PJ and Montessori and Jerome Bruner — people who had studied how children think

Richard Stallman’s Principle

Launched the GNU project which makes up a big chunk of any Linux system, started the free software foundation, wrote GCC, the GPL — and many many other things

His principle: software must be free as in freedom. Software freedoms are a matter of moral right and wrong, and he’s taken an uncompromising approach in his own life to that

Conclusion

All of these people dedicated their lives to fighting for a particular ideal with a very clear sense of right and wrong. Often really fighting against an authority or mainstream that didn’t recognise their wrongs as wrongs. Today, the world is still very far from many of their ideals. So they still see a world in crisis, and they keep fighting

Your Principle

You can life this way, and have your lifestyle be around a mission instead of a skill

Path of a Craftsman

You can be a software engineer (or front-end engineer/data engineer). And if you want to spend your life pursuing excellence in practicing a skill — you can do that. That is the path of a craftsman. That’s the most common path

Path of a problem solver or entrepreneur

The path of the problem solver (entrepreneurship and academic research) is another path that’s available to you

Path of someone who establishes a principle

What this talk is about. You can choose this life, or it can end up choosing you. This if often a result of a self-discovery process

If you choose to do this, it can’t be any old thing you believe in. It can’t be “make software easy to use”, or “delight users”, or “making things simple”

Those are nice thoughts, but they are too vague to be directly actionable. Larry Tesler likes simplicity — but his principle is this specific nugget of insight. “No person should be trapped in a mode”. That’s a powerful principle, because it gave him a new way of seeing the world