Software and Entrepreneurship with Seth Godin
Seth Godin is a successful writer and speaker who has been involved in the software development industry for decades. In this episode, we sat down with Seth to learn about the best ways to apply our skills for the betterment of society and how to maximize our effectiveness as software engineers, starting with our choices in college.
In college, Seth advises us to go wide, not deep. This may seem counterintuitive in a world where specialization seems to be the dominant path towards high salaries and defensible careers. At school, however, we are too young and inexperienced to focus on specialties. Instead, we advises we cast a wide net to expose ourselves to lots of people, lots of collaboration, and lots of different ways to think critically. Those are the foundations for future specialization, but we can’t reach that point until we’ve seen the vast landscape of possibilities which can only come from a broad education.
Myths in the CS curriculum
Computer science is not the best way to become a programmer. The best way to be a programmer is to program a lot. The problem with the modern computer science curriculum is that it assumes theory as the foundation for practical applications of computer science.
While these problems are important and influential in modern computing, they do not apply to the 99% of developers who are developing web or mobile applications. Knowing how to create and analyze bubble sort does not translate to modern software development, and so it seems like there’s a mismatch between theory and practice.
Software engineering is different than software. Software is more than just code and the practice of creating that code. Software is the systems of that code and the people who make it. Once you realize this you will make real progress instead of a series of hacking together janky software.
Yoyodyne and Software in the 90s
Before Godin was an author, he helped create an email marketing company called Yoyodyne. Acquired in 1998 by Yahoo!, Godin learned quite a few things about managing engineers and how software companies have scaled over the past few decades.
The internet was not designed to scale in the 1990s. For Yoyodyne, it simply wasn’t feasible to support all of the emails they wanted to send. “100,000 emails could melt a server,” says Seth. Today, instead of worrying about server administration and “the building falling down” as Seth puts it, developers can use tools like to AWS to handle all of this so you can instead focus on delivering great products for your customers.
On managing engineers
In addition to learning about how to scale a business in the 90s, Seth learned quite a bit about scaling engineering teams as well.
Colocating your software people with the rest of the company was as vital then as it is today. Even with the development of tools like Slack and remote meeting software, Seth still believes in the power of in-person collaboration. And while there are plenty of successful remote-first companies, he’s not sure if that can be replicated across the entire software industry.
Seth also advises to be disciplined enough to get the spec right the first time. Today lots of people tend to intuit specifications instead of trying to get them right at the beginning of a product life cycle. As Seth points out, “buildings and cars are run on a spec and we aren’t changing them, we should do the same thing with software”.
Freelancers vs entrepreneurs
One distinction that seems to be hard for software developers to make is how to slot themselves in defining their work as freelancing or software entrepreneurship. Seth points out that entrepreneurs make money when they sleep because other people do every job, while freelancers make money when they work with their own two hands.
When freelancers try to scale, they hire others to become entrepreneurs and that seems to be too difficult. Instead, if you’re a programmer and you want to become an effective entrepreneur, you need to stop programming.
In a similar vein, if you’re the boss, the only thing you can complain about is yourself. Especially in software where people desperately need you and you have the most powerful tools at your disposal, you can give so much back to the world with your intelligence instead of squandering it in a “cubical farm” as Godin puts it.
“Software engineers should be getting pleasure from getting software to do things that matter.” – Seth Godin
On “What To Do When It’s Your Turn”
“I don’t write a book because I need to…but because I have to,” says Seth. His thesis is there are far more artists in the world than we believe there are, and that if every page in What To Do When It’s Your Turn inspires those artists to express themselves, it’s a journey worth pursuing.
Seth also points out that “people are afraid of being called out as a failure or a fraud.” This is why people love meetings, so they can pass their accountability to others. Instead, Seth says people should stay in small teams because they have no meetings as they’re too busy collaborating and making things to deal with meetings in the first place.
Finite vs infinite games
In discussing his book, Seth has introduced the concept of finite versus infinite games as a way of explaining how to think about adding value as a software developer.
Finite games are those that have rules, an end state, and a clear winner. Think of it like eating a slice of pie: there are only so many slices left, and the winner eats the largest slices of pie. As a practical example, Chevrolet and Ford will win battle it out for the market share game of the automotive industry.
Infinite games, on the other hand, offer abundance where more players contributing to the game create more winners. Think of this game as creating a bigger pie and continuing to grow it at a rate faster than it can be eaten. Wikipedia is an example of an infinite game: it is the result of 10s of millions of hours of donated time and can be as big as we want it to be. As a result, it will never end, there is no winner, and all you can do is pay it forward and help other people pay it forward.
“When we can create infinite games out of software our careers thrive and our heart sings” says Seth. Infinite games are the Holy Grail of software, according to Seth. He believes that if we put the effort in to create things that are more valuable as more people use it, we can create a better world for everyone.
In helping software entrepreneurs create infinite games, Seth created the altMBA as a massively open online course (MOOC). Seth learned quite a few things about MOOCs in the development of the altMBA:
- Software engineers were the earliest users of MOOCs. That means this audience was accustomed to MOOCs as a platform.
- The dropout rate was close to 99%. When it gets hard and there’s no social pressure, people drop out.
- They can be really long. A 12+ week course is difficult to captivate an audience when there is no social pressure, grading system, and there is work to be done at your day job.
With those lessons, Seth decided to create a MOOC where no one drops out, it’s not free (to create social pressure), and it is condensed into a super intensive, four week course. As a result, people discover really fast that most things are trivial compared to what is learned in altMBA, like learning how to see, how to speak on what you see, and how to spot change.
In creating infinite games, Seth advises to avoid networks that have already been conquered. We are in the very early days of server farms like AWS, but Seth says “you can’t out-Amazon Amazon or out-Uber Uber.” In other words, the number of networks we can use is compounding daily, so don’t focus on the ones that have already been conquered.
Finally, Seth encourages the people who are listening to this podcast to go and build the future, because we are the ones best equipped to make that happen.