Where Does Bad Code Come From?

Molly Rocket

Molly Rocket

42 min, 21 sec

A detailed exploration of the origins of bad code and how programmers' mental models contribute to it.

Summary

  • Programmers' mental models and 'filter processes' are trained on abstract concepts rather than real-world metrics, leading to 'bad code'.
  • The talk criticizes current teaching methods which focus on principles like 'SOLID' that don't correlate to measurable improvements in software.
  • A proper approach to avoid bad code should involve measurable metrics that directly impact development time and software performance.
  • The speaker proposes a new acronym, 'WARMED', focusing on Writing, Agreeing, Reading, Modifying, Executing, and Debugging code, to replace unmeasurable 'clean code' practices.

Chapter 1

Introduction and Kickstarter Promotion

0:01 - 55 sec

Introduction to the video and promotion of the Kickstarter for a graphic novel called 'Meow the Infinite'.

Introduction to the video and promotion of the Kickstarter for a graphic novel called 'Meow the Infinite'.

  • The video marks the end of a series of Kickstarter promotional videos.
  • The speaker encourages viewers to check out and support the Kickstarter for a graphic novel.
  • The video is a two-part series including a lecture and a Q&A segment.

Chapter 2

The Lecture Introduction

1:00 - 6 sec

Introduction of the lecture topic about the origin of bad code, given to a company named infuria.io.

Introduction of the lecture topic about the origin of bad code, given to a company named infuria.io.

  • The lecture aims to provide a general audience answer to the question of where bad code comes from.
  • Several topics were suggested by the company, many relating to the issue of code growing out of control.

Chapter 3

Identifying the Pervasiveness of Bad Code

1:07 - 2 min, 41 sec

An overview of the widespread issues in software development such as overcomplicated code bases and performance issues.

An overview of the widespread issues in software development such as overcomplicated code bases and performance issues.

  • Software today is often characterized by excessive lines of code, fragile build systems, and dependencies that complicate maintenance.
  • Even with powerful computers, software build times can be excessively long, and the resulting applications often perform poorly.
  • The industry continues to produce software that is not only resource-intensive but also buggy, despite technological advancements.

Chapter 4

Defining Bad Code

3:50 - 33 sec

An attempt to define bad code and the importance of having a specific understanding of the term.

An attempt to define bad code and the importance of having a specific understanding of the term.

  • Bad code is discussed in the context of software potential versus the current state of software engineering.
  • The speaker argues that bad code is not necessarily tied to financial success, but rather to the quality of the software produced.

Chapter 5

Learning to Program and Developing Mental Models

4:25 - 9 min, 8 sec

Understanding how programmers learn to code and develop mental models that guide their coding process.

Understanding how programmers learn to code and develop mental models that guide their coding process.

  • Learning to program involves developing a mental filter and generator to produce valid syntax and discard unsuitable options.
  • Experienced programmers tend to produce highly regularized code due to the refinement of their mental processes over time.

Chapter 6

The Metaphor of Programmers as Navigators

13:36 - 6 min, 50 sec

The speaker uses the metaphor of programmers as navigators to describe the programming process.

The speaker uses the metaphor of programmers as navigators to describe the programming process.

  • Programming is likened to a journey where the programmer navigates towards a goal without a clear map.
  • The outcome of the journey is unpredictable, and programmers must rely on their training and experience to reach their destination.

Chapter 7

The Influence of Training on Programmers

20:29 - 19 min, 11 sec

Exploration of how programmers' training influences their approach to code, often leading them astray.

Exploration of how programmers' training influences their approach to code, often leading them astray.

  • Programmers are trained on abstract principles like 'SOLID' that do not directly relate to measurable outcomes.
  • This training fails to provide the necessary tools and metrics to guide programmers in producing efficient and effective code.

Chapter 8

Conclusion and Call for a Measurable Approach

39:43 - 2 min, 33 sec

The speaker concludes by emphasizing the need for measurable metrics in software development and proposes a new approach.

The speaker concludes by emphasizing the need for measurable metrics in software development and proposes a new approach.

  • A new approach, summarized by the acronym 'WARMED', is proposed to focus on real-world metrics in coding.
  • The current failure to measure real outcomes in programming is identified as the root cause of bad code.

Chapter 9

Outro and Final Thoughts

42:18 - 0 sec

The video concludes with a final promotion for the graphic novel Kickstarter and a teaser for the upcoming Q&A video.

The video concludes with a final promotion for the graphic novel Kickstarter and a teaser for the upcoming Q&A video.

  • The speaker promotes the graphic novel Kickstarter one last time, reminding viewers of the campaign's impending end.
  • A follow-up Q&A video is announced for the next day, summarizing questions from the company's employees.

More Molly Rocket summaries

The Only Unbreakable Law

The Only Unbreakable Law

Molly Rocket

Molly Rocket

A detailed analysis of how organizational structures influence software architecture, drawing from Melvin Conway's 1968 paper.

The Thirty Million Line Problem

The Thirty Million Line Problem

Molly Rocket

Molly Rocket

A detailed analysis of the issues with modern hardware and operating systems, and a proposal for a more manageable and efficient approach.

Handmade Hero Day 001 - Setting Up the Windows Build

Handmade Hero Day 001 - Setting Up the Windows Build

Molly Rocket

Molly Rocket

Detailing the process of setting up a development environment for Handmade Hero on Windows.