[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

    Architecture & Process Review

    Built a serverless app on AWS, but struggling with performance, maintainability, scalability or DevOps practices?

    I can help by reviewing your codebase, architecture and delivery processes to identify risk areas and their causes. I will then recommend solutions and help you with their implementation.

    Learn more >>

    🪲 Testing Audit

    Are bugs in production slowing you down and killing confidence in your product?

    Get a tailored plan of action for overhauling your AWS serverless app’s tests and empower your team to ship faster with confidence.

    Learn more >>