Course curriculum

    1. Introduction

    2. Discussion: Tom, a Case Study

    3. Questions for Tom

    4. Before We Begin: Reading and Resource List

    1. Discussion: What heuristics have you heard for how to decide when to do refactors?

    2. Hackneyed Heuristics

    3. Coupling and Cohesion

    4. Discussion: Examples from You

    1. Case Study: Tidy First? by Kent Beck

    2. Case Study: Working Effectively with Legacy Code, by Michael Feathers

    3. Case Study: Confident Ruby, by Avdi Grimm

    1. Navigating Tradeoffs as a Wager

    2. Pragmatic Wagering in Software Engineering

    3. Recap: What We've Done, Where We're Going

    1. Introduction

    1. Discussion: Time Constraints

    2. Artifacts of Context

    3. Context Loss and Project Time

About this course

  • $219.00
  • 32 lessons
  • 4 hours of video content
  • We harangue engineers to make their code flexible and maintainable, but in practice it’s really hard to make a system flexible everywhere. Attempts to do so tend to yield systems that truly flex almost nowhere, with begrudgingly rigid portions throughout. That result tends to derive from a culture of absolutism in tech—assuming one tool or practice is always better or best, when in fact, every tool’s utility is context-dependent. This skill focuses an engineer on understanding the current and future needs of their clients, then investing in flexibility where it’s likely to be most helpful.

Discover your potential, starting today