What Are your Fundamentals?


Summary

The episode examines the common tendency among developers to overcomplicate their work under the false assumption that complexity inherently adds more value. Jonathan Cottrell argues that while a complex solution might theoretically offer more benefits, its actual cost—in terms of effort, management, and hidden variables—is often exponentially higher than anticipated and frequently outweighs any perceived advantages.

He draws parallels to great coaches and writers who achieve consistency through simplicity, focusing on core fundamentals rather than managing numerous constraints. For a writer, this might mean committing to a daily word count without worrying about topic or quality, thereby reducing cognitive overhead and increasing output reliability.

The discussion extends beyond code to life responsibilities, warning against optimizing for too many variables. Cottrell suggests that as complexity increases, the interplay between variables becomes harder to manage, often involving hidden or uncontrollable factors that derail projects.

He concludes by urging developers to audit their regular activities, evaluate the complexity of relationships they’re managing, and identify ways to simplify their core work. The central question posed is: “What are your fundamentals?”—encouraging a return to basic, consistent practices that reduce overhead and increase sustainable productivity.


Topic Timeline

  • 00:00:00Introduction to consistency and simplicity in great coaches and writers — The host introduces the episode by noting that great coaches and writers often exhibit a consistency of simplicity in their work. He clarifies this doesn’t apply to all fields (like theoretical physics) but sets the stage for discussing the relationship between simplicity, complexity, and value, especially for developers.
  • 00:01:14The mistake of overcomplication in development — Cottrell states that one of the biggest mistakes developers make is overcomplicating their work, from individual lines of code to product design. He explains this stems from the belief that since we can conceptualize complex systems, we can execute them, and that this complexity adds unique value a simpler approach cannot.
  • 00:02:29The false assumption about complexity and value — The host identifies the critical mistake: taking on complexity with the false assumption it is as easy as simplicity and adds unique value. He argues that while a complex solution might be more valuable in a perfect theoretical snapshot, in reality it costs more—often much more than expected—due to unaccounted overhead.
  • 00:03:59Extrapolating the concept to life and work responsibilities — Cottrell extends the principle beyond code to life choices, such as taking on too many responsibilities or optimizing for too many variables. He explains that complex systems involve many interacting variables, and complexity increases effort at an exponential, not linear, rate, often involving hidden or uncontrollable factors.
  • 00:05:11The exercise: evaluating and simplifying your core activities — The host proposes an exercise: look at your regular work and evaluate the complexity of the relationships you’re managing. Then, find ways to make your core activities simple. He returns to the example of great coaches and writers who succeed by focusing on fundamentals—like a writer committing to a daily word count without other constraints.
  • 00:06:26The central question: What are your fundamentals? — Cottrell poses the core question of the episode: “What are your fundamentals?” He encourages listeners to identify the simple, consistent practices at the heart of their work, much like successful figures in other fields, and to carry this question with them throughout their day to reduce unnecessary complexity.

Episode Info

  • Podcast: Developer Tea
  • Author: Jonathan Cutrell
  • Category: Technology Business Careers Society & Culture
  • Published: 2020-01-29T10:00:00Z
  • Duration: 00:07:16

References


Podcast Info


Transcript

[00:00:00] one of the things that you are likely to notice if you study the greatest coaches for example

[00:00:11] athletic coaches of all time or if you study great writers is that they have a consistency

[00:00:19] of simplicity in their work so what does this mean exactly well first let’s note that this

[00:00:29] doesn’t apply to everyone who’s become a great coach it doesn’t apply to everyone who’s a great

[00:00:34] author certainly you can’t say this for example for you know nobel prize-winning nuclear physicists

[00:00:42] because the difficulty or the complexity of their work is directly tied to the value that it brings

[00:00:52] in a lot of ways but in today’s episode we’re going to discuss this relationship

[00:00:58] between

[00:00:59] simplicity, complexity, and value.

[00:01:04] My name is Jonathan Cottrell, you’re listening to Developer Tea, and my goal on the show

[00:01:08] is to help driven developers like you find clarity, perspective, and purpose in their

[00:01:13] careers.

[00:01:14] One of the biggest mistakes that you can make as a developer is to overcomplicate whatever

[00:01:21] you’re doing.

[00:01:22] And this comes all the way down to every line of code that you write.

[00:01:29] Whether you’re trying to be too clever with the function that you’re writing right now,

[00:01:34] or maybe you’re trying to create a product that serves too many audiences, or maybe you’re

[00:01:43] trying to trick some kind of system, you’re trying to game some kind of system, it’s very

[00:01:49] easy to believe that since we can kind of conceptualize a complex system,

[00:01:58] we can create a system that’s more complex.

[00:01:59] Since we can theoretically map out how the complex system might work, that we can then

[00:02:05] turn around and execute on that complexity.

[00:02:09] And this perspective becomes even harder to shake when we also believe that the complexity

[00:02:15] adds some kind of distinct value.

[00:02:20] And more importantly, that the complexity adds value that we couldn’t accomplish by

[00:02:26] taking a simpler approach.

[00:02:29] This is the critical mistake that so many startups make, and so many developers make

[00:02:35] when they’re starting out their careers, or when they’re trying to manage a team, or

[00:02:39] when they’re trying to build features out.

[00:02:42] They take on complexity with the false assumption that somehow that complexity is just as easy

[00:02:51] as something simple, but that the complex route adds some unique value.

[00:02:58] That the simple route leaves out.

[00:03:02] Now sometimes this is true, but very rarely is it true that complexity adds more value

[00:03:09] per your effort than something simple would.

[00:03:13] Now notice we didn’t say that if you were to write out the complex solution, theoretically

[00:03:18] if you could snap your fingers and the complex solution is complete, and the simple solution

[00:03:25] is complete, that the complex solution wouldn’t work.

[00:03:28] That the complex solution wouldn’t be more valuable.

[00:03:31] Instead what we’re saying here is that the complex solution costs more.

[00:03:38] More importantly, it costs more than we expect it to cost, because our ideas about the complex

[00:03:45] solution, or our ideas about a complex approach, don’t always account for the overhead that

[00:03:54] we adopt when we choose a complex path, rather than the overhead that we adopt when we choose

[00:03:56] a complex path.

[00:03:58] Rather than a simple path.

[00:03:59] This is certainly true at the code level, and you can extrapolate this idea all the

[00:04:04] way out to the most important things that we do in our lives.

[00:04:09] Trying to take on too many responsibilities, for example.

[00:04:12] Or trying to optimize our work, or our lives, for too many variables.

[00:04:20] We think about these complex systems as if they are executions of theory.

[00:04:27] But we often forget that there are so many interplaying variables, that as you add complexity,

[00:04:35] those variables begin to interact.

[00:04:37] And the complexity doesn’t just linearly increase the amount of effort necessary to

[00:04:43] see it through.

[00:04:45] It typically increases at some exponential rate.

[00:04:49] The more relationships that you have between those variables, the harder they are to manage.

[00:04:54] And very often.

[00:04:56] Those variables are totally hidden to us.

[00:04:59] Or they are outside of our control, they’re outside of our reach.

[00:05:05] And so here’s what I want to suggest for you as a developer.

[00:05:11] I want you to look at your activities.

[00:05:15] Look at the work that you do on a regular basis.

[00:05:18] The types of things that you engage in.

[00:05:21] And I want you to evaluate how complex are all the relationships that you’re trying to

[00:05:25] manage.

[00:05:26] How complex is the work that you’re trying to accomplish?

[00:05:31] And then I want you to evaluate ways that you can make your core activities, the things

[00:05:37] that you do on the most regular basis, simple.

[00:05:42] You’ll hear this in documentaries about those coaches that we were talking about earlier.

[00:05:48] You’ll read it in autobiographies about authors or about leaders, that they have some simple

[00:05:54] approach that takes things back to the fundamentals.

[00:06:00] The fundamentals is what I want you to think about.

[00:06:03] So for a writer, for example, they may force themselves to write a certain volume, a certain

[00:06:11] amount every day, rather than forcing themselves to write a certain volume of a certain quality

[00:06:18] and about a certain topic.

[00:06:21] They only have the one constraint.

[00:06:22] And this simplifies.

[00:06:23] This simplifies the output.

[00:06:26] So what are your fundamentals?

[00:06:29] This is the question that I want you to think about as you move through your day today.

[00:06:33] Thank you so much for listening to today’s episode of Developer Tea.

[00:06:37] This episode and every other episode can be found at spec.fm.

[00:06:41] Of course, if you enjoyed today’s episode, the best way to make sure you don’t miss out

[00:06:45] on future episodes like this one is to subscribe in whatever podcasting app you’re currently

[00:06:50] using.

[00:06:51] If you want to help the show out.

[00:06:52] Uh, since we’re here.

[00:06:53] If we don’t have a sponsor today, the best way that you can help us out is to share this

[00:06:58] episode with other people that you think will enjoy it or find value in it.

[00:07:03] Today’s episode was produced by Sarah Jackson.

[00:07:05] My name is Jonathan Cottrell and until next time, enjoy your tea.