DCR: Traits of a Great Developer - Expanding Perspective
Published 9/18/2017
Today's episode is the next in the lineup of episodes extending our previous discussions from the Developer Career Roadmap. The first episode from that series can be found here: https://spec.fm/podcasts/developer-tea/49656
Today's episode focuses on the ability to expand your perspective.
Today's episode is brought to you by Linode.
Linode provides superfast SSD based Linux servers in the cloud starting at $5 a month. Linode is offering Developer Tea listeners $20 worth of credit if you use the code DEVELOPERTEA2017 at checkout. Head over to spec.fm/linode to learn more about what Linode has to offer to Developer Tea listeners!
Transcript (Generated by OpenAI Whisper)
What do you make? If you're a professional developer, you probably are on a team of people and not all of them are developers. And it's important to have a good answer to this question. What do you make? In today's episode, I'm going to arm you with the mindset that you need to answer this question. We're talking about traits of great developers. This is an extension on our developer career road map series. If you haven't listened to it, I recommend you go and check it out. You can find it at speck.fm. Of course, you were listening to Developer Tea. My name is Jonathan Cutrell. My goal on this show is to help you become a better developer. And that is a holistic thing. We've talked about it in the past. Very recently in the past, we had introspection and interrogation episodes about understanding yourself better, having a holistic perspective of yourself and who you are and your place in this industry. But today's episode is going to hopefully expand that perspective a little bit. And instead of only thinking about that self interrogation and introspection, in today's episode, we're going to talk about a trait that all great developers lean on. This is definitely a biased episode. The type of developer that we're talking about in today's episode is less the academic developer and more the business developer. The reason I'm choosing this kind of bend on this subject is because you as a listener of Developer Tea. And especially if you're listening to the developer career road map series, you're likely to fall into this category. You're likely to fall into the category of developers who are not working in a vacuum. You're likely not working on purely scientific research. And even if you were a good portion of today's episode is still applicable, the trait that we're talking about here is an expanded perspective. It sounds so simple, isn't it? Having an expanded perspective. And the reason I asked you about what it is that you make is because your answer really kind of helps you understand your own perspective. If your answer is that you create code or that you create systems or if you answer with anything other than you create part of the whole, then you're probably, first of all, a lot like most other developers. But secondly, you probably could benefit from taking some time to think about how your contributions fit into the whole product. It's very easy to get caught up in what we do as developers. Part of the reason for this is because developers have a strong culture. Part of the reason is because society at large is now ramping up appreciation for what developers do, right? The job market for people who code is really attractive for people who are outside of that job market. So developers have this sense that the code that we create or the technology that we perpetuate is really what we do. And everything else kind of comes around and takes advantage of that. However, a great developer understands that all of their code, all of the technology that they work with is in context. If you have the mindset that you've done your job and so you can check the box off, you're going to find that that's going to limit your capacity to build particularly good products. It's going to limit your capacity to grow as a developer. Some of the signs that you'll notice for developers who kind of suffer from this limited perspective is following best practices dogmatically, following them without understanding why they're following them. And very often this kind of position for a developer ends up breeding resentment for their co-workers because so much of what we do as developers is viewed as cost in a typical scenario. In other words, if you are practicing a particular best practice that extends the amount of time that you need to make a particular feature, right? The upfront investment is extended. You as a developer, you may recognize the importance of those things. But if you don't recognize the importance of them and you're only doing what you've heard is the right thing to do. You've only adopted the practice because you know from reading a few books or from a fellow developer who has taught you some of the stuff, you know that it's the right thing to do. If you're only doing it for those reasons, then it's very easy to start to develop a sense of frustration and resentment once again for your co-workers or for even your clients, right? Because they don't understand what you do and quite honestly, neither do you. So how can you develop an expanded perspective? We're going to talk about that right after we talk about today's sponsor. Today's episode is sponsored by Linode. You're probably not surprised because Linode has supported Developer Tea for a long time and that's because they believe in the development community. They believe in us so much that they've created an excellent product for the best price on the market. On top of that, they offer 24, 7 customer support. Now what can you do with Linode? Well, pretty much anything you can do with Linode and more importantly, anything you can do with multiple Linux machines that are distributed with an internal network, super fast internal network. Now these Linux installations are on SSD servers. So they're incredibly fast on their own. But on top of that, Linode has networks, these servers together with an internal 40 gigabit network. So it's very fast internally as well. Now what can you do with that? Well, you can do things like load balancing. This is actually called node balancer in Linode's product offerings. And what that allows you to do is route requests to the server that is most capable and least loaded to handle that particular request at that given moment. So it's a really cool thing for scaling your products up. But here's the thing. If you're just a brand new developer, maybe you're in a boot camp or maybe you just started college in your CS degree, you can get started on Linode for $5 a month. That's a gigabyte worth of RAM on your server $5 a month. That's cheaper than going to the movies just once. And that gives you a month on a Linode server. Go and check out what Linode has to offer. On top of this, Linode's providing you with $20 worth of credit just for being a Developer Tealistener. You can use the code Developer Tea2017 at checkout to get that $20 worth of credit. That's four months worth of a free server. You can try it out. And if you don't like it, they have a seven day money back guarantee as well. Spec.fm slash Linode. Thank you again to Linode for sponsoring today's episode. So how can you develop an expanded perspective? Here's a exercise that I want you to do. There's actually a couple of exercises that I want you to do. The first thing I want you to do, I want you to write down three or four applications or services that you use yourself that you really appreciate using. These should be consumer level applications. They can be developer tools, but I don't want you to think about, you know, APIs or anything like that. Instead, I want you to focus on things that are services that you use. And I want you to write down a list of the things that make you appreciate those services or tools. What you're going to realize, unless you write down a contrived list, is that most of the things that you list have very little to do with the technical decisions of the development team behind that product. Now this can help you to begin to kind of internalize that concept that the value that you perceive as a customer is only kind of in the background determined by those developers. Now, if you perceive, for example, that you like how fast something is, then that's heavily related to the technological decisions that the developers made most likely. But the process that the developers used to optimize that product is less important to you. What you care about most likely is stability, performance. These are things that the typical developer we care about in a product and those things are affected only by what is shipped in the end. So what this allows you to do is start connecting those best practices that you have ingrained in your mind, whether it's from a book or from another developer or a professor or a podcast like this one, taking those best practices and connecting them to a final value output. Whether that means that the product is more stable because you've written tests for that product or it's delivered more quickly because you work for a company that does iterative development, having the perspective of connecting every action that you take to an output of value. That is what a great developer does. That's the perspective that can allow you to expand your, the practice that you have, right, the various best practices that you want to perpetuate to give them a solid foundation and reasoning for why they matter. The next exercise that I want you to perform is I want you to meet with the non-developers on your team. Preferably, doing this in a one-on-one scenario allows you to learn a little bit more about that person, but the focus of these meetings should be understanding what that person does. In both of you, you should share this with each other. You're communicating in a way that translates from the technical side of what you do to whatever it is that they do. This is connecting value together and recognizing the value that each other contribute to the final outcome. I've said it before on a previous episode, I encourage you to go and listen to it if you can get to the place where you believe that your team builds one thing together rather than believing that you all build different things and then somehow they fall together in the end. If you can get to the place where your team recognizes and values that concept of oneness in the product that you create, then you're going to create a better product and ultimately you're going to become a better developer. Thank you so much for listening to today's episode. This is really core to what this show is intended to be. Developing these perspectives, this is the way you become a better developer. It's not just about practicing code, it's about thinking, it's about changing the way that you think, elevating yourself above average. The average developer has a self-centered perspective. The average developer cares more about tech than they do about their team. The average developer doesn't want to meet with other people on their team because they feel like it's a waste of time. Don't be that average developer, elevate above that. Thank you so much for listening to today's episode of Developer Tea. Think of course to Linode for sponsoring today's episode. Linode helps developers like you start creating things that are available online, not just online but through network connections. It's not just about building websites. You can create microservices, you can do anything with them. You can create a remote Git, a private remote Git repository. Go and check it out spec. If you use the code Developer Tea2017. Thanks so much for listening. Make sure you subscribe if you don't want to miss out on future episodes, including the other traits of great developers. Again, this episode is an extension of the developer career roadmap. Go and check out those episodes on spec.fm. Thank you so much for listening and until next time, enjoy your tea.