When costs are nonlinear, keep it small.
Batching work is more efficient … until cost rises nonlinearly with batch size. Then smaller batches are the most efficient. So don’t delay maintenance!
Batching work is more efficient … until cost rises nonlinearly with batch size. Then smaller batches are the most efficient. So don’t delay maintenance!
The most productive developer on a team is usually the one with the most knowledge of the system. Of the code, the business domain, the other software this code interacts with, and the people in the organization who can help. How did they get that knowledge? By working on the system. Weinberg remarks that when …
TL;DR: When you want to build one platform for all your lines of businesses: stop. Don’t. Build systems for each instead. Keep the integrated parts as small as possible. This minimizes costs, while enabling change. A global, unified platform to support all our lines of business! Doesn’t that sound glorious? CIOs puff out their chests. …
Read moreNonlinear increases in complexity make unification excruciating.
I wanted it to be turtles all the way down. (where turtles are objects, or functions)
But it isn’t…
Giving birth and nourishing,making without possessing,expecting nothing in return.To grow, yet not to control:This is the mysterious virtue. Lau Tzu, Tao Te Ching Can we make software, and care for it in productionwithout feeling possessive of our code? The software gives us nothing back. It could emit events for us. If we listen to its …
As developers, we build systems. Right? We build software that stays up (in aggregate) and performs functions. Sure, sure. Is that system useful by itself? I say never. When your team builds a service that adds a capability to the business, and it’s called by other internal software, then that other software is essential for …
“Teams use CheckMarx to make their code more secure.” CheckMarx is a tool that analyzes code, looking for vulnerabilities. It produces a report of likely problems, with specific locations in the source code. “We will mandate that our teams use CheckMarx.” Will this make the code more secure? That depends how the team reacts to …
As a manager, I want to tell a team what I need and they make it. Is that too much to ask? It depends what you mean by “tell.” Without the information we need, work is like “Bring me a stone.” In this game, the Boss says to the Worker, “Bring me a stone.” The …
Software is completely clockwork at the scale of one function, and completely complex in production.
Code is like a coastline: the closer you look, the farther from here to there. Can we diminish this effect?