Skip to content

{ Category Archives } architecture of sorts

It protects. It also promotes and prevents.

I sometimes get asked to review, or “comment on”, the architecture for an app. Often the app already exists, and the architecture documentation consists of nothing more than the source code and the folder structure. Sometimes the app doesn’t exist, and the architecture is a collection of hopes and dreams expressed on a whiteboard. Very, […]

Everyone rejecting everyone else

It’s common in our cooler-than-Agile, post-Agile community to say that Agile teams who “didn’t get it” eschewed good existing practices in their rush to adopt new ways of thinking. We don’t need UML, we’re Agile! Working software over comprehensive documentation! This short post is a reminder that it ran both ways, and that people used […]

On exploding boilers

Throughout our history, it has always been standardisation of components that has enabled creations of greater complexity. This quote, from Simon Wardley’s finding a path, reminded me of the software industry’s relationship with interchangeable parts. Brad Cox, in both Object-Oriented Programming: an Evolutionary Approach and Superdistribution, used physical manufacturing analogies (to integrated circuits, and to […]

Sprouts

Having discussed reasons for change with a colleague on my team, we came up with the sprouts of change. Good software is antifragile in the face of changing: Situation People Requirements Organisation Understanding Technology Society Like any good acronym, it’s really tenuous.

Change

I was just discussing software architecture and next steps with a team building a tool to help analyse MRI images of brains. Most of the questions we asked explored ways to proceed by focussing on change: what if the budget for that commercial component shows up? How would that change the system? what if you […]

Zen and the Art of Software Maintenance

In one part of the book Zen and the Art of Motorcycle Maintenance, which is neither about Zen nor motorcycle maintenance, there are two motorcycles and two riders. John Sutherland is a romanticist who appreciates the external qualities of his motorcycle: its aesthetics, and its use as a vehicle. The narrator is a classicist who […]

Great Documentation, Great Software

A paraphrased conversation, the other day, between me and a customer of one of my customers: Me: Are you experienced at working with my customer’s developer APIs? Them: I always feel like a newbie, because there’s so much stuff. But I always end up finding the docs I’m looking for. Me: I’m writing the docs. […]

Maybe you are going to need it

In the beginning, there was the green field. The lead developer, who may have been the only developer, agreed with the product owner (or “the other member of the company” as they were known) what they would build for the first two weeks. Then File->New Project… happened, and they smashed it out of the park. […]

Longer, fuller stacks

Thinks to self: OK, this “full-stack” project is going to be fairly complex. I need: a database. I don’t need it yet, I’ll defer that. a thing that runs on the server, listens for HTTP requests from a browser, builds responses, and sends them to the browser. a thing that runs on the browser, built […]

Mach and Matchmaker: kernel and language support for object-oriented distributed systems

About this paper Mach and Matchmaker: kernel and language support for object-oriented distributed systems , Michael B. Jones and Richard F. Rashid, from the proceedings of OOPSLA ’86. Notes Yes, 1986 was a long time ago, but the topics of Mach and Matchmaker are still relevant, and I find it interesting to read about its […]