Reacquainting yourself with the evergreen fundamentals of software engineering

In today’s technology news and social media world, we’re being constantly bombarded with new frameworks, cloud services, tools and practices. Recency and novelty is favoured by the vast majority of news aggregators (“new” is in the name “news” I suppose).

I’ve been feeling some unease for a while around the biases that this firehose could precipitate, but haven’t been able to articulate my feelings on it very well. This excerpt from a research paper I reviewed a few years ago is a good starting point:

Architects, being human, are invariably subject to the influence of cognitive biases due to the cognitive limitations of the human mind, resulting in a systematic deviation from the ideal decision- making process. This leads to the design of sub-par solutions because of missing rationality behind the decisions.

For us experienced engineers and architects with an interest in serverless (who I suspect tend towards the Innovators/Early Adopters end of the Rogers bell curve), biases such as the availability heuristic, bandwagon effect and hyperbolic discounting are particularly pernicious, even if we might not recognise them in ourselves (or like to admit so).

Availability heurisitic — A mental shortcut that relies on immediate examples that come to a given person’s mind when evaluating a specific topic, concept, method or decision.

Bandwagon effect — The tendency to do (or believe) things because many other people do (or believe) the same.

Hyperbolic discounting — The tendency for people to have a stronger preference for more immediate payoffs relative to later payoffs. Leads to choices that are inconsistent over time.

I’ve found myself personally falling foul of these and other similar biases. Sometimes I catch myself on pre-decision and adjust, but sometimes I don’t recognise it until a later retrospective. And whilst my consumption of the modern tech news firehose isn’t the only factor here, I do think it plays a major role.

So I’ve decided to try to offset these negative effects by re-acquainting myself again with the fundamental and evergreen aspects of software engineering. My first step of this was to buy the book Modern Software Engineering: Doing What Works to Build Better Software Faster by Dave Farley. Dave also co-authored the excellent Continuous Delivery book whose concepts are still evergreen (and much underused) almost 12 years since publication. I’m only one chapter into his new book, but his promise of a paradigm shift in how we think about delivering software while still keeping the fundamentals as an integral core has got me excited.

And as a kind of service to the community, I’m considering sending out an “oldletter” email once a week — basically 2–3 curated links to high quality, evergreen blog articles, books or other resources related to software/cloud development that wouldn’t typically get shared in “latest news” style newsletters or social media feeds.

If you have recommendations for any such articles which have significantly influenced your thinking or practice around software delivery, I’d really appreciate you sharing them with me (and let me know if you’re happy with me publishing your name as the recommender). And even if you don’t have any recommendations right now but still like this idea, if you could send a quick reply with 👍🏻 that will help me gauge interest.

— 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 >>