[Oldletter #23] A taxonomy of technical debt, how complex systems fail, and full service ownership

📢 Quick announcement: if your team needs any help with building a serverless app on AWS, I may have some availability over the next 2 months to work with you. Just reply to this email and we can set up a call.

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.

This week’s links all follow an operations theme and were very kindly provided by my friend and DevOps training expert Luca Ingianni. If you’re an engineer working in an ops-related role and are keen to grow your product skills, Luca is running a 2-day Product Owner For DevOps Teams course next Thursday and Friday (11-12 August), and there are still a few spots left. Hit him up on LinkedIn if you’re interested or have questions.

  • A Taxonomy of Technical Debt (2018) by Bill Clark. The author provides a framework for measuring and categorising pieces of tech debt such that a decision can be made on if/when (and possibly how) to fix it.

    When measuring a piece of tech debt, you can use impact (to customers and to developers), fix cost (time and risk), and contagion. I believe most developers regularly consider impact and fix cost, while I’ve rarely encountered discussions of contagion. Contagion can be a developer’s worst enemy as a problem burrows in and becomes harder and harder to dislodge.

  • How complex systems fail (1998) by Richard Cook. 18 short paragraphs on how failures in complex systems occur, are evaluated, are attributed to a cause and are prevented against.

    1. Complex systems are intrinsically hazardous systems.
    2. Complex systems are heavily and successfully defended against failure…
  • Full Service Ownership (2019) by PagerDuty.

    Full-service ownership means that people take responsibility for supporting the software they deliver, at every stage of the software/service lifecycle. That level of ownership brings development teams much closer to their customers, the business, and the value being delivered. Teaching engineers how to code, ship, and own their services in production dramatically improves your organization’s ability to ship features quickly to the right people at the right time.

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