architecture Essential Reading: A Philosophy of Software Design — Fighting Complexity One Module at a Time josedacruz, September 30, 2026September 30, 2026 TL;DR: John Ousterhout argues that software complexity doesn’t arrive as one big mistake — it accumulates in small increments, one shortcut at a time, until a codebase becomes hard to change without breaking something else. His fix is to design “deep” modules: pieces of code with a simple interface that… Continue Reading
architecture The Bikeshed Effect: Why Your Team Argues More Over the Logging Library Than the Database Schema josedacruz, September 5, 2026September 5, 2026 TL;DR: Teams often spend more time debating small, easy-to-understand decisions (like which logging library to use) than big, complex ones (like a new database schema). This is called bikeshedding, and it happens because trivial topics are easy for everyone to have an opinion on, while complex ones are intimidating. The… Continue Reading
architecture One-Way Doors vs Two-Way Doors: A Heuristic for How Much Analysis a Decision Deserves josedacruz, August 23, 2026August 23, 2026 TL;DR: Not every decision deserves the same amount of debate. Some choices are easy to undo if you’re wrong, and some are almost impossible to take back. Sorting a decision into one of those two buckets before you argue about it tells you how much process it actually needs —… Continue Reading
architecture The Silent Veto: How One Skeptical Senior Engineer Can Kill Any Architecture Decision josedacruz, August 15, 2026August 15, 2026 TL;DR: Architecture decisions don’t die because someone votes no. They die because one respected engineer looks skeptical, everyone else in the room reads that skepticism as risk, and the proposal quietly stops moving. This “silent veto” has no formal step and shows up on no org chart, but it’s often… Continue Reading
architecture The Bus Factor Test: A Quick Heuristic for Finding Your Team’s Hidden Single Points of Failure josedacruz, August 11, 2026August 11, 2026 TL;DR: The “bus factor” is the number of people who could disappear from your team before a system stops working — and for most teams it’s uncomfortably close to one. Once you find a low bus factor, the real decision isn’t whether to fix it, it’s how: documentation works well… Continue Reading
decision-frameworks MoSCoW Framework: A Clearer Way to Prioritize What Matters josedacruz, April 24, 2025April 24, 2025 💡 What is the MoSCoW Framework? The MoSCoW method is a prioritization technique used to decide what really matters in a project or product. It groups tasks or requirements into four categories: “MoSCoW” is simply a mnemonic based on the capital letters of each priority category. 📍 When Should You… Continue Reading
decision-frameworks Decision-Making: First Principles – Software Architecture josedacruz, April 21, 2025April 21, 2025 Making architectural decisions in software is often as much about mindset as it is about technology. Too often, teams default to trends, frameworks, or familiar patterns without deeply questioning if they’re truly right for the problem at hand. That’s where First Principles Thinking becomes a game-changer. What Is First Principles… Continue Reading
Systems Thinking Thinking in Systems – An Introduction josedacruz, April 20, 2025April 20, 2025 Welcome to a practical and eye-opening introduction to Thinking in Systems — a powerful way to understand and navigate complexity in your daily life, work, and projects. In this video, you’ll discover:✅ What a system really is (it’s more than just tech)✅ The 3 essential parts of any system: Elements,… Continue Reading
life-improvement Plan Before You Act josedacruz, April 1, 2025April 1, 2025 Plan Before You Act – Proverbs 21:5 📖 “The plans of the diligent lead surely to abundance, but everyone who is hasty comes only to poverty.” (Proverbs 21:5) Why Is Planning Important? 🤔 Planning ahead provides clarity, direction, and efficiency. When we take the time to carefully map out our… Continue Reading