Listener Question: Donovan Asks About Analysis Paralysis
Published 11/9/2016
In today's episode, we talk about Donovan's question regarding his analysis paralysis.
Today's episode is sponsored by Linode! Get your own Linux server in the cloud with full control in just minutes. You can also get $20 of Linode credit if you use the code developertea at checkout, or go straight to spec.fm/linode.
Transcript (Generated by OpenAI Whisper)
Hey everyone and welcome to Developer Tea. My name is Jonathan Cutrell and in today's episode I'm answering Donovan's question about analysis paralysis. Before we get started today I want to remind everyone about the developer career roadmap. We're going to talk more about the developer career roadmap later on in today's episode. The developer career roadmap is something that we're kind of developing as the core ideas that Developer Teawants to promote for your development career. And the whole idea behind this is to help you make more solid decisions based on the pathway of thousands of developers who've come before you and who are successfully working in the industry today. The developer career roadmap is not a one size fits all, it's going to be perfect kind of solution. But it is indeed a pathway that has been shown to work for a lot of other people. Some people may take slightly different pathways from this core idea and some people may take wildly different pathways from the developer career roadmap. But my intention is to create a roadmap for people exactly like Donovan who have questions about how to stay focused and how to continually add value to your career, continually level up in your career. That is what spec.fm is all about. That is what Developer Tea is all about. And I hope that you will join me in going through this process, walking through these steps to the developer career roadmap. Everybody can find themselves on this roadmap. That's why it's so powerful. I hope you will take some time to listen to those episodes. It's been the past 10 or so episodes where we've been talking about the developer career roadmap. And we take a few breaks. Today is one of those breaks. And today's question comes from listener Donovan. Donovan writes in and says, I've been listening to your show for the last six months. I love your content. I've heard you give a lot of great advice. I'm hoping you can help me understand how to break my analysis paralysis. I've been working as a software developer for coming up on two and a half years. And I studied CS in college. So I have a basic understanding of software development for some time. And I would like to begin to specialize or at least develop an area of mastery. The problem is that whenever I think I have decided on a focus area, I begin to question it and I change before I even get beyond hello world. Most recently I've been wavering between Android and Universal Windows development, each of which have their own pros and cons. The cycle I get into is this. I think I've settled on a focus and then I begin exploring that focus. I think of some reason another focus might be better and then I begin exploring that focus. I try to compare the two different focuses and I begin to stress because there's no obvious better choice. So I step away from trying to pick a focus because I know I'm in analysis paralysis and I end up returning back to the beginning where I think I've settled back on a focus. I know this isn't helping me to grow as a person or a developer and I know this occurs in other areas of my life. Do you have any suggestions on how to break this cycle? Thanks, Donovan. Donovan, yes, absolutely. We're going to talk about this. This concept of analysis paralysis today. Thank you so much for writing in as well. With two and a half years of experience, you've walked down a few of those initial steps of the developer career roadmap. For example, you've had to learn how to budget your time if you went through a CS degree. And of course, this is something that you can always start back at step one. Make sure your time budget is set up properly. It doesn't sound like that is much of a problem for you, but rather you have an issue with indecisiveness. And this really plagues a lot of people. You know, a big reason why the developer career roadmap was created was to help people with the problem of indecisiveness at all stages of their career. Because you're going to face indecisiveness in many different areas. For example, not just what technology should you pick, although that is probably the most common problem as it relates to indecisiveness, but also what companies should you work for. Or which feature should you build first? And indecisiveness is a huge problem. And in fact, we talked about it in the developer poison series that was earlier this year back in August, actually. We talked about indecision is what I called it in that episode, but the same concept still remains the idea that indecision is ultimately paralyzing you. That's exactly what you're talking about here, Donovan analysis paralysis. I want to take a second to address the problem specifically as it relates to picking technology choices, picking types of technology to use as a developer, your tool set is constantly changing. Perhaps more than any other discipline, any other craft, your tool set as a developer is constantly shifting, constantly moving. And as a developer, you may feel the responsibility to keep up with the pace that the industry is changing, but here's the thing, the industry is actually increasing in pace. In other words, it's not a steady pace that you need to get up to speed to. The industry is going faster and faster every day. And as a contributor to this industry, you have to understand the effect that that can have on you. So for example, this can cause a widespread sense of inadequacy that we call imposter syndrome. This can cause a widespread frustration at a lack of tools. This can also cause our clients to believe that we need to be using the newest tool in order for our products to ultimately be usable or ultimately have value. And while it's true that constantly changing technology is a call for us to constantly update our tool set, it does not preclude us from becoming masters at a given tool set. And what that really means is that you have to spend time really getting familiar with a single tool. If you think about the master craftsman in other crafts, for example, a loo the air, a person who makes guitars or stringed instruments, that person's tool set doesn't change practically for the duration of their entire careers. Perhaps their entire lives, the same tool set is being used. And so their expertise can grow over time because they've become very familiar. They build up an intuition for that tool set. So how can we build up the same level of intuition and mastery over our tools if our tools are constantly changing? We're going to talk about that in just a minute right after today's sponsor break. Today's episode is sponsored by Linode with all of the tools that you do need to master as a developer. One of the tools that you can take off of your plate is actually spinning up a server, a manual server. If you have a computer sitting in your basement that you are using as your server, for example, you're way behind the times and really you're probably wasting a lot of your resources. Unless you're treating that as a hobby, if you want that to add to your career, if you want to level up in your career, you need to go and check out Linode. Linode can get a Linux server up and running in the cloud in just a few seconds. It's going to be at the leading edge of the industry standard for all of the speed capabilities. And you're not going to be able to build that in your garage. Perhaps the most important part is that Linode is affordable. So for developers who are at the very beginning of their careers, they can get a Linux server in the cloud for $10 a month. On top of that, Linode is offering you $20 of credit just for being a Developer Tealistener. Go and check it out. Spec.fm slash Linode. They have two gigabyte servers. That's their minimum plan. It's two gigabyte servers. They're running on Intel E5 processors. And really it's just a no brainer. If you don't have a server in the cloud and you're a developer, you're missing out on a lot of things, a lot of awesome things that you could be building on top of that open platform on top of Linux. Go and check it out. Spec.fm slash Linode. Thank you again to Linode for sponsoring today's episode of Developer Tea. So we're talking about Donovan's problem with analysis paralysis. We started talking about expertise and about our tool sets, our seemingly ever expanding tool sets. How can we, how can we stay up to date? How can we become experts? With our ever expanding tool sets. Donovan, my first recommendation for you is to simply write down a commitment. Make a specific commitment. Really what this means is explicitly define and articulate. Okay, those, that's the important two steps. Really define and articulate a commitment to learning one of those focuses. So for example, you mentioned Android or Universal Windows development. Going back to step one that you mentioned in your cycle, the cycle that you end up getting into the analysis paralysis cycle, you said that you think you settled on a focus, right? So you're weighing the pros and cons of these two different platforms. Perhaps in your CS degree, you learn some Java. So Android may be a little bit faster to get into or something like that, right? So you have some reasons as to why you've settled on a single focus. Assuming that your employer doesn't have an opinion about which one you learn. That's a big assumption, but assuming that either you are unemployed and you're trying to find your own job or your employer doesn't have an opinion about which one you learn or you don't work with other people who are using one or the other of these platforms, those kinds of things can help you make this decision a little bit easier and without evaluating it for yourself. But assuming that none of those things are true, you're basically evaluating this for yourself. You're going to evaluate it on a number of different factors, quite similar to our discussion on deciding which language you want to choose as your primary language. You're going to use some of the same steps that's in the developer career roadmap. In fact, it's step two of the developer career roadmap. And the way that we talk about finding your base language is to actually go through a similar process that you've already gone through, which is a simple hello world or a networking type application. You want to go a little bit further than hello world to really understand what it would feel like to develop with this particular technology. So understand what it's going to feel like to develop with it, but also take a look at the market, take a look at what you plan on doing with this. But once you've done all of that analysis, it's time to set the analysis aside. And once you've chosen that focus, I want you to articulate and explicitly decide that you are going to commit to, for example, six months. You're not going to change your focus. You're not going to change your base language. You're not going to change your pursuit. You're going to have six months that you're going to pursue this particular technology. And you may end up going through a season of boredom. You may end up going through a season of regret. You may end up going through a few days where you feel like it was completely the wrong decision. But I want you to stick with that commitment because the reality for you, Donovan, especially with the two specific things that you mentioned, Android and Universal Windows development, there is a lot for you to learn in both of those arenas. And in fact, something that you learn in Android development will very likely illuminate something else that you learn about Universal Windows development. So don't write off something simply because the grass is greener. So that's ultimately the first piece of advice that I have for you, Donovan. Totally state your commitment. Make a absolute measurable commitment. And that's really what we're saying there is a time-based commitment that you're not going to change your focus period. It doesn't matter how you feel that you are headed towards a goal. Now, the second side of that is that you need to have a goal in mind that you want to accomplish in those six months. For example, perhaps you have a side project that you want to accomplish by the end of that six months. Set that up as a goal so that you have something to work on. You're not just kind of learning in the dark, but instead you have a little bit of a direction. You have some kind of feedback in the form of, am I actually creating something that is usable? Am I actually accomplishing real code with this platform? Now, the second primary piece of advice that I have for you, Donovan, as it relates to craftsmanship and focus and developing your toolset or developing your mastery while you have this ever-changing toolset is to kind of elevate your thinking away from the toolset and start thinking in terms of literacy, of development literacy. On day one, it's not going to feel like development literacy is applicable. And in fact, even on day 100 or day 1000. But the reality is that your tool sets may be able to change under you, but your expertise can live on and be translated to new tool sets. Let me say that again. In the future, as you develop development literacy, that means as you solve more and more complex problems, as you are exposed to more and more situations, more and more things that you learn in one language, that same learning is going to make you better so that you're not starting from square one whenever you go to a new platform, whenever you adopt a new platform. And most of the time when you adopt a new platform, that adoption process is going to be much easier because of all of your previously gained knowledge about how, for example, languages work in general, how computers run a program. And if you ask any developer who has multilingual capabilities, in other words, if they write in multiple languages, they'll tell you that the second language that they learned was significantly easier. So what I'm telling you here is that if you decide to focus on Android, if you take a six month commitment or a year commitment, even better, two or three year commitment, and you're seeing good returns on Android, but you still feel like there's something that you can learn about universal windows, well, luckily, you're not starting back from ground zero. You're not starting back from square one where you don't know anything about the similar problems in the similar space. If you know something about Android, it's very likely that a lot of that knowledge, though it won't translate exactly syntactically over to universal windows, a lot of that same knowledge, a lot of the same structural information that you have about mobile development, it will translate to the universal windows platform. So in many ways, it's like taking two parallel trains. Yes, you may see some different things along the way, but a lot of what you're actually learning, a lot of the ground that you are covering, you won't really have to cover it again. Donovan, I'm really asking you to do something hard here. First of all, understand and really ingrain in your mind that decision is your friend. And when you fall prey to indecision, when you become indecisive, especially if you had previously made a decision, you are breaking down that concept of commitment to yourself and you're also losing momentum, right? So that switch over cost, that changing from one platform to another in the middle of learning or in the middle of that initial movement, that's going to be much more costly than if you were to spend the same amount of time, but actually focus. So if you were to switch between two different things over the course of the next year and learn a little bit on each one on alternating days, you're going to learn a lot less than if you were to, for example, spend one week on each one and alternate. So again, Donovan, the real answer here is for you to explicitly determine and articulate, write it down, tell another person, have some kind of level of accountability that you're actually going to stay focused on one of these things and know in advance, recognize. And it looks like that you have recognized this, but recognize in advance that you're going to have days where you don't want to stay committed. But remember that decision is your friend staying committed is your friend. It's the only way, the only way you will ever have enough experience with something that you can develop expertise. And then once you have developed that expertise, it will become much easier to translate it to new technologies. Once you choose one technology to specialize in, that does not mean that you can't adopt new technologies. It does not mean that you can change to a parallel track. Donovan, thank you again so much for writing in this question. If you have a question for a developer like Donovan did, you can always send me an email, Developer Teaatgmail.com. You can also find me on the Spek Slack community. Back.fm slash Slack that will always be free to Spek.fm listeners. Thank you again to today's sponsor, Linode. If you don't have a Linux server in the cloud, you can get one up and running in just a few minutes. Remember, they have $10 a month plans, but more importantly, they're giving you $20 and a seven day money back guarantee. I don't think I mentioned that earlier. Seven days for you to test this out. Go and check it out, spek.fm slash Linode. Thank you again for listening to today's episode of Developer Tea. Make sure you subscribe and until next time, enjoy your tea.