What Are your Fundamentals?
Published 1/29/2020
One of the biggest mistakes you can make as a developer is to overcomplicate whatever you're doing. This comes all the way down to every line of code you write. In today's episode, we're talking about simplicity, complexity and value of our work.
At what point does complexity devalue our code?
🧡 Leave a Review
If you're enjoying the show and want to support the content head over to iTunes and leave a review! It helps other developers discover the show and keep us focused on what matters to you.
🍵 Subscribe to the Tea Break Challenge
This is a daily challenge designed help you become more self-aware and be a better developer so you can have a positive impact on the people around you. Check it out and give it a try at https://www.teabreakchallenge.com/.
Transcript (Generated by OpenAI Whisper)
One of the things that you are likely to notice if you study the greatest coaches, for example, athletic coaches of all time, or if you study great writers, is that they have a consistency of simplicity in their work. So what does this mean exactly? Well, first, let's note that this doesn't apply to everyone who has become a great coach, it doesn't apply to everyone who's a great author. Certainly you can't say this, for example, for Nobel Prize-winning nuclear physicists, because the difficulty or the complexity of their work is directly tied to the value that it brings in a lot of ways. But in today's episode, we're going to discuss this relationship between simplicity, complexity, and value. My name is Jonathan Cutrell, you're listening to Developers He and my goal on the show is to help driven developers like you find clarity, perspective, and purpose in their careers. One of the biggest mistakes that you can make as a developer is to overcomplicate whatever you're doing. And this comes all the way down to every line of code that you write, whether you're trying to be to clever with the function that you're writing right now, or maybe you're trying to create a product that serves too many audiences, or maybe you're trying to trick some kind of system. You're trying to game some kind of system. It's very easy to believe that since we can kind of conceptualize a complex system, since we can theoretically map out how the complex system might work, that we can then turn around and execute on that complexity. And this perspective becomes even harder to shake when we also believe that the complexity adds some kind of distinct value. And more importantly, that the complexity adds value that we couldn't accomplish by taking a simpler approach. This is the critical mistake that so many startups make and so many developers make when they're starting out their careers or when they're trying to manage a team or when they're trying to build features out. They take on complexity with the false assumption that somehow that complexity is just as easy as something simple, but the complex route adds some unique value that the simple route leaves out. Now sometimes this is true, but very rarely is it true that complexity adds more value per your effort than something simple would. Now notice we didn't say that if you were to write out the complex solution theoretically, if you could snap your fingers and the complex solution is complete and the simple solution is complete that the complex solution wouldn't be more valuable. Instead what we're saying here is that the complex solution costs more. More importantly, it costs more than we expect it to cost because our ideas about the complex solution or our ideas about a complex approach don't always account for the overhead that we adopt when we choose a complex path rather than a simple path. This is certainly true at the code level and you can extrapolate this idea all the way out to the most important things that we do in our lives. Trying to take on too many responsibilities for example or trying to optimize our work or our lives for too many variables. We think about these complex systems as if they are executions of theory, but we often forget that there are so many interplaying variables that as you add complexity, those variables begin to interact and the complexity doesn't just linearly increase the amount of effort necessary to see it through, it typically increases at some exponential rate. The more relationships that you have between those variables, the harder they are to manage. And very often those variables are totally hidden to us or they are outside of our control, they're outside of our reach. So here's what I want to suggest for you as a developer. I want you to look at your activities, look at the work that you do on a regular basis, the types of things that you engage in. And I want you to evaluate how complex are all the relationships that you're trying to manage, how complex is the work that you're trying to accomplish. And then I want you to evaluate ways that you can make your core activities, the things that you do on the most regular basis, simple. You'll hear this in documentaries about those coaches that we were talking about earlier, so read it in autobiographies about authors or about leaders that they have some simple approach that takes things back to the fundamentals. The fundamentals is what I want you to think about. So for a writer, for example, they may force themselves to write a certain volume, a certain amount every day, rather than forcing themselves to write a certain volume of a certain quality and about a certain topic, they only have the one constraint. And this simplifies the output. So what are your fundamentals? This is the question that I want you to think about as you move through your day today. Thank you so much for listening to today's episode of Developer Tea. This episode and every other episode can be found at spec.fm. Of course, if you enjoyed today's episode, the best way to make sure you don't miss out on future episodes like this one is to subscribe and whatever podcasting app you're currently using. If you want to help this show out, since we don't have a sponsor today, the best way that you can help us out is to share this episode with other people that you think will enjoy it or find value in it. Today's episode was produced by Sarah Jackson. My name is Jonathan Cutrell and until next time, enjoy your tea.