Modern Software Engineering notes

Last night I had the pleasure of attending an IRL talk in Belfast from Dave Farley, co-author of the famous “Continuous Delivery” DevOps book.

Dave’s talk covered areas from his new book Modern Software Engineering , whose general thesis is that we should be optimising for learning within our software development processes by taking an iterative experimental approach.

I thought I’d share with you some short notes on areas of his talk that I found interesting:

  • There is a crossover between 5 qualities that are desirable in software (Modularity, Cohesion, Separation of concerns, Abstraction, Loose coupling) and how the presence of these qualities in your code amplifies the testability of it. This is a great reason to practise TDD.
  • On these 5 qualities: “I expect none of you will disagree with any of these 5. You may have some of your own you wish to add”. The presence of (the right amount of) these qualities is almost universally accepted as desirable, irrespective of an application’s architecture or tech stack.
  • Testable code makes assertions easy. If you can’t find anything to assert on at the end of your test case, you need to change your module interfaces.

And he finished with a really interesting anecdote that he’d recently learned:

“SpaceX use TDD, trunk based development and release software changes 45 mins before take off”.

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