Etienne De Bruin welcomes Aaron Longwell, Scott Graves and Judah McAuley to this episode of the CTO Podcast. Aaron is the Software Development Manager at Serverless, Scott is the CTO at Reps and Co, as well as a Founding Partner at Scale Tech Consulting, and Judah is the Associate Director at Tinuit. In the first installment of this two-part episode, they’re exploring what engineers can learn from evolutionary biology when it comes to the software development process.

You’ll hear Etienne De Bruin, Aaron, Scott and Judah talk about:

  • How software development follows patterns of biology and ecology, as well as dynamic systems theory.
  • The importance of The Adjacent Possible. This is where modification occurs in a network that makes something possible that wasn’t possible before the modification.
  • The way lay people think about code is much simpler than what coding actually is. “People who are not in software I always tell them, every piece of software you admire, …if you could peel the curtain back on that, you’ll be shocked at how hard to understand and complicated and garbage the code looks,” Aaron says. Software, especially coding, is much more complicated than it looks and there are so many algorithms that need to be followed. You can only change bits of code at a time or else the systems get out of balance.
  • What matters most is how well the system around the code works. The thing that makes the code most adaptable is you.
  • Why you should allow some randomness and some mess into your problem solving so that you can explore other avenues to resolve issues.

Resources

What Evolutionary Biology Can Tell Us About Software Development – Part 2

Aaron Longwell, Scott Graves and Judah McAuley are back for the final installment of this two-part episode of the 7CTO Studio Podcast. Aaron is the Software Development Manager at Serverless, Scott is the CTO at Reps and Co, as well as a Founding Partner at Scale Tech Consulting, and Judah is the Associate Director at Tinuiti. This week, they continue their conversation about degeneracy and its relationship to redundancy.

Here are some ideas you’ll hear them explore:

  • It usually takes a lot of waste to get to the optimal setup.
  • The smaller the piece of the system, the more precise you need to be. As you zoom out, you can be more tolerant of inefficiency.
  • Dial in the parts of the system that are stable; focus your adaptability on the areas that are subject to change.
  • How is the energy in your team best applied? “The thing I’ve learned the most in managing teams the last couple of years, is to leave lots of slack… leave room for having the energy to think about and try different things.”
  • Darwin originally theorized evolution as descent with modification and differential survival. They discuss what is similar in software development, and what might be missing.
  • How Deming’s generative organizational principles apply to building software development teams: “In a good generative culture the complexity will naturally evolve.”
  • Is it wrong to piggyback off other systems to solve degeneracy?
  • “Human engineers make progress all the time by looking at the solutions that evolution has come up with.” But is that an effective model to follow? They discuss the possibilities and implications.
  • “Unless we allow for those emergent phenomena we’re never going to get true complexity.”

Resources