« 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 Cottrell 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 blogs. We 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 Freakonomics podcast. Think Like a Freak is a relatively short book with a lot of entertaining and informational content. About things that you can do. And it's a lot of fun. Think Like a Freak. Think Like a Freak. 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. But 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. Now 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% performance increase on the latest Unix benchmark of Linode. So in just a few minutes, you can have a server up and running with whatever Linux distro you want. And you have root access to that server, 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 T listeners with a $10 credit towards a new Linode account. You can either use the promo code developerT10, that's the number 10, or you can go to the special link that you can find in the show notes. That link is linode.com slash developerT. Thank you again to linode.com for sponsoring today's episode of Developer T. 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... 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... 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 niche audience. So for example, you may want to create an application for registering people at an event. Now, you may want to create an application for registering people at an event. 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. Now, 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 hand 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 a problem that's never been solved before. 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. And finally, if you are looking to teach other people a specific thing and you feel like it's already been covered a lot, then use a specific intended context. For example, how to write a regex may be far too broad, but maybe you want to write one about how to match phone numbers from the UK with regex. 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 is a problem that we face when we're writing a regex. 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, 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 sub-problems. Now, 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 web site. 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, you have four days worth of work to do. Well, if you were to break down the optimization of that page into its sub-problems, 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 sub-problems. 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, Linode.com. If you're looking for a cloud host solution, and you like to run root on Linux, Linode.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, or you can go directly to linode.com. Thank you so much for listening today. I hope you've enjoyed the episode. Make sure you subscribe to the podcast in 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 find a link in the description below. And if you've enjoyed this episode, please consider leaving a review in iTunes. 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.