Tag: architecture

Tales of a Fourth Grade: An Architecture Kata

Architecture katas are a way for us to practice our design skills. I often use them with mentees who express an interest in software design. The idea is that we are given a problem statement, and we need to propose a system design to suit. This is also great practice for a system design interview, though I've had mixed results with those in the past, and tend not to use them myself.

Serverless Boundaries and How to Find Them

Last year I attended the awesome AWS Community Summit where I gave this talk on one of the fundamental questions of software architecture: how do we define the boundaries of things?

A lot of people I talk to are confused about how serverless applications change the way we design stuff, but my answer is that the basics are exactly the same, and even more important.

MUSTAPO: an architecture qualities checklist

Whenever I'm designing systems, there are three things to consider: the functional requirements, ie. the stuff that the system does; the constraints, ie, the time, money, and knowledge factors; and the architectural qualities - the non-functional requirements against which we test our design.

For the architecure qualities, or -ilities, I use a handy mnemonic: MUSTAPO.

Getting Started With Documentation Driven Development

Chances are that if you're building software in 2022, you're building some kind of distributed system. The success of a distributed system depends on the careful design of the interfaces between parts. For about a decade, I've been using what I call "Documentation Driven Development" (the other DDD). You can sum this up in one sentence: write the documentation first.