[Oldletter #9] Trunk-based development, programming falsehoods and managing cognitive load in software teams

Every Friday, I’m sharing a short list of evergreen articles/resources broadly related to software engineering that wouldn’t typically get shared in most tech newsletters or social media feeds.

  • Trunk Based Development (2017) by Paul Hammant.

    A source-control branching model, where developers collaborate on code in a single branch called ‘trunk’/‘main’ and resist any pressure to create other long-lived development branches by employing documented techniques.

    I’m still surprised about how many devs still aren’t aware of TBD. This microsite is an excellent resource for learning its benefits compared to other approaches, the different variations of it (pushing to main vs PRs in short-lived branches) and techniques such as feature flags which address common objections.

  • Falsehoods Programmers Believe (2015) by Scott Vandehey. A fun and eye-opening look at false assumptions programmers make around things such as names, dates, time, geography and more. The post links out to several other posts (including this curated awesome list of lists) so you can go deeper down the rabbithole. A few of my favourites:

    • “(All) People have names”
    • “The time 23:59:60 is always invalid”
    • “A single postcode will be larger than a single building”
  • Managing Cognitive Load for Team Learning (2015) by Jo Pearce. In today’s fast-moving tech landscape “trying to keep up with new technology can cause stress, anxiety and self-doubt”. This piece gives some background on the science behind cognitive load, the 3 categories of it (intrinsic, extraneous and germane) and recommends some tactics for managing or eliminating common manifestations of it in software teams.

Submitting your recommendations

If you’d like to share an evergreen article/book which has significantly influenced your thinking or practice around software delivery, please email it through to me and I’ll add it to my backlog for sharing in future editions.

Have a great weekend!

— Paul

Join daily email list

I publish short emails like this on building software with serverless on a daily-ish basis. They’re casual, easy to digest, and sometimes thought-provoking. If daily is too much, you can also join my less frequent newsletter to get updates on new longer-form articles.

    View Emails Archive

    ☎️ Serverless Clarity Call

    Need quick guidance on a specific issue on your AWS serverless project? Or just wondering where to start with serverless?

    Book a call and ask me anything.

    Learn more >>

    🛫 Serverless Launchpad

    Ready to start building your new AWS serverless project but need help with getting everything setup?

    The Serverless Launchpad is a done-for-you DevOps service installed in under a week. You get a leading-practice multi-account AWS environment, a scaffolded codebase and architecture including the common AWS serverless services, isolated cloud environments for individual developers, automated delivery pipelines right through to production and much more. Everything is IaC, extensively documented and handed over to your developers.

    Learn more >>