Published onJanuary 7, 2026Consumer-expected, need-driven behavior developmentsoftware-engineeringsoftware-designobject-oriented-designmodularitydesign-patternslanguage-patternssoftware-qualityknowledge-workingmodularitymodular-monolithboundariesbehavior-specificationcollaborationconcurrencyoptimistic-concurrencycomposabilitycollaborative-modellingWhat can we learn from Toyota Production System?
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?
Published onOctober 20, 2025Code, knowledge and "AI"lean-software-developmenttoyota-production-systemknowledge-workingdesign-thinkingsystems-thinkinglanguage-patternsmental-modelssoftware-architecturesoftware-designdomain-driven-designWhat is the relationship between "AI" and waste?
Published onOctober 6, 2025The Inverse Matrix problemdesign-thinkingdomain-driven-designlanguage-patternsdesign-patternssoftware-architecturemental-modelscommunicationknowledge-workingbalancing-couplingcollaborationsoftware-teamingunderstandingAre we trapped in Inversed Matrix?
Published onAugust 22, 2025The ambiguity of architecture decision recordsdesign-thinkingdomain-driven-designlanguage-patternsdesign-patternssoftware-architecturemental-modelscommunicationknowledge-workingbalancing-couplingcollaborationsoftware-teamingunderstandingIs a "decision recording" what we are really looking for?
Published onAugust 7, 2025The knowledge gravity problemdesign-thinkingdomain-driven-designlanguage-patternsdesign-patternsobject-oriented-designfunctional-programmingsoftware-architecturemental-modelscommunicationknowledge-workingbalancing-couplingIs there a force driving our systems towards complexity?
Published onAugust 4, 2025The ambiguity, the curse and the fallacy of domain modeldesign-thinkingdomain-driven-designlanguage-patternsdesign-patternsobject-oriented-designfunctional-programmingsoftware-architecturemental-modelscommunicationknowledge-workingIs it possible to "apply" Entity Component System (ECS) thinking to System Design?
Published onJuly 12, 2025Time, angle and depth: dimensions in software designdesign-thinkingdomain-driven-designlanguage-patternsdesign-patternsobject-oriented-designfunctional-programmingsoftware-architecturemental-modelscommunicationknowledge-workingCan we use physical qualities while reasoning about systems?
Published onJuly 1, 2025Easy will make you dizzy?design-thinkingtoolsdomain-driven-designlanguage-patternsdesign-patternsobject-oriented-designfunctional-programmingsoftware-architecturemental-modelscommunicationknowledge-workingAre we losing something important while getting better tools?
Published onMarch 30, 2025Evolve, don't hackdomain-modelingcontextual-modelsmodelingsoftware-designproblem-spacedomain-driven-designsoftware-architecturestrategic-thinkingbusiness-capabilitiessoftware-designdesign-thinkingknowledge-workingpatternsWhere is the difference between evolving and hacking?
Published onMarch 24, 2025Context Segregation Principledomain-modelingcontextual-modelsmodelingsoftware-designproblem-spacedomain-driven-designsoftware-architecturestrategic-thinkingbusiness-capabilitiessoftware-designdesign-thinkingknowledge-workingpatternsis there a single unified way of looking at reality?
Published onFebruary 10, 2025The ambiguity of problemstheory-of-contraintssoftware-teamingleanthe-goalmodelmodelingmental-modelsrepresentationsknowledge-workingambiguitymisconceptionscodingabstractionslanguageproduct-engineeringWhat if problems whisper to us?
Published onJanuary 3, 2025Functions (and facts) describe the worldmodelmodelingmental-modelsrepresentationsknowledge-workingabstractionsexplorationfsharpfsharp-advent-calendarfunctionalparadigmsstate-machinesevent-sourcingevent-driveneventsevent-stormingdomain-driven-designsoftware-designCan everything be modeled with this pair?
Published onDecember 10, 2024Abstracting over peoplemodelmodelingmental-modelsrepresentationsknowledge-workingambiguitymisconceptionsabstractionslanguagelanguage-patternspeoplewarepeople-skillsteam-buildingleadershipHow to model people?
Published onNovember 12, 2024The ambiguity of objectsmodelmodelingmental-modelsrepresentationsknowledge-workingambiguitymisconceptionscodingabstractionslanguagelanguage-patternsobject-oriented-designmessagingfunctional-designAre objects essentially bad?
Published onSeptember 29, 2024Representing knowledge: what, how and whymodelmodelingdevelopment-processmental-modelsrepresentationsknowledge-workingambiguitymisconceptionscodingabstractionslanguagelanguage-patternsWhat are the different levels of representing knowledge?
Published onSeptember 11, 2024The ambiguity of team workmodelmodelingdevelopment-processmental-modelsrepresentationsleadershipambiguitymisconceptionsknowledgeknowledge-workingHeads or hands?
Published onApril 6, 2024The ambiguity of codeparadigmsdesign-thinkingmodelingdomain-driven-designpatternsknowledge-workingsoftware-architecturesoftware-designinterfacesresponsibilitiesresponsibility-driven-designcodingencodingrepresentationHow do we understand "the code"?
Published onMarch 10, 2024The ambiguity of interfacesparadigmsdesign-thinkingmodelingdomain-driven-designpatternsknowledge-workingsoftware-architecturesoftware-designinterfacesresponsibilitiesresponsibility-driven-designHow does need-driven thinking shape the way we design?
Published onFebruary 29, 2024Inverse Bruce Lee maneuverparadigmsprogramming-modelsdesign-thinkingmodellingdomain-driven-designpatternsknowledge-workingsoftware-architecturesoftware-designHow many kicks should an engineer know?