One Secret to Quality Software

They ask us for quality. What is “quality”? “Well, free of defects.” (Oh it’s a lot more than that.) What is a “defect”? “Well, when it doesn’t work like we expect it to. Like we agreed it should.” Trust me, you didn’t specify how it works. That’s my job, as a developer. To organize all … Read moreOne Secret to Quality Software

Library vs service: who controls change?

When you have a common piece of functionality to share between two apps, do you make a library for them to share, or break out a service? The biggest difference between publishing a library or operating a service is: who controls the pace of change. If you publish a library for people to use, you … Read moreLibrary vs service: who controls change?


Developers have a love-hate relationship with code re-use. As in, we used to love it. We love our code and we want it to run everywhere and help everyone. We want to get faster with time by harnessing the work of our former selves.And yet, we come to hate it. Reuse means dependencies. It means … Read moreReuse

Tradeoffs in Coordination Among Teams

The other day in Budapest, Jez Humble and I wondered, what is the CAP theorem for teams? In distributed database systems, the CAP theorem says: choose two of Consistency, Availability, and Partitioning — and you must choose Partitioning. Consider a system for building software together. Unless the software is built by exactly one person, we … Read moreTradeoffs in Coordination Among Teams

Post-agile: microservices and heads-up development

Notes from Craft Conference 2015, Budapest. Craft conference was all about microservices this year.[1] Yet, it was about so much more at the same time — even when it was talking about microservices. lobby of the venue. Very cool, and always packed Dan and I went on about microservices in our opening keynote,[2] about how it’s not … Read morePost-agile: microservices and heads-up development

Microservices, Microbusinesses

To avoid duplication of effort, we can build software uniformly. Everything in one monolithic system or (if that gets unwieldy) in services that follow the same conventions, in the same language, developed with uniform processes, released at the same time, connecting to the same database. That may avoid duplication, but it doesn’t make great software. … Read moreMicroservices, Microbusinesses