Skip to content

XP123

Exploring Extreme Programming

Menu

Primary menu

  • Home
  • Refactoring Workshop
  • Start Here
    • Comics
    • TDD: Test-Driven Development
    • Refactoring
    • User Stories
    • Dungeons & Patterns
  • Update
  • About
  • Contact

Author Archives: Bill Wake

Threaded Code (and Composite)

Posted on March 7, 2024 by Bill Wake

Let’s look at the threaded code approach. It’s a less-well-known way to build an interpreter for a programming language. (The more common approach simulates each instruction.) Threaded code has a high-level analog, and some extra tricks when done in assembly Continue reading Threaded Code (and Composite)→

Posted in xp123.com | Tagged design, programmer, XPlorations

Time Troubles – Transitions

Posted on February 1, 2024 by Bill Wake

Time is a well-known source of trouble for programmers. We looked earlier at one type of time troubles: overflow. Today, I’d like to look at another time trouble: transitions. Here are the problems we’ll see: Simultaneous Transitions Different units of Continue reading Time Troubles – Transitions→

Posted in xp123.com | Tagged programmer, tester, XPlorations

Refactor: Inline-Adjust-Extract

Posted on January 4, 2024 by Bill Wake

Sometimes, we feel that something we extracted isn’t as good as it could be. The Inline-Adjust-Extract refactoring pattern can help fix that. It has three steps: In a sense, this pattern is the opposite of the Isolate-Improve-Inline pattern. That tactic Continue reading Refactor: Inline-Adjust-Extract→

Posted in xp123.com | Tagged programmer, refactoring, XPlorations

Organizing Fields and Methods

Posted on November 2, 2023 by Bill Wake

When you’re making a class, in what order do you put the fields and methods? We’ll look at several choices and some tradeoffs between them. Organizing Fields I’ve seen a few approaches to organizing fields: In C#, Swift, and some Continue reading Organizing Fields and Methods→

Posted in xp123.com | Tagged design, programmer, XPlorations

Reduce Dependencies Using Lambda

Posted on October 5, 2023 by Bill Wake

When A depends on B (A → B), a change in B may force A to change as well. Dependencies are both good and bad: they let objects work together, but they make software harder to change. We can use Continue reading Reduce Dependencies Using Lambda→

Posted in xp123.com | Tagged design, programmer, refactoring, XPlorations

Iterative Enhancement and XP-Style Design

Posted on September 7, 2023 by Bill Wake

“Iterative Enhancement” is a model for iterative development, from Basili & Turner, described in 1975 (!). We’ll look at it, and compare it to XP’s approach. I’ve seen occasional mention of this paper in people writing about evolutionary design or Continue reading Iterative Enhancement and XP-Style Design→

Posted in xp123.com | Tagged agile, design, programmer, XPlorations

Extension Methods for TDD

Posted on August 3, 2023 by Bill Wake

Some languages (e.g., Swift, C#, Java) support extension methods. These let you add new methods to an existing class, even a system class. Extension methods support testing by providing convenient improvements in control and visibility. Extension Methods I’ll show Swift Continue reading Extension Methods for TDD→

Posted in xp123.com | Tagged programmer, tdd, XPlorations

Observe and Control Objects – TDD Patterns

Posted on July 6, 2023 by Bill Wake

An object holds state, and you observe and control it (or both) through its public fields or methods. We’ll look at techniques you can use when an object provides no direct way to observe or control it the way a Continue reading Observe and Control Objects – TDD Patterns→

Posted in xp123.com | Tagged design, programmer, tdd, XPlorations

Code That Writes Code Needs Multi-Level Tests

Posted on June 1, 2023 by Bill Wake

Code that writes code is fun in a meta sort of way, but it requires extra testing. We’ll start by considering generic systems and their tests, then look at testing for code generation.  “I’d rather write programs to write programs Continue reading Code That Writes Code Needs Multi-Level Tests→

Posted in xp123.com | Tagged design, programmer, tdd, XPlorations

A Product Owner Can’t Own a Black Box

Posted on May 4, 2023 by Bill Wake

A user can treat a product as a black box – “I like what it does, even though I don’t know how it works.” A product owner doesn’t have that luxury. Friend 1 – That’s a big trip you’re planning Continue reading A Product Owner Can’t Own a Black Box→

Posted in xp123.com | Tagged customer, product owner, XPlorations

Post navigation

← Older posts
Newer posts →

Primary Sidebar Widget Area

Stay Up-to-Date

If you'd like to hear when articles come out, sign up today!

|●  Become a Patron!

Recent Posts

  • AAA and the Object Lifecycle
  • “Test Interface, Not Implementation”
  • How to Reduce Coupling, Three Ways
  • Reordering Items, Four Ways
  • And-Or Trees
  • Run Tests Without an App — Step by Step with Xcode
  • Swift Testing – A New Unit Testing Framework
  • TDD with a Function Pipeline
  • Trees – Confidence in Design
  • Pipelines – Confidence in Design

Tags

agile analysis atdd author business charts classic coach computers conference cool customer design economics fiction games HCI history improv integration interesting intro Java job aids language lean learning metaphor music myth patterns planning programmer refactoring resources reviews scrum software spreadsheet stories tdd team tester training XPlorations

Archives

counter for wordpress
Copyright © 2026 XP123. All Rights Reserved.
Theme: Catch Box by Catch Themes
Scroll Up