2024  5

February  1

Event Storm To Software Design

February 1, 2024 · 11 min

January  4

Clarifying Event Storms with Data Models

January 26, 2024 · 7 min

Ionide - Merging diverse data sources

January 18, 2024 · 6 min

Gotchas Implementing Debugging for Ionide

January 11, 2024 · 2 min

Improving the Ionide TRX Parsing Performance

January 5, 2024 · 2 min

2023  58

December  4

Refactoring for Information Hiding - Ionide Case Study - Run Project

December 28, 2023 · 16 min

Refactoring for Information Hiding - Ionide Case Study - Getting Acquainted

December 21, 2023 · 7 min

Ionide Test Explorer Contribution

December 14, 2023 · 4 min

Hill Charts

December 8, 2023 · 2 min

November  5

Shape Up - Importance of Small Teams

November 30, 2023 · 3 min

Pitches Separate Concerns For Cross-level Coordination

November 24, 2023 · 7 min

Kinds of Concreteness in Work Specification

November 17, 2023 · 5 min

Appetite - Flipping the estimation game

November 9, 2023 · 2 min

Educational Methods to SWEBOK Knowledge Areas Matrix

November 2, 2023 · 4 min

October  4

Reading Review - SWEBOK 4 and Engineering Training

October 26, 2023 · 2 min

Picard-style Conflict Resolution

October 20, 2023 · 3 min

Pact.io and Consumer-Driven Contracts

October 12, 2023 · 3 min

Event Storming Interaction-heavy Flows

October 5, 2023 · 5 min

September  5

The PR PR

September 29, 2023 · 2 min

Datomic vs EventStore

September 22, 2023 · 7 min

Resemblance and Likeness Testing Patterns

September 15, 2023 · 5 min

Event Modeling and Business Differentiation

September 10, 2023 · 4 min

Reading Review - Never Split the Difference

September 4, 2023 · 3 min

August  4

External-dependency NPS

August 25, 2023 · 1 min

Seeding Standards and Measuring Development Outcomes

August 20, 2023 · 4 min

Notedown Library Now Available

August 10, 2023 · 3 min

AI isn’t an Existential Threat to Programmers

August 3, 2023 · 2 min

July  4

Urban Planning Metaphor for Software Architecture

July 28, 2023 · 1 min

Picard-style Leadership

July 21, 2023 · 3 min

Differentiating Commands and Events

July 13, 2023 · 3 min

Curiosity as a Driver of Leadership Skills

July 6, 2023 · 4 min

June  5

Domain-Driven Design and Volatility-based Decomposition Are Inseparable

June 30, 2023 · 4 min

Reading Review: Scaling Architecture Conversationally

June 23, 2023 · 2 min

Socratic Method, Leading, and Caring

June 16, 2023 · 3 min

Sub-Domains That Follow the Single Responsibility Principle

June 12, 2023 · 2 min

Scala and C# Approaches to Union Types

June 1, 2023 · 3 min

May  4

F# Sneaky Construction vs Initialization Issue

May 25, 2023 · 5 min

Data Inheritance is Unnecessary

May 18, 2023 · 3 min

Evolving Test Data Arrangement

May 11, 2023 · 12 min

Footwork for Developers

May 5, 2023 · 2 min

April  4

Should tests be Pure?

April 27, 2023 · 5 min

Late-bound inheritance vs Function Composition

April 20, 2023 · 4 min

Concise Notation Matters

April 16, 2023 · 6 min

Design-by-Contract vs Type-driven Constraints

April 7, 2023 · 4 min

March  11

Architecture - Facilitated over Separated

March 30, 2023 · 4 min

Clear Observability Terms

March 24, 2023 · 1 min

Smooth iteration over improved prediction

March 16, 2023 · 4 min

Revisiting iDesign and Clean Architecture Merge

March 10, 2023 · 6 min

Open-Closed Principle by Example: Introduction to OCP

March 2, 2023 · 3 min

Open-Closed Principle by Example: Flexibility Through Data

March 2, 2023 · 7 min

Open-Closed Principle by Example: Callbacks & Handlers

March 2, 2023 · 6 min

Open-Closed Principle by Example: Interchangable Implementations

March 2, 2023 · 6 min

Open-Closed Principle by Example: OCP as Architecture

March 2, 2023 · 9 min

Open-Closed Principle by Example: Anti-Examples

March 2, 2023 · 3 min

Open-Closed Principle by Example: Conclusion

March 2, 2023 · 2 min

February  4

Why callers own abstractions

February 24, 2023 · 8 min

Decreasing Defect Funnel

February 17, 2023 · 4 min

What fails and what to test

February 10, 2023 · 2 min

Common Software Design Terms

February 3, 2023 · 8 min

January  4

Progress Journals

January 27, 2023 · 3 min

Assessing Understanding with Unit tests

January 20, 2023 · 4 min

Measuring Principles

January 13, 2023 · 2 min

Are principles SMART?

January 6, 2023 · 3 min

2022  61

December  9

SOLID vs SPNC

December 29, 2022 · 3 min

SOLID is a toolbox for Conceptual Scope

December 23, 2022 · 2 min

Pure Domains Make Scalable Systems: Intro

December 16, 2022 · 4 min

Pure Domains Make Scalable Systems: Maximize Tooling

December 16, 2022 · 3 min

Pure Domains Make Scalable Systems: Intelligent Concurrency

December 16, 2022 · 2 min

Pure Domains Make Scalable Systems: Batching and Nesting

December 16, 2022 · 3 min

Pure Domains Make Scalable Systems: Downsides & Conclusion

December 16, 2022 · 2 min

Properties of Self-Documenting Code

December 9, 2022 · 5 min

Checklists Distribute Power

December 4, 2022 · 3 min

November  4

Duck Structure Update

November 25, 2022 · 8 min

Activity-based Developer Checklist

November 17, 2022 · 2 min

Stuckness and Ducks

November 11, 2022 · 2 min

Made some reading lists

November 3, 2022 · 1 min

October  4

Five Foundational Beliefs: Origins

October 27, 2022 · 2 min

Five Foundational Beliefs

October 21, 2022 · 6 min

If I could only have one guideline

October 16, 2022 · 2 min

Google DORA: Objective Developer Practice Research

October 7, 2022 · 1 min

September  5

Code That Fits in Your Head Practices are Stable Incremental and Additive

September 29, 2022 · 2 min

Code That Fits in Your Head: Mental Models

September 22, 2022 · 4 min

Development Drivers

September 15, 2022 · 2 min

Book Review: Code That Fits in Your Head

September 9, 2022 · 2 min

Book Review: The Annotated Turing

September 1, 2022 · 2 min

August  5

Introducing FsSpec

August 25, 2022 · 5 min

Performance as a Domain Property

August 19, 2022 · 2 min

Normalizing Boolean Expressions for Programmatic Inspection

August 12, 2022 · 6 min

Is Clojure Spec a dependant type system?

August 5, 2022 · 2 min

Pitfalls of Spec-based Random Testing

August 1, 2022 · 4 min

July  4

Proof-Oriented Programming

July 22, 2022 · 2 min

C# Records Compare Private Members

July 15, 2022 · 1 min

Constrained Types without Exceptions

July 8, 2022 · 3 min

Dependency Inversion > Dependency Injection

July 3, 2022 · 7 min

June  9

Misconception: Constructor Injection Exposes Dependency Chains

June 24, 2022 · 4 min

What’s your Duck: Series Intro

June 16, 2022 · 1 min

What’s your Duck: Software as Clarity

June 16, 2022 · 4 min

What’s your Duck: The Design Tree and Incremental Progress

June 16, 2022 · 5 min

What’s your Duck: Ducks

June 16, 2022 · 3 min

What’s your Duck: Stage-specifc questions

June 16, 2022 · 4 min

What’s your Duck: Conclusion

June 16, 2022 · 2 min

Better Software Interviews with Defect Detection

June 12, 2022 · 7 min

Automated Random Testing and Improved Completeness

June 3, 2022 · 5 min

May  4

Union-based Result Types in C#

May 29, 2022 · 3 min

Tests as Values

May 20, 2022 · 5 min

TestApi and Test Reuse in C#

May 16, 2022 · 5 min

Why No Traits (late-bound inheritance) in F#

May 6, 2022 · 3 min

April  5

Small Quibble with The Great Rewriting in Rust

April 29, 2022 · 3 min

Continuous Integration and Refactoring: How to constructively develop against a single branch

April 24, 2022 · 3 min

Value Objects and Reuse

April 15, 2022 · 5 min

Safe Refactoring with Scientist

April 8, 2022 · 2 min

A Few Logging Ideas

April 1, 2022 · 2 min

March  4

UI Mutation and Generative Testing Update

March 27, 2022 · 3 min

Levels of Developer Documentation

March 18, 2022 · 2 min

Small Teaching Review

March 7, 2022 · 6 min

Progressive Design

March 4, 2022 · 4 min

February  4

Process Quality Drivers: Stable, Incremental, Additive

February 25, 2022 · 6 min

Programming is Problem Modeling

February 18, 2022 · 7 min

Pull Request Checklist

February 11, 2022 · 4 min

Case for Static Class Extension in C#

February 3, 2022 · 3 min

January  4

Test Case Selection Guide

January 28, 2022 · 4 min

Development Cycles Checklist

January 21, 2022 · 6 min

SWEBOK Key Definitions

January 14, 2022 · 9 min

Qualities of a Good Dev Environment

January 7, 2022 · 3 min

2021  60

December  5

Foundation of Software Measurement

December 31, 2021 · 2 min

Why Sprints Should Be Stable

December 24, 2021 · 2 min

Private Implementations for Public Use is a Smell

December 19, 2021 · 2 min

Gherkin-named Tests as Low-bar Acceptance Tests

December 12, 2021 · 2 min

What Tests Measure

December 5, 2021 · 6 min

November  4

Governance is a mine of Quality techniques

November 26, 2021 · 3 min

Dotnet SDK Contribution Tips

November 19, 2021 · 2 min

BDD Pushes the right extensibility

November 12, 2021 · 1 min

Thoughts on Acceptance Test Logistics

November 5, 2021 · 4 min

October  5

Efficient Inter-Team Contracts with Acceptance Tests

October 31, 2021 · 4 min

Theory: Dependency Injection Scheme is Determined by Responsibility Layer

October 24, 2021 · 3 min

State Machines and Interpreters are Equivalent

October 15, 2021 · 2 min

Test Api in F# Improved

October 8, 2021 · 5 min

Program Structure is not File Structure

October 1, 2021 · 6 min

September  3

Clojure Namespaces Inhibit Code Grouping

September 24, 2021 · 4 min

Macros are not a clear win

September 17, 2021 · 4 min

Implicit Fundamentals

September 10, 2021 · 2 min

August  5

Test Types and Lifecycle Phases

August 30, 2021 · 5 min

SWEBOK: Modified software Concept Map

August 27, 2021 · 2 min

Lifecycle Artifacts and Cross-Cutting Concerns

August 20, 2021 · 5 min

Software Engineering as Problem Translation

August 13, 2021 · 3 min

SWEBOK: Hierarchy of chapters

August 8, 2021 · 2 min

July  5

Reading Review: Software Engineering Body of Knowledge

July 30, 2021 · 5 min

Hypothesis: Statistical and Mutation Testing are Achievable for Visual UI Testing

July 25, 2021 · 4 min

Sharp-Dressed Code

July 16, 2021 · 4 min

Patterns in practice

July 9, 2021 · 3 min

Reading Review: Professional Software Development

July 2, 2021 · 4 min

June  3

Pros and cons of REPL-centered development

June 19, 2021 · 2 min

Gherkin vs Test API

June 11, 2021 · 4 min

Getting started with Gherkin

June 4, 2021 · 3 min

May  4

Event Stores: An Advance in Data Safety

May 28, 2021 · 3 min

Duck Structure

May 21, 2021 · 6 min

Lessons From Clojure

May 14, 2021 · 3 min

DDD Reading Review

May 7, 2021 · 5 min

April  5

The Place for Ambient Context

April 30, 2021 · 3 min

Design and Requirements as Negotiation

April 23, 2021 · 4 min

Static Member Enums Update

April 16, 2021 · 2 min

Progressive Modeling with Events, Transforms, and State

April 9, 2021 · 10 min

Functional Programming is a lasting way forward

April 2, 2021 · 2 min

March  4

Union Types in C#

March 26, 2021 · 4 min

Quantifying Communication From Customer to Code

March 19, 2021 · 5 min

Service Locator Hides Circular References

March 12, 2021 · 3 min

Notes as Data

March 5, 2021 · 6 min

February  12

Test Api in F#

February 26, 2021 · 6 min

Building a Monad Intuition

February 19, 2021 · 7 min

Learning Principles

February 12, 2021 · 2 min

Knowledge Types and Mastery

February 12, 2021 · 4 min

Prior Knowledge

February 12, 2021 · 2 min

Knowledge Organization

February 12, 2021 · 2 min

Practice & Feedback

February 12, 2021 · 2 min

Motivation and Goals

February 12, 2021 · 2 min

Climate

February 12, 2021 · 3 min

Self-learning

February 12, 2021 · 2 min

Key Dimensions of Control

February 12, 2021 · 2 min

Functional Guided Reader

February 8, 2021 · 7 min

January  5

Going Fast is Going Well

January 29, 2021 · 2 min

Aspect-Orientation Update for C# 9

January 22, 2021 · 1 min

Result-type Update for C# 9

January 15, 2021 · 3 min

Id Abstractions Update for C# 9

January 10, 2021 · 3 min

Accessors: Services, Not Servants

January 1, 2021 · 15 min

2020  27

December  4

Incremental Accessors

December 25, 2020 · 2 min

Ports and Adapters

December 19, 2020 · 4 min

The Power of a Limited Toolset

December 13, 2020 · 4 min

Predictability and Correlated Type Systems

December 4, 2020 · 5 min

November  4

Schema and Selection

November 27, 2020 · 6 min

Meta-Programming and Type Dynamics

November 20, 2020 · 3 min

The Cycles of TDD Diagram

November 13, 2020 · 1 min

Id Abstractions

November 7, 2020 · 3 min

October  5

Result Types

October 30, 2020 · 11 min

Type Safety with Multiple Valid Input Types

October 22, 2020 · 4 min

Functional Composition, Decorator, and Aspect-Oriented Programming

October 16, 2020 · 7 min

Service-Orientation and Functional Programming

October 8, 2020 · 4 min

What’s Your Duck?

October 2, 2020 · 5 min

September  4

Language Limited Thought

September 24, 2020 · 3 min

Clean Architecture+: Check-in and Benefits

September 17, 2020 · 7 min

Async Task Refactor Case Study

September 11, 2020 · 6 min

System Language

September 4, 2020 · 6 min

August  4

Chat Library Case Study: Open-Closed Application

August 28, 2020 · 4 min

Test Api In Practice

August 21, 2020 · 6 min

Notification Refactor Case Study

August 14, 2020 · 7 min

Why Static Structs are Better Than Enums

August 7, 2020 · 6 min

July  5

Rediscovering Options - Design Matrix

July 31, 2020 · 5 min

Rediscovering Options

July 24, 2020 · 10 min

Righting Software - Project Design Summary

July 16, 2020 · 12 min

Synthesizing Project Organization Methods

July 10, 2020 · 3 min

Righting Software Visual Summary

July 3, 2020 · 2 min

June  1

Splitting Architecture

June 15, 2020 · 4 min

2018  11

December  3

Technical Collaboration

December 15, 2018 · 4 min

Spec Docs

December 8, 2018 · 6 min

Agile

December 2, 2018 · 6 min

November  3

Requirements

November 25, 2018 · 5 min

Iteration

November 15, 2018 · 4 min

Tools

November 6, 2018 · 5 min

October  4

Test-Centered Development

October 29, 2018 · 4 min

Patterns

October 24, 2018 · 4 min

Self-Documenting Code

October 16, 2018 · 4 min

Semantic Naming

October 1, 2018 · 4 min

September  1

Scientific Debugging

September 23, 2018 · 5 min