Photo by Ryan Stone on Unsplash

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

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