Quantcast
Channel: XPlorations Archives - XP123
Browsing all 118 articles
Browse latest View live

Image may be NSFW.
Clik here to view.

Trailblaze and Pave – TDD Patterns

Sometimes, TDD goes smoothly from story to story, or micro-story to micro-story. Other times, we aren’t clear how to proceed, and do a spike. But there’s a third approach I use occasionally, when I’m...

View Article


Image may be NSFW.
Clik here to view.

Who is the Customer?

It’s easy to throw around terms like Customer and User, but what do they mean? They’re actually complex concepts, and our goal for stories is sometimes not for the user’s direct benefit. Customers are...

View Article


Image may be NSFW.
Clik here to view.

Disaster Strikes! A Design Dead End

In incremental development, we grow a system by adding capabilities one at a time. Our bet is that we won’t often hit a dead end, but if we do, the time we’ve already saved will let us dig our way...

View Article

Image may be NSFW.
Clik here to view.

Errors and Exceptions – TDD Patterns

In a perfect world, we don’t have to worry about errors. That’s not this world, however. Here, handling errors can easily be half the effort of doing things. We’ll look at a basic test structure,...

View Article

Image may be NSFW.
Clik here to view.

Tree-Like Objects – TDD Patterns

When you have hierarchical information, a tree is a natural representation. We’ll look at ways to test-drive trees and their close variants. Trees A tree consists of nodes which may have child nodes....

View Article


Image may be NSFW.
Clik here to view.

Set-Like Objects – TDD Patterns

Sets are fundamental in mathematics — and programming. We’ll look at some considerations when using Test-Driven Development (TDD) for set-like objects. This is the last in a series of articles...

View Article

Half-Waterfall: Extra Cost, Uncertain Benefits

Would-be agile teams sometimes get stuck in half-waterfall, a combination of waterfall and agile. Half-waterfall has the costs of both agile and waterfall approaches, but may not get enough benefit to...

View Article

Image may be NSFW.
Clik here to view.

Input Validation – TDD Patterns

Input validation is the process of checking that an input value is legal according to some set of rules. We’ll look at some considerations of developing such code. Validation and Normalization...

View Article


Image may be NSFW.
Clik here to view.

The Gerrymander Game – Part 1, Puzzle

A few weeks ago, Mike Hill published this tweet: “q: how many ways are there to partition a 5×5 tile square into 5 pieces, each containing 5 orthogonally contiguous tiles?”...

View Article


Image may be NSFW.
Clik here to view.

The Gerrymander Game – Part 2, TDD

I implemented the core of the gerrymandering game using TDD, and it was a challenge. Why? Because I didn’t know in advance how to solve it.  My Overall Strategy To make the gerrymandering game, I had...

View Article

Limiting Beliefs About Evolutionary Design

Evolutionary design works by growing a system one capability at a time, keeping the design just sufficient for the system so far. As needs change, the system evolves to meet them. Evolutionary design...

View Article

Authorization – TDD Patterns

Authorization is the process of deciding whether to allow a user can access or use some resource. (Don’t confuse it with authentication, the process of deciding whether a user is who they claim to...

View Article

Image may be NSFW.
Clik here to view.

Reversible, Incremental Data Structures

Objects usually track state, but you can instead track history and derive the current state from the history. (For example, databases blend both modes behind the scenes.) Why might history be helpful?...

View Article


Image may be NSFW.
Clik here to view.

Science-Intensive Apps: Handle with Care

A visualization of two fluids mixing. Public domain. A certain type of science-intensive application only has a few (or even no) control parameters. It is usually driven by a “big data” analysis. The...

View Article

Image may be NSFW.
Clik here to view.

Revise Tests While Refactoring? It Depends

Some refactorings (e.g., Extract Method or Extract Class) introduce new elements. Should you revise the tests to take these into account? The classic consultant’s answer applies: It depends. The...

View Article


Image may be NSFW.
Clik here to view.

Testing Objects and Relationships

Since Source Email Address Content Upgrades INVEST-ebook Testing-Graphics-Summary TDD-Impact-Calculator S-Curve Intensifying-Stories Refactorings-for-Conditionals DeliveryStrategies...

View Article

Avoid Irrelevant Symmetry!

When we create test data in TDD, we do it to drive out new capabilities. But all test data is not of the same value. If your data has the wrong symmetry, it can mislead you about what’s working....

View Article


Forgotten Stories

When we’re creating or extending systems, there’s often one type of user that’s our main focus. We often have no trouble thinking up capabilities they need. But other types of users are often...

View Article

Image may be NSFW.
Clik here to view.

Ohio Scientific and Commodore 64 Environments

Environments vary substantially between computers, so you’ll often see environment-specific code hidden in the PEEKs and POKEs of old BASIC programs.  We’ll take a brief tour of the Ohio Scientific...

View Article

All You Need is INVEST? No!

I developed the INVEST model years ago to help someone (and then many people) think about the user stories they were creating. Is INVEST all you need to create good stories? Unfortunately, no. INVEST...

View Article
Browsing all 118 articles
Browse latest View live