Tags .NET Case for Static Class Extension in C# February 3, 2022 Dotnet SDK Contribution Tips November 19, 2021 AOP Aspect-Orientation Update for C# 9 January 22, 2021 Async Task Refactor Case Study September 11, 2020 Acceptance Tests Thoughts on Acceptance Test Logistics November 5, 2021 Efficient Inter-Team Contracts with Acceptance Tests October 31, 2021 Agile Why Sprints Should Be Stable December 24, 2021 Spec Docs December 8, 2018 Agile December 2, 2018 Architecture Progressive Design March 4, 2022 DDD Reading Review May 7, 2021 Accessors: Services, Not Servants January 1, 2021 Incremental Accessors December 25, 2020 Ports and Adapters December 19, 2020 Clean Architecture+: Check-in and Benefits September 17, 2020 Async Task Refactor Case Study September 11, 2020 System Language September 4, 2020 Notification Refactor Case Study August 14, 2020 Why Static Structs are Better Than Enums August 7, 2020 Rediscovering Options - Design Matrix July 31, 2020 Rediscovering Options July 24, 2020 Righting Software - Project Design Summary July 16, 2020 Righting Software Visual Summary July 3, 2020 Splitting Architecture June 15, 2020 Aspect-Orientated Programming Aspect-Orientation Update for C# 9 January 22, 2021 BDD Gherkin-named Tests as Low-bar Acceptance Tests December 12, 2021 BDD Pushes the right extensibility November 12, 2021 Thoughts on Acceptance Test Logistics November 5, 2021 Efficient Inter-Team Contracts with Acceptance Tests October 31, 2021 Test Api in F# Improved October 8, 2021 Gherkin vs Test API June 11, 2021 Getting started with Gherkin June 4, 2021 Quantifying Communication From Customer to Code March 19, 2021 Behavior Driven Development Gherkin-named Tests as Low-bar Acceptance Tests December 12, 2021 Best Practice Qualities of a Good Dev Environment January 7, 2022 Book Review DDD Reading Review May 7, 2021 Key Dimensions of Control February 12, 2021 Self-learning February 12, 2021 Climate February 12, 2021 Motivation and Goals February 12, 2021 Practice & Feedback February 12, 2021 Knowledge Organization February 12, 2021 Prior Knowledge February 12, 2021 Knowledge Types and Mastery February 12, 2021 Learning Principles February 12, 2021 C# TestApi and Test Reuse in C# May 16, 2022 Case for Static Class Extension in C# February 3, 2022 Union Types in C# March 26, 2021 C# 9 Static Member Enums Update April 16, 2021 Aspect-Orientation Update for C# 9 January 22, 2021 Result-type Update for C# 9 January 15, 2021 Id Abstractions Update for C# 9 January 10, 2021 Case Study Async Task Refactor Case Study September 11, 2020 Chat Library Case Study: Open-Closed Application August 28, 2020 Notification Refactor Case Study August 14, 2020 Why Static Structs are Better Than Enums August 7, 2020 Rediscovering Options July 24, 2020 Checklist Pull Request Checklist February 11, 2022 Development Cycles Checklist January 21, 2022 Clean Architecture Accessors: Services, Not Servants January 1, 2021 Incremental Accessors December 25, 2020 Ports and Adapters December 19, 2020 Clean Architecture+: Check-in and Benefits September 17, 2020 Clojure Program Structure is not File Structure October 1, 2021 Clojure Namespaces Inhibit Code Grouping September 24, 2021 Macros are not a clear win September 17, 2021 Pros and cons of REPL-centered development June 19, 2021 Lessons From Clojure May 14, 2021 Code Style Self-Documenting Code October 16, 2018 Semantic Naming October 1, 2018 Collaboration Technical Collaboration December 15, 2018 Composition Tests as Values May 20, 2022 Why No Traits (late-bound inheritance) in F# May 6, 2022 Concept Map Reading Review: Professional Software Development July 2, 2021 Configuration Rediscovering Options - Design Matrix July 31, 2020 Rediscovering Options July 24, 2020 Construction Sharp-Dressed Code July 16, 2021 Iteration November 15, 2018 Tools November 6, 2018 Test-Centered Development October 29, 2018 Patterns October 24, 2018 Self-Documenting Code October 16, 2018 Semantic Naming October 1, 2018 Scientific Debugging September 23, 2018 Continuous Integration Continuous Integration and Refactoring: How to constructively develop against a single branch April 24, 2022 Critical Thinking Development Cycles Checklist January 21, 2022 Qualities of a Good Dev Environment January 7, 2022 DDD Gherkin vs Test API June 11, 2021 Getting started with Gherkin June 4, 2021 DDD Reading Review May 7, 2021 Righting Software - Project Design Summary July 16, 2020 Righting Software Visual Summary July 3, 2020 Splitting Architecture June 15, 2020 DI Theory: Dependency Injection Scheme is Determined by Responsibility Layer October 24, 2021 Database Event Stores: An Advance in Data Safety May 28, 2021 Debugging Scientific Debugging September 23, 2018 Decorator Async Task Refactor Case Study September 11, 2020 Dependency Injection Theory: Dependency Injection Scheme is Determined by Responsibility Layer October 24, 2021 Service Locator Hides Circular References March 12, 2021 Dependency Inversion Private Implementations Public Use Smell December 19, 2021 Deployment Qualities of a Good Dev Environment January 7, 2022 Tools November 6, 2018 Design Implicit Fundamentals September 10, 2021 Software Engineering as Problem Translation August 13, 2021 The Power of a Limited Toolset December 13, 2020 Design Patterns The Place for Ambient Context April 30, 2021 Service Locator Hides Circular References March 12, 2021 Building a Monad Intuition February 19, 2021 Design Process Lifecycle Artifacts and Cross-Cutting Concerns August 20, 2021 Software Engineering as Problem Translation August 13, 2021 Duck Structure May 21, 2021 Design and Requirements as Negotiation April 23, 2021 Design Smells Private Implementations Public Use Smell December 19, 2021 Design Theory Synthesizing Project Organization Methods July 10, 2020 Design Thinking Progressive Design March 4, 2022 Process Quality Drivers: Stable, Incremental, Additive February 25, 2022 Programming is Problem Modeling February 18, 2022 Design and Requirements as Negotiation April 23, 2021 Going Fast is Going Well January 29, 2021 Id Abstractions November 7, 2020 Result Types October 30, 2020 Type Safety with Multiple Valid Input Types October 22, 2020 Functional Composition, Decorator, and Aspect-Oriented Programming October 16, 2020 Service-Orientation and Functional Programming October 8, 2020 Language Limited Thought September 24, 2020 Synthesizing Project Organization Methods July 10, 2020 Design thinking The Cycles of TDD Diagram November 13, 2020 What’s Your Duck? October 2, 2020 Clean Architecture+: Check-in and Benefits September 17, 2020 Async Task Refactor Case Study September 11, 2020 System Language September 4, 2020 Chat Library Case Study: Open-Closed Application August 28, 2020 Test Api In Practice August 21, 2020 Notification Refactor Case Study August 14, 2020 Why Static Structs are Better Than Enums August 7, 2020 Rediscovering Options - Design Matrix July 31, 2020 Rediscovering Options July 24, 2020 Dev Essentials Technical Collaboration December 15, 2018 Spec Docs December 8, 2018 Agile December 2, 2018 Requirements November 25, 2018 Iteration November 15, 2018 Tools November 6, 2018 Test-Centered Development October 29, 2018 Patterns October 24, 2018 Self-Documenting Code October 16, 2018 Semantic Naming October 1, 2018 Scientific Debugging September 23, 2018 Documentation Levels of Developer Documentation March 18, 2022 Self-Documenting Code October 16, 2018 Domain Driven Design Value Objects and Reuse April 15, 2022 Progressive Modeling with Events, Transforms, and State April 9, 2021 Domain Modeling DDD Reading Review May 7, 2021 Duck Docs Duck Structure May 21, 2021 Duck docs Development Cycles Checklist January 21, 2022 Eductation Small Teaching Review March 7, 2022 Event Sourcing Event Stores: An Advance in Data Safety May 28, 2021 Events Progressive Modeling with Events, Transforms, and State April 9, 2021 Example-Based testing Quantifying Communication From Customer to Code March 19, 2021 Expecto Tests as Values May 20, 2022 F# Why No Traits (late-bound inheritance) in F# May 6, 2022 Small Quibble with The Great Rewriting in Rust. April 29, 2022 Theory: Dependency Injection Scheme is Determined by Responsibility Layer October 24, 2021 Test Api in F# Improved October 8, 2021 Program Structure is not File Structure October 1, 2021 Clojure Namespaces Inhibit Code Grouping September 24, 2021 Test Api in F# February 26, 2021 Functional Guided Reader February 8, 2021 Functional Lessons From Clojure May 14, 2021 Functional Programming Progressive Modeling with Events, Transforms, and State April 9, 2021 Functional Programming is a lasting way forward April 2, 2021 Union Types in C# March 26, 2021 Building a Monad Intuition February 19, 2021 Id Abstractions November 7, 2020 Result Types October 30, 2020 Type Safety with Multiple Valid Input Types October 22, 2020 Functional Composition, Decorator, and Aspect-Oriented Programming October 16, 2020 Service-Orientation and Functional Programming October 8, 2020 Language Limited Thought September 24, 2020 Fundamentals Implicit Fundamentals September 10, 2021 Generative testing Quantifying Communication From Customer to Code March 19, 2021 Gherkin Gherkin vs Test API June 11, 2021 Getting started with Gherkin June 4, 2021 Governance Governance is a mine of Quality techniques November 26, 2021 Guided Reader Functional Guided Reader February 8, 2021 IDesign Accessors: Services, Not Servants January 1, 2021 Incremental Accessors December 25, 2020 Inheritance Why No Traits (late-bound inheritance) in F# May 6, 2022 Integration Qualities of a Good Dev Environment January 7, 2022 Interpreters State Machines and Interpreters are Equivalent October 15, 2021 Iteration Why Sprints Should Be Stable December 24, 2021 Language Design Case for Static Class Extension in C# February 3, 2022 Language Properties Functional Programming is a lasting way forward April 2, 2021 Language properties Predictability and Correlated Type Systems December 4, 2020 Schema and Selection November 27, 2020 Meta-Programming and Type Dynamics November 20, 2020 Languages Id Abstractions November 7, 2020 Result Types October 30, 2020 Type Safety with Multiple Valid Input Types October 22, 2020 Functional Composition, Decorator, and Aspect-Oriented Programming October 16, 2020 Service-Orientation and Functional Programming October 8, 2020 Language Limited Thought September 24, 2020 Layered Architecture Theory: Dependency Injection Scheme is Determined by Responsibility Layer October 24, 2021 Learning Small Teaching Review March 7, 2022 Key Dimensions of Control February 12, 2021 Self-learning February 12, 2021 Climate February 12, 2021 Motivation and Goals February 12, 2021 Practice & Feedback February 12, 2021 Knowledge Organization February 12, 2021 Prior Knowledge February 12, 2021 Knowledge Types and Mastery February 12, 2021 Learning Principles February 12, 2021 Logging A Few Logging Ideas April 1, 2022 Math Building a Monad Intuition February 19, 2021 Measurement What Tests Measure December 5, 2021 Governance is a mine of Quality techniques November 26, 2021 Meta-programming Macros are not a clear win September 17, 2021 Lessons From Clojure May 14, 2021 Methodologies Why Sprints Should Be Stable December 24, 2021 Migrations Safe Refactoring with Scientist April 8, 2022 Monitoring Safe Refactoring with Scientist April 8, 2022 A Few Logging Ideas April 1, 2022 Naming Self-Documenting Code October 16, 2018 Semantic Naming October 1, 2018 Open source Dotnet SDK Contribution Tips November 19, 2021 Open-Closed Principle BDD Pushes the right extensibility November 12, 2021 Chat Library Case Study: Open-Closed Application August 28, 2020 Pair Programming Technical Collaboration December 15, 2018 Patterns Patterns in practice July 9, 2021 Static Member Enums Update April 16, 2021 Ports and Adapters December 19, 2020 Notification Refactor Case Study August 14, 2020 Why Static Structs are Better Than Enums August 7, 2020 Rediscovering Options - Design Matrix July 31, 2020 Rediscovering Options July 24, 2020 Patterns October 24, 2018 Pivotal Insights Id Abstractions November 7, 2020 Result Types October 30, 2020 Type Safety with Multiple Valid Input Types October 22, 2020 Functional Composition, Decorator, and Aspect-Oriented Programming October 16, 2020 Service-Orientation and Functional Programming October 8, 2020 Language Limited Thought September 24, 2020 Splitting Architecture June 15, 2020 Planning Why Sprints Should Be Stable December 24, 2021 Principles Process Quality Drivers: Stable, Incremental, Additive February 25, 2022 Process Levels of Developer Documentation March 18, 2022 Development Cycles Checklist January 21, 2022 Foundation of Software Measurement December 31, 2021 Technical Collaboration December 15, 2018 Spec Docs December 8, 2018 Agile December 2, 2018 Requirements November 25, 2018 Iteration November 15, 2018 Program Structure Program Structure is not File Structure October 1, 2021 Programming Languages Functional Programming is a lasting way forward April 2, 2021 Meta-Programming and Type Dynamics November 20, 2020 Project Management Technical Collaboration December 15, 2018 Spec Docs December 8, 2018 Agile December 2, 2018 Requirements November 25, 2018 Project Structure Synthesizing Project Organization Methods July 10, 2020 Quality Foundation of Software Measurement December 31, 2021 What Tests Measure December 5, 2021 Governance is a mine of Quality techniques November 26, 2021 Thoughts on Acceptance Test Logistics November 5, 2021 Efficient Inter-Team Contracts with Acceptance Tests October 31, 2021 Test Types and Lifecycle Phases August 30, 2021 Lifecycle Artifacts and Cross-Cutting Concerns August 20, 2021 REPL Pros and cons of REPL-centered development June 19, 2021 Readability Patterns October 24, 2018 Self-Documenting Code October 16, 2018 Semantic Naming October 1, 2018 Reading Notes The Power of a Limited Toolset December 13, 2020 The Cycles of TDD Diagram November 13, 2020 What’s Your Duck? October 2, 2020 Righting Software - Project Design Summary July 16, 2020 Righting Software Visual Summary July 3, 2020 Reading Review Small Teaching Review March 7, 2022 Reading Review: Software Engineering Body of Knowledge July 30, 2021 Reading Review: Professional Software Development July 2, 2021 System Language September 4, 2020 Test Api In Practice August 21, 2020 Refactoring Continuous Integration and Refactoring: How to constructively develop against a single branch April 24, 2022 Safe Refactoring with Scientist April 8, 2022 Requirements Going Fast is Going Well January 29, 2021 Retrospective Lessons From Clojure May 14, 2021 Review Technical Collaboration December 15, 2018 Rubber Ducking Duck Structure May 21, 2021 Rust Why No Traits (late-bound inheritance) in F# May 6, 2022 Small Quibble with The Great Rewriting in Rust. April 29, 2022 SCM Lifecycle Artifacts and Cross-Cutting Concerns August 20, 2021 SOLID Chat Library Case Study: Open-Closed Application August 28, 2020 SOLID Structure Accessors: Services, Not Servants January 1, 2021 Incremental Accessors December 25, 2020 Clean Architecture+: Check-in and Benefits September 17, 2020 Async Task Refactor Case Study September 11, 2020 Notification Refactor Case Study August 14, 2020 SWEBOK SWEBOK Key Definitions January 14, 2022 Implicit Fundamentals September 10, 2021 SWEBOK: Modified software Concept Map August 27, 2021 Lifecycle Artifacts and Cross-Cutting Concerns August 20, 2021 Software Engineering as Problem Translation August 13, 2021 SWEBOK: Hierarchy of chapters August 8, 2021 Reading Review: Software Engineering Body of Knowledge July 30, 2021 Scaling Async Task Refactor Case Study September 11, 2020 Self-documenting code Sharp-Dressed Code July 16, 2021 Software Design Progressive Design March 4, 2022 Private Implementations Public Use Smell December 19, 2021 Software Engineering SWEBOK Key Definitions January 14, 2022 Software Engineering Body of Knowledge SWEBOK: Modified software Concept Map August 27, 2021 Software Lifecycle Test Types and Lifecycle Phases August 30, 2021 Sprint Why Sprints Should Be Stable December 24, 2021 State Machines State Machines and Interpreters are Equivalent October 15, 2021 Style Sharp-Dressed Code July 16, 2021 Synthesizing Synthesizing Project Organization Methods July 10, 2020 System Structure Synthesizing Project Organization Methods July 10, 2020 TDD The Cycles of TDD Diagram November 13, 2020 What’s Your Duck? October 2, 2020 Test Api In Practice August 21, 2020 Team Organization Test Types and Lifecycle Phases August 30, 2021 Team Process Thoughts on Acceptance Test Logistics November 5, 2021 Efficient Inter-Team Contracts with Acceptance Tests October 31, 2021 Test Api Test Api in F# February 26, 2021 Test Api In Practice August 21, 2020 Test Selection Test Case Selection Guide January 28, 2022 Test api Test Api in F# Improved October 8, 2021 TestApi TestApi and Test Reuse in C# May 16, 2022 Gherkin-named Tests as Low-bar Acceptance Tests December 12, 2021 Gherkin vs Test API June 11, 2021 Getting started with Gherkin June 4, 2021 Testing Tests as Values May 20, 2022 TestApi and Test Reuse in C# May 16, 2022 UI Mutation and Generative Testing Update March 27, 2022 Test Case Selection Guide January 28, 2022 Gherkin-named Tests as Low-bar Acceptance Tests December 12, 2021 What Tests Measure December 5, 2021 Governance is a mine of Quality techniques November 26, 2021 BDD Pushes the right extensibility November 12, 2021 Test Api in F# Improved October 8, 2021 Test Types and Lifecycle Phases August 30, 2021 Hypothesis: Statistical and Mutation Testing are Achievable for Visual UI Testing July 25, 2021 Pros and cons of REPL-centered development June 19, 2021 Gherkin vs Test API June 11, 2021 Getting started with Gherkin June 4, 2021 Quantifying Communication From Customer to Code March 19, 2021 Test Api in F# February 26, 2021 Test Api In Practice August 21, 2020 Tools November 6, 2018 Test-Centered Development October 29, 2018 Self-Documenting Code October 16, 2018 Theory State Machines and Interpreters are Equivalent October 15, 2021 Tools Foundation of Software Measurement December 31, 2021 Tools November 6, 2018 Traits Why No Traits (late-bound inheritance) in F# May 6, 2022 Type Systems Meta-Programming and Type Dynamics November 20, 2020 Type systems Predictability and Correlated Type Systems December 4, 2020 Schema and Selection November 27, 2020 Type-Driven Development Quantifying Communication From Customer to Code March 19, 2021 UI UI Mutation and Generative Testing Update March 27, 2022 Hypothesis: Statistical and Mutation Testing are Achievable for Visual UI Testing July 25, 2021 Union Types Union Types in C# March 26, 2021 Visual SWEBOK: Modified software Concept Map August 27, 2021 Volatility Analysis Why Static Structs are Better Than Enums August 7, 2020 Rediscovering Options - Design Matrix July 31, 2020 Rediscovering Options July 24, 2020 functional Hypothesis: Statistical and Mutation Testing are Achievable for Visual UI Testing July 25, 2021 Functional Guided Reader February 8, 2021 iDesign Theory: Dependency Injection Scheme is Determined by Responsibility Layer October 24, 2021 Righting Software - Project Design Summary July 16, 2020 Righting Software Visual Summary July 3, 2020 Splitting Architecture June 15, 2020 markdown Notes as Data March 5, 2021 naming Sharp-Dressed Code July 16, 2021 process Notes as Data March 5, 2021 state machines Hypothesis: Statistical and Mutation Testing are Achievable for Visual UI Testing July 25, 2021 tools Notes as Data March 5, 2021