Thinking Small
Summary
In this episode of Developer Tea, host Jonathan Cottrell explores the concept of solving small problems rather than attempting to tackle large, overwhelming ones. He draws inspiration from the book ‘Think Like a Freak’ by Stephen Levitt and Stephen Dubner, who argue that focusing on smaller, more manageable problems increases the likelihood of creating meaningful solutions and value.
Cottrell explains that developers often face ‘debilitating’ challenges when they try to solve large problems upfront, whether in coding, startup ideas, blogging, or hiring. Instead, he advocates for breaking down big problems into smaller, more specific ones that are easier to solve and more likely to yield innovative results. This approach allows individuals to address issues that others might overlook, leading to unique contributions.
The host outlines four practical strategies for narrowing down problems: focusing on a specific niche audience, considering the intended context or use case, accounting for seasons or specific dates, and exploring sub-problems. He provides examples such as creating a code highlighting theme for colorblind programmers or developing an investment education tool for recent college graduates. By applying these tactics, developers can uncover ‘unique unsolved problems everywhere’ and create more value in their work.
Cottrell emphasizes that solving smaller problems not only makes tasks more manageable but also increases the chances of success and innovation. He concludes by encouraging listeners to adopt this mindset in their projects, whether they’re optimizing webpages, building applications, or tackling any other challenge. The episode is sponsored by Linode, a cloud hosting service that offers developers root access to Linux servers.
Recommendations
Books
- Think Like a Freak — Book by Stephen Levitt and Stephen Dubner that inspired the episode’s topic. The authors argue against solving big, well-known problems and instead advocate for focusing on smaller, more manageable ones to create value.
Tools
- Linode — Cloud hosting service that provides root access to Linux servers. Sponsored the episode and offers Developer Tea listeners a $10 credit with promo code DEVELOPERT10 or via linode.com/developert.
Topic Timeline
- 00:00:31 — Introduction to solving small problems — Jonathan introduces the main topic: how developers often try to solve large problems upfront, which can be debilitating. He explains that focusing on smaller problems is more effective and mentions inspiration from the book ‘Think Like a Freak’.
- 00:04:33 — Four ways to narrow down problems — Jonathan presents four strategies for narrowing problems: 1) based on a specific niche audience, 2) based on intended context or use case, 3) based on seasons or specific dates, and 4) by exploring sub-problems. He provides examples for each approach to illustrate how they work in practice.
- 00:10:20 — Recap and conclusion — Jonathan recaps the four tips and emphasizes that combining these narrowing tactics helps uncover unique unsolved problems. He concludes that solving these smaller problems creates value in the world and encourages listeners to adopt this mindset in their work.
Episode Info
- Podcast: Developer Tea
- Author: Jonathan Cutrell
- Category: Technology Business Careers Society & Culture
- Published: 2015-11-18T10:00:00Z
- Duration: 00:12:12
References
- URL PocketCasts: https://podcast-api.pocketcasts.com/podcast/full/cbe9b6c0-7da4-0132-e6ef-5f4c86fd3263/a7810635-1c49-484a-806f-fd4d0be768df
- Episode UUID: a7810635-1c49-484a-806f-fd4d0be768df
Podcast Info
- Name: Developer Tea
- Type: episodic
- Site: http://www.developertea.com
- UUID: cbe9b6c0-7da4-0132-e6ef-5f4c86fd3263
Transcript
[00:00:00] Hey, everyone, and welcome to Developer Tea.
[00:00:05] My name is Jonathan Cottrell, and today I’m going to be talking to you about solving small problems.
[00:00:11] Thank you to today’s sponsor, Linode.com.
[00:00:14] If you are looking for a cloud hosting solution and you would prefer to have root access on a Linux machine,
[00:00:21] Linode is a great option for you.
[00:00:24] We will talk more about what Linode has to offer to developers who listen to Developer Tea.
[00:00:28] Later on in today’s episode.
[00:00:31] But first, I want to jump straight into this idea, this concept of solving small problems.
[00:00:37] I think a lot of developers have a tendency to try to solve large problems up front,
[00:00:43] to try to kind of tackle the whole mammoth problem that they have in front of them up front.
[00:00:49] And this can be debilitating in a lot of ways.
[00:00:52] We do this not only with code, but also with company startup ideas.
[00:00:57] We also do it with blogs.
[00:00:58] We also do it with blog post ideas.
[00:01:00] And we also do it in the hiring realm.
[00:01:03] We try to hire somebody who solves big problems that our organization has,
[00:01:08] rather than solving a collection of small problems.
[00:01:11] The inspiration for today’s episode actually comes from the book, Think Like a Freak.
[00:01:17] And this is actually from the guys who run the Freakonomics podcast.
[00:01:22] Think Like a Freak is a relatively short book with a lot of entertaining and informational content
[00:01:28] about things that we do.
[00:01:28] Thinking Like an Economist Would Think.
[00:01:31] The authors, as I mentioned, run Freakonomics.
[00:01:33] They’re Stephen Levitt and Stephen Dubner.
[00:01:36] Both of these Stephens are really smart guys.
[00:01:39] And they talk about how they don’t try to solve the world’s big problems.
[00:01:43] Instead, they try to solve small individual problems that have a small enough scope
[00:01:48] to be reasonably solved with a relatively small solution.
[00:01:53] The idea that the authors are explaining is that the very large problems
[00:01:58] that we encounter, the ones that most people already know about, for example,
[00:02:03] typically have people already working on them,
[00:02:05] and typically have a lot of people already working on them.
[00:02:08] They pose that the likelihood that we will be able to solve the problem
[00:02:12] in some fundamentally new way from another set of smart people
[00:02:17] is much lower than the likelihood of us finding a smaller unsolved problem
[00:02:23] and being able to solve that.
[00:02:25] So I’m going to take a quick sponsor break to talk about Linode,
[00:02:28] and then we’re going to come back and talk about narrowing the scope of our problems
[00:02:33] so that we are likely the first or one of the first to encounter
[00:02:38] and attempt to solve those problems
[00:02:40] so that we have a higher likelihood of creating new value in the world.
[00:02:45] And that’s the whole idea behind solving smaller problems.
[00:02:49] But first, I want to talk to you about our sponsor today, Linode.com.
[00:02:53] Linode allows you to instantly deploy and manage an SSD server in the Linode cloud.
[00:02:58] You can get a server running in seconds with your choice of Linux distribution,
[00:03:03] the resources you want on that machine, and the node location.
[00:03:07] Now, Linode offers hourly billing with a monthly cap on all plans and add-on services.
[00:03:12] That includes backups, node balancers, and Longview.
[00:03:16] Now, Linode is a forward-thinking company.
[00:03:18] They recently made the investment to switch from Xen to KVM,
[00:03:21] which ended up in a 300% performance increase
[00:03:25] on the latest Unix benchmark of Linux.
[00:03:28] So in just a few minutes, you can have a server up and running
[00:03:33] with whatever Linux distro you want,
[00:03:35] and you have root access to that server,
[00:03:38] super fast servers, and all of that for industry-leading prices.
[00:03:43] Now, on top of all of this,
[00:03:44] Linode has been kind enough to provide Developer T listeners
[00:03:47] with a $10 credit towards a new Linode account.
[00:03:52] You can either use the promo code DEVELOPERT10,
[00:03:56] that’s the number 10,
[00:03:58] DEVELOPERT10 when you check out,
[00:04:00] or you can go to the special link that you can find in the show notes.
[00:04:04] That link is linode.com slash DEVELOPERT.
[00:04:07] Thank you again to linode.com for sponsoring today’s episode of Developer T.
[00:04:12] Of course, you can find the link for that $10 credit
[00:04:14] and all other links for today’s episode on spec.fm.
[00:04:18] So go and check it out, spec.fm.
[00:04:20] Thank you again to Linode.
[00:04:22] So we know that smaller problems are typically going to be solved better,
[00:04:26] and they’re going to serve us better
[00:04:28] if we focus on smaller problems.
[00:04:30] But how do we get from big problems to small problems?
[00:04:33] Well, today I’m going to give you four ways to narrow your problems down.
[00:04:38] Number one, narrow your problem based on a specific niche audience.
[00:04:43] So for example, you may want to create a code highlighting theme,
[00:04:47] but if you want to narrow that idea down,
[00:04:50] you could create a code highlighting theme
[00:04:51] that is particularly useful for colorblind programmers.
[00:04:55] Or perhaps you’re interested in investing
[00:04:58] and you want to create an app about investment education.
[00:05:02] Well, if you focus that application on a particular audience,
[00:05:05] then you’re likely to get a better set of content.
[00:05:09] For example, build an investment education tool
[00:05:12] that is specifically targeted to young 20-somethings
[00:05:15] who are getting out of college.
[00:05:17] Or maybe you want to teach people how to code Python,
[00:05:20] and it seems like there are a ton of tutorials
[00:05:23] that already teach people how to code in Python.
[00:05:26] Well, maybe you could focus,
[00:05:28] and you could create an app about investment education.
[00:05:28] So again, the first tip is to narrow your problem
[00:05:34] based on a specific niche audience.
[00:05:37] Number two, narrow your problem based on the intended context
[00:05:42] or the use case of that particular thing.
[00:05:45] So for example, you may want to create an application
[00:05:48] for registering people at an event.
[00:05:51] Well, maybe you want to create it for,
[00:05:53] let’s use the niche audience of event volunteers
[00:05:56] and a specific niche audience.
[00:05:58] So for example, you want to create an application
[00:06:00] for registering people at an event.
[00:06:00] Well, this informs some of the way
[00:06:03] that you’re going to design the application,
[00:06:05] and it gives you a specific context
[00:06:07] that may or may not have already been solved well
[00:06:10] by another application.
[00:06:13] Another idea is a news application
[00:06:15] that is built specifically for reading the news
[00:06:17] on a train or on a bus.
[00:06:20] Now, there are specific problems
[00:06:21] that go along with reading on the train or a bus.
[00:06:24] For example, having font sizes
[00:06:26] that are readable from a distance
[00:06:28] or if your hand shakes a little bit,
[00:06:31] having ways of making sure
[00:06:32] that the content is still readable.
[00:06:35] That specific context requires a different way of thinking.
[00:06:39] And because of the possibly unique combination of ideas
[00:06:43] or of the unique combination of a niche audience
[00:06:46] and a context,
[00:06:48] you may be solving a problem
[00:06:49] that’s never been solved before.
[00:06:51] A common tutorial or article
[00:06:53] that fits into this particular category
[00:06:56] is solving a problem that’s never been solved before.
[00:06:58] Solving an annoying software installation issue
[00:07:00] that only shows up on a specific type of machine
[00:07:03] running a specific operating system.
[00:07:06] If you solve this problem,
[00:07:08] then you will become kind of the canonical resource
[00:07:11] for that particular problem.
[00:07:13] Now, finally, if you are looking to, you know,
[00:07:16] teach other people a specific thing
[00:07:18] and you feel like it’s already been covered a lot,
[00:07:20] then use a specific intended context.
[00:07:24] For example, how to write a regex
[00:07:26] may be far too broad,
[00:07:28] but maybe you want to write one
[00:07:29] about how to match phone numbers from the UK with regex.
[00:07:34] Okay, so number two, once again,
[00:07:35] was narrow your problem based on the intended context.
[00:07:39] Number three, narrow your problem
[00:07:41] based on seasons or specific dates.
[00:07:44] And this one’s similar to creating things
[00:07:46] that are specific to a context,
[00:07:49] but we face problems that are unique
[00:07:51] based on the time of day, the day of the week,
[00:07:55] and perhaps the time of the year.
[00:07:58] An example of this would be an application
[00:08:00] that is centered around evaluating traffic patterns
[00:08:03] on holidays or weekends
[00:08:05] and building a shopping plan for you
[00:08:08] based on likely rush times and your shopping list.
[00:08:12] Now, this is very different
[00:08:13] and much more specific of a problem
[00:08:15] than, let’s say, just a general mapping application
[00:08:19] or a coupon application
[00:08:22] or a shopping list application, for that matter.
[00:08:24] Because what we’ve done is we’ve combined
[00:08:27] all of these concerns
[00:08:28] and we’ve given them context based on the season
[00:08:32] or based on the particular day of the week
[00:08:35] that helps a person make better decisions.
[00:08:38] So if you’re narrowing your problem
[00:08:40] based on seasons or specific dates,
[00:08:42] then you’re combining that information with other problems
[00:08:46] to help create more useful resources for users
[00:08:49] or perhaps more useful resources for other developers.
[00:08:53] Finally, you want to narrow your problem
[00:08:55] by exploring subproblems.
[00:08:57] Now, this is centered around the idea
[00:09:00] that each and every step of your application
[00:09:03] comes with its own unique set of problems.
[00:09:06] Let’s say, for example,
[00:09:07] that you’re trying to optimize a webpage
[00:09:09] and you have 20 different things
[00:09:12] that are required for your webpage to be 100% optimal.
[00:09:17] You’re compressing all of your assets,
[00:09:20] you’re loading things in at the proper times, et cetera.
[00:09:22] Each of these techniques can and should be considered
[00:09:26] its own.
[00:09:27] Instead of viewing optimizing a webpage as one big thing,
[00:09:32] you can then break down each of the individual things
[00:09:35] that go along with optimizing a webpage
[00:09:38] because if you take it one level up,
[00:09:40] optimizing a webpage is a part of making a website.
[00:09:44] So the further down you can go,
[00:09:47] the more granular you can be with your efforts.
[00:09:50] So let’s say for example,
[00:09:51] that you have three days of time
[00:09:52] to spend on optimizing that particular webpage,
[00:09:56] but you have four days
[00:09:56] but you have four days worth of work to do.
[00:09:59] Well, if you were to break down the optimization
[00:10:02] of that page into its sub-problems,
[00:10:05] then it becomes much easier to choose
[00:10:07] what to do in those three days.
[00:10:09] You solve the ones that make the most headway
[00:10:12] on the optimization process.
[00:10:14] You solve the small problems
[00:10:16] that make the largest effect on the big problem.
[00:10:20] So let’s recap those four tips.
[00:10:22] Number one, narrow your problem
[00:10:23] based on a specific niche audience.
[00:10:26] Number two, narrow your problem
[00:10:28] based on the intended context of the solution.
[00:10:31] Number three, narrow your problem
[00:10:33] based on seasons or specific dates.
[00:10:36] And finally, narrow your problem
[00:10:37] by exploring that problem’s sub-problems.
[00:10:41] When you combine each of these narrowing tactics
[00:10:45] to a problem, you’ll find that you are uncovering
[00:10:49] unique unsolved problems everywhere.
[00:10:52] And when you solve unique unsolved problems,
[00:10:55] you are creating value in the world.
[00:10:58] And that is ultimately what this episode is about.
[00:11:00] How do we narrow down our problems,
[00:11:03] think smaller so that we can create more value in the world?
[00:11:07] Thank you so much for listening
[00:11:08] to today’s episode of Developer Tea.
[00:11:10] Thank you to today’s sponsor, Linode.com.
[00:11:13] If you’re looking for a cloud host solution
[00:11:16] and you like to run root on Linux,
[00:11:19] Linode.com might be the perfect solution for you.
[00:11:22] Go to the show notes at spec.fm
[00:11:24] to find Linode.com.
[00:11:25] You can find a link that will get you $10 off
[00:11:27] on a brand new Linode account.
[00:11:29] Again, that’s spec.fm
[00:11:31] or you can go directly to linode.com slash developer tea.
[00:11:35] Thank you so much for listening today.
[00:11:36] I hope you’ve enjoyed the episode.
[00:11:38] Make sure you subscribe to the podcast
[00:11:41] and whatever podcasting app you use.
[00:11:44] That’s the easiest way to make sure
[00:11:45] that you don’t miss out on future episodes.
[00:11:47] And if you’re enjoying this show,
[00:11:50] please consider leaving a review in iTunes.
[00:11:53] You can find a link
[00:11:55] in the show notes to do that directly
[00:11:56] or you can obviously search for us in iTunes.
[00:11:59] We’re pretty easy to find.
[00:12:01] Thank you again for listening to Developer Tea
[00:12:03] and until next time, enjoy your tea.
[00:12:05] Thank you.
[00:12:05] Thank you.
[00:12:05] Thank you.
[00:12:06] Thank you.
[00:12:07] Thank you.