Published onJanuary 6, 2026The invisible role-switching problem and Need-Driven Designsoftware-engineeringsoftware-designobject-oriented-designmodularitydesign-patternslanguage-patternssoftware-qualityknowledge-workingmodularitymodular-monolithboundariesbehavior-specificationcollaborationconcurrencyoptimistic-concurrencycomposabilitycollaborative-modellingWhat is really challenging in software design?
Published onDecember 9, 2025Bounded contexts: from compile-time hierarchies to runtime compositionsoftware-engineeringsoftware-designobject-oriented-designmodularitydesign-patternslanguage-patternssoftware-qualityknowledge-workingmodularitymodular-monolithboundariesHow to design composable models?
Published onDecember 3, 2025Boundaries, modularity and a diaper effectsoftware-engineeringsoftware-designobject-oriented-designmodularitydesign-patternslanguage-patternssoftware-qualityknowledge-workingmodularitymodular-monolithboundariesWhat is a diaper effect when it comes to software design?
Published onNovember 30, 2025TDD: specify, satisfy, simplifysoftware-engineeringsoftware-designobject-oriented-designmodularitydesign-patternslanguage-patternssoftware-qualityknowledge-workingWhy is it easy to miss the point of TDD?
Published onOctober 27, 2025The ambiguity of namingdesign-thinkingdomain-driven-designlanguage-patternsdesign-patternsobject-oriented-designfunctional-programmingsoftware-architecturemental-modelscommunicationknowledge-workingWhy naming is hard, and can even be dangerous?