Archive

All posts

Everything I've written, newest first.

November 24, 201811 min

Long live legacy!

Legacy software that still pays the bills is a lucky thing to have. Where the pain comes from, why rewriting is rarely the answer, and three anti-corruption layer strategies for growing new software around the old.

July 2, 20189 min

Measure more, suffer less

Three questions for basing development decisions on data instead of hunches, with examples from a Big Brother website, a legacy product, a slow CI pipeline, and cloud bills.

December 3, 20175 min

Remembering what this is about

Dusting off the blog to look back on a year of personal and job changes, joining the Agile Spain board, far too many events, and plans for 2018.

June 14, 201712 min

Object-disoriented

Using an object-oriented language doesn't mean we're doing object-oriented programming. The common ways we get it wrong, where they come from, and what I keep in mind to avoid them.

January 19, 20174 min

Messages, classes and inheritance

Message passing as the heart of Alan Kay's object-oriented programming, the kinds of messages objects exchange, and a quick note on classes as blueprints for objects.

January 9, 20174 min

Rediscovering object-oriented programming

How my idea of object-oriented programming moved past the classic mantras of classes, encapsulation, inheritance and polymorphism, and why nobody quite agrees on what OOP is.

December 1, 20167 min

The learning path

How, what, and with whom to learn once your career has started, from Shuhari and an overflowing cup of tea to mentors, kindred spirits, and choosing the right company.

November 10, 20165 min

The boy scout rule

Leaving the code a little better with every story and bug fix beats piling up technical debt, plus some thoughts on simple design and the cost of undoing.

October 14, 20164 min

New challenges

A personal look back at two years with Codesai on a project in Las Palmas, thanks to the people who made it special, and why I'm moving on.

August 2, 20165 min

How much does calling a method cost?

BenchmarkDotNet measurements of direct, virtual, interface, abstract class, and reflection method calls in .NET, and what the nanosecond differences look like.

June 13, 20166 min

Cursed words

From "extreme" programming to freelance to Software Craftsmanship, arguing about loaded words instead of practices gets us nowhere, so give useful feedback instead.

February 29, 20163 min

Pay attention to your test data

Three common mistakes with test data, repeated values, unnecessary fields and misleading specific values, and how to avoid them to get clearer, more reliable tests.

December 22, 20152 min

The importance of red in TDD

Why throwing NotImplementedException or returning null to get your first red in TDD defeats its purpose, and how to get a red that actually verifies the test.

November 10, 20152 min

Event bus using Reactive Extensions

A tiny in-process event bus built on Reactive Extensions, and how exposing IObservable<T> lets you filter and compose events, using WPF notifications as the example.

September 20, 20153 min

PowerShell: automatic variables

A tour of handy PowerShell automatic variables like $?, $Error, $LastExitCode, $MyInvocation, $PSBoundParameters and $PSScriptRoot, and their gotchas.