« All Episodes

Thinking Small

Published 11/18/2015

In today's episode, we talk about solving small problems. I'll give you a few tips for scoping your problems down to be smaller.

Mentioned on today's show

Click here to leave a review of Developer Tea on iTunes!

Today's episode is sponsored by Linode! Get root access on super-fast linux cloud servers in just a few minutes! Use the code DeveloperTea10 to get $10 off on your new account.

Transcript (Generated by OpenAI Whisper)
Hey everyone and welcome to Developer Tea. My name is Jonathan Cutrell and today I'm going to be talking to you about solving small problems. Thank you to today's sponsor linode.com. If you are looking for a cloud hosting solution and you would prefer to have root access on a Linux machine, linode is a great option for you. We will talk more about what linode has to offer to developers who listen to Developer Tea, later on in today's episode. But first I want to jump straight into this idea, this concept of solving small problems. I think a lot of developers have a tendency to try to solve large problems up front, to try to kind of tackle the whole mammoth problem that they have in front of them up front. And this can be debilitating in a lot of ways. We do this not only with code, but also with company startup ideas. We also do it with blog post ideas. And we also do it in the hiring realm. We try to hire somebody who solves big problems that our organization has rather than solving a collection of small problems. The inspiration for today's episode actually comes from the book Think Like A Freak. And this is actually from the guys who run the Freak Enomics podcast. Think like a freak is a relatively short book with a lot of entertaining and information and emotional content about thinking like an economist would think. The authors, as I mentioned, run Freak Enomics, they're Stephen Levit and Stephen Dubner. Both of these Stevens are really smart guys. And they talk about how they don't try to solve the world's big problems. Instead they try to solve small individual problems that have a small enough scope to be reasonably solved with a relatively small solution. The idea that the authors are explaining is that the very large problems that we encounter, the ones that most people already know about, for example, typically have people already working on them and typically have a lot of people already working on them. They pose that the likelihood that we will be able to solve the problem in some fundamentally new way from another set of smart people is much lower than the likelihood of us finding a smaller unsolved problem and being able to solve that. So I'm going to take a quick sponsor break to talk about Linode and then we're going to come back and talk about narrowing the scope of our problems so that we are likely the first or one of the first to encounter and attempt to solve those problems so that we have a higher likelihood of creating new value in the world. And that's the whole idea behind solving smaller problems. Now first I want to talk to you about our sponsor today, Linode.com. Linode allows you to instantly deploy and manage an SSD server in the Linode Cloud. You can get a server running in seconds with your choice of Linux distribution, the resources you want on that machine, and the node location. Linode offers hourly billing with a monthly cap on all plans and add on services that includes backups, node balancers, and long view. Now Linode is a forward thinking company. They recently made the investment to switch from Zen to KVM, which ended up in a 300 percent performance increase on the latest Unix benchmark of Linode servers. So in just a few minutes, you can have a server up and running with whatever Linux district you want and you have root access to that server, a super fast servers, and all of that for industry leading prices. Now on top of all of this, Linode has been kind enough to provide Developer Tealisteners with a $10 credit towards a new Linode account. You can either use the promo code developer T10, that's the number 10 developer T10 when you check out or you can go to the special link that you can find in the show notes. That link is Linode.com slash Developer Tea. Thank you again to Linode.com for sponsoring today's episode of Developer Tea. Of course you can find the link for that $10 credit and all other links for today's episode on spec.fm. So go and check it out spec.fm. Thank you again to Linode. So we know that smaller problems are typically going to be solved better and they're going to serve us better if we focus on smaller problems. But how do we get from big problems to small problems? Well today I'm going to give you four ways to narrow your problems down. Number one, narrow your problem based on a specific niche audience. So for example, you may want to create a code highlighting theme, but if you want to narrow that idea down, you could create a code highlighting theme that is particularly useful for colorblind programmers. Or perhaps you're interested in investment and you want to create an app about investment education. Well, if you focus that application on a particular audience, then you're likely to get a better set of content. For example, build an investment education tool that is specifically targeted to young 20-somethings who are getting out of college. Or maybe you want to teach people how to code Python and it seems like there are a ton of tutorials that already teach people how to code in Python. Well maybe you could focus your Python tutorial on Java developers. So again, the first tip is to narrow your problem based on a specific niche audience. Number two, narrow your problem based on the intended context or the use case of that particular thing. So for example, you may want to create an application for registering people at an event. Well, maybe you want to create it for, let's use the niche audience of event volunteers and a specific context of loud environments. Well, this informs some of the way that you're going to design the application and it gives you a specific context that may or may not have already been solved well by another application. Another idea is a news application that is built specifically for reading the news on a train or on a bus. There are specific problems that go along with reading on the train or a bus. For example, having font sizes that are readable from a distance or if your hands shakes a little bit, having ways of making sure that the content is still readable, that specific context requires a different way of thinking. And because of the possibly unique combination of ideas or of the unique combination of a niche audience and a context, you may be solving a problem that's never been solved before. A common tutorial or article that fits into this particular category is solving an annoying software installation issue that only shows up on a specific type of machine running a specific operating system. If you solve this problem, then you will become kind of the canonical resource for that particular problem. Finally, if you are looking to teach other people a specific thing, then you feel like it's already been covered a lot. Then use a specific intended context, for example, how to write a rejects, maybe far too broad, maybe you want to write one about how to match phone numbers from the UK with rejects. Okay, so number two, once again, was narrow your problem based on the intended context. Number three, narrow your problem based on seasons or specific dates. And this one's similar to creating things that are specific to a context. But we face problems that are unique based on the time of day, the day of the week, and perhaps the time of the year. An example of this would be an application that is centered around evaluating traffic patterns on holidays or weekends and building a shopping plan for you based on likely rush times and your shopping list. Now, this is very different and much more specific of a problem than, let's say, just a general mapping application or a coupon application or a shopping list application for that matter. Because what we've done is we've combined all of these concerns and we've given them context based on the season or based on the particular day of the week that helps a person make better decisions. So if you're narrowing your problem based on seasons or specific dates, then you're combining that information with other problems to help create more useful resources for users or perhaps more useful resources for other developers. Finally, you want to narrow your problem by exploring subproblems. This is centered around the idea that each and every step of your application comes with its own unique set of problems. Let's say, for example, that you're trying to optimize a web page and you have 20 different things that are required for your web page to be 100% optimal. You're compressing all of your assets, you're loading things in at the proper times, etc. Each of these techniques can and should be considered its own problem. Instead of viewing optimizing a web page as one big thing, you can then break down each of the individual things that go along with optimizing a web page. Because if you take it one level up, optimizing a web page is a part of making a website. So the further down you can go, the more granular you can be with your efforts. So let's say, for example, that you have three days of time to spend on optimizing that particular web page, but you have four days worth of work to do. Well, if you were to break down the optimization of that page into its subproblems, then it becomes much easier to choose what to do in those three days. You solve the ones that make the most headway on the optimization process. You solve the small problems that make the largest effect on the big problem. So let's recap those four tips. Number one, narrow your problem based on a specific niche audience. Number two, narrow your problem based on the intended context of the solution. Number three, narrow your problem based on seasons or specific dates. And finally, narrow your problem by exploring that problem's subproblems. When you combine each of these narrowing tactics to a problem, you'll find that you are uncovering unique, unsolved problems everywhere. And when you solve unique, unsolved problems, you are creating value in the world. And that is ultimately what this episode is about. How do we narrow down our problems? Think smaller so that we can create more value in the world. Thank you so much for listening to today's episode of Developer Tea. Thank you to today's sponsor, Leno.com. If you're looking for a cloud post solution and you like to run root on Linux, Leno.com might be the perfect solution for you. Go to the show notes at spec.fm to find a link that will get you $10 off on a brand new Leno account. Again, that spec.fm or you can go directly to Leno.com slash Developer Tea. Thank you so much for listening today. I hope you've enjoyed the episode. Make sure you subscribe to the podcast and whatever podcasting app you use. That's the easiest way to make sure that you don't miss out on future episodes. And if you're enjoying this show, please consider leaving a review in iTunes. You can find a link in the show notes to do that directly or you can obviously search for us in iTunes. We're pretty easy to find. Thank you again for listening to Developer Tea. And until next time, enjoy your tea.