I recently came across a deeply insightful talk by Bret Victor called “Inventing on Principle” (thanks @patrick_oshag!). While his talk his focused primarily on his own work in software design, he offers great advice for how to live your life.
Bret Victor - Inventing on Principle from CUSEC on Vimeo.
Victor lays out a framework for how we can choose to live life (choice being the very operative term). He outlines three approaches.
1. Be a Craftsmen
This is the common approach for most people. Identify a skill you’re good at and master that skill. How that skill is applied via a job is often a secondary concern. Most people will aim for the best possible work in their nearby geographic location that matches their skillset.
This mode of work feels very familiar to me as I spent most of my career as a software engineer like this. For example, several years ago I feel in love with the Scala programming language for many reasons, mostly as I grew up on Java and Scala felt like a breath of fresh air. I set to work mastering that, and soon found several local opportunities to hone my craft. I quickly learned, however, that this approach felt shallow. Scala is just a tool, and while it was a great tool for certain situations, I wanted more out of my career. Being a full-stack generalist helped keep me occupied learning other tools, but I soon learned there’s more to a career than simply mastering tools.
2. Be a Problem-Solver
This is the path of the entrepreneur. Find a problem to solve, build a product or company to solve it, and find the appropriate market for your solution. Victor uses Edison as an example of a problem-solver, building a bunch of useful tools and inventions to solve problems.
I’ve definitely taken strides toward this path. I co-founded one startup, worked as a senior engineer at another, and currently serve as CTO of a third. What I like about these companies is the authorship you have in finding creative ways to solve problems. As a craftsman, you are likely constrained by the problems you choose to solve. Whereas with entrepreneurship, you’re not just solving a problem but framing the problem itself, which is much more challenging yet more impactful as well. Often times it’s harder to ask the right question than to find the right answer.
I’ll always be drawn to startups. It’s hard to match the feeling of working with a small group of talented people who want to change the world in some meaningful way. But it’s definitely a roller coaster, and not for everyone!
3. Have a Specific, Guiding Principle
This is where few people tread. Mastering a craft and solving problems are both worthwhile. However, there’s not (necessarily) a moral dimension to either. Victor notes that Larry Tesler established the principle of modelessness, that no person should be trapped in a mode when using a text editor. On the surface, it might seem that Larry simply worked on UX design, but it’s clear that his principle permeated everything he did, and there was a moral dimension (liberate users!).
Elizabeth Cady Stanton also believed in a principle, that women should have the right to vote. She brought her principle to life via social organization, whereas Larry’s principle manifested in invention. Both asserted a strong vision of how humanity should be, and worked almost singularly to bring that vision forward.
Victor’s principle is that users of software (specifically users doing creative work) should have immediate feedback loops in the software they use. This seems benign on the surface, yet as an engineer I can attest to the hours/days/weeks wasted using inefficient tools to write software. Freeing up users to do more humane and more interesting things via this principle is absolutely a moral imperative.
I think this third stage is the most difficult and most important phase to enter. What’s more, it’s clearly a work in progress. Victor took roughly a decade to formalize his principle. My first attempt at defining such a principle early in my career might’ve sounded like “Software should be as simple as possible, but no simpler.” Not a bad first attempt, but hard to derive the “why” from that. To save companies’ money? To make codebases saner? To minimize bugs? Victor points out that the principle must be specific. The constraint of specificity forces us to think deeply about why we do what we do, really interrogate all of our choices and actions and feelings and try to get to the heart of why we work.
I’m still in the process of crafting my own principle, but one common thread I notice in all of my work is minimalism. I’ve seen it take form in several areas of my life:
- Writing code - Simpler code is easier to maintain and less bug-ridden. Some of my best work has been refactoring codebases to eliminate kruft and clearly communicate flow via code.
- Interface design - I prefer simple, clean interfaces that don’t overwhelm the end-user. Do the job you’re hired to do and do it well.
- Management - Be judicious with your reports’ time, keep processes minimal without excessive red tape, free them up to do great work
- Communication - Favor listening over talking and FOCUS on the ONE thing in a debate or discussion that’s the most important (Bill Gates is famous for doing this)
- Writing - Don’t be verbose! This isn’t a contest to show off your vocabulary. Cut out extraneous words with a passion, get to the point and get out!
As I try to craft my own principle, I’ll be actively seeking out other examples to help crystallize my thinking. It’s hard to find a better example than Elon Musk. His overarching principle is to create the best possible future of humanity. He’s doing this by making our species multiplanetary via SpaceX (giving us options in the event of an extinction-level event), popularizing renewable energy via Tesla, and researching safe ways to integrate with AI via Neuralink. Tough to top that!
(If you haven’t already, Tim Urban’s Wait but Why posts unpack all of this. Go read them now. Seriously, I’ll wait.)
However, it’s clear that this grand vision has to take some form, and for Musk that form is creating companies with sustainable business models that will help realize his long-term vision. So the untrained eye might label him as just an entrepreneur (#2), or might label Tessler and Victor as UX craftsmen (#1), and there’s no doubt their day-jobs require those roles of them. But it’s also clear that what gets them out of bed in the morning isn’t #1 or #2 but #3. And that’s an important distinction.
So, what’s your guiding principle? Let’s talk and figure it out. Leave your comments here or reach out directly. Seriously. Otherwise, what’s the point of all this?
P.S. I find talks/papers/blogs like this to be unique in that the ideas therein connected to a lot of other ideas that I find really interesting, including but not limited to:
- Peter Thiel’s contrarianism - “What belief do you hold that few others believe in”
- St. Ignatius of Loyola - “Go forth and set the world on fire”
- Reid Hoffman and the limitations of job titles
Similar to PageRank, I feel like we need a way to tie intellectual works together based on ideas/themes and bubble up once like Victor’s talk that are highly connected based on my interests. Anyone agree? Does anything like this even remotely exist?