Hi, welcome to my website.
I'm Duncan Pierce. I help companies improve their software development capability through my company Amarinda Consulting.
My interests include Extreme Programming and Agile Software Development, strategic organizational software reuse, better tools and programming languages and emergent phenomena in software systems. You can take a look at the projects I'm involved in and read more about me.
I hope you enjoy the site and get something useful from it! Let me know what you think.
Below are the latest posts.
I’m starting to move away from Law-of-Demeter-esque TDD unit testing, and towards Michael-Feathers-style inflection-point testing (regardless of whether it’s legacy code or not). And why? My work on very fine-grained objects in Kew has prompted some changes in my thinking.
Some of my best thoughts come to me in the bath in the mornings, though I’m not claiming this is one of them. This morning I was thinking about blogging, and the uses people put it to. Somehow my mind wandered back to a TV show from the 1980s: “Doogie Howser, MD”.
Back in the days before blogs, it seemed like every web page sported its own conspiracy theory. This one is mine, complete with inappropriate and wildly excessive use of bold text and references to the CIA….
If you don’t know what Emacs is, the rest of this page is going to make very little sense to you. Save yourself a headache, and don’t read it. Go back now. Before it’s too late.
This article is now a little out of date, but still contains some hopefully useful advice about laptops.
Laptops are generally more expensive and less powerful than desktop computers. However, machines are now so powerful that unless you want to play the latest games you shouldn’t really have any problems. If you do want to play games, a laptop is not a good choice.
I recently had a tip from Nat Pryce about a weird control construct from HScheme: call-with-result. It passes into a function an argument which is its own result. Erm, okay. Let’s just think about that for a second. It solves the “chicken and egg” problem of creating mutual references between objects - something you’re normally forced to use setters for. We can use something like this to get better encapsulation.
When Java was unveiled to the world in 1995 it was as a secure web browser language. Java has gone through a long evolutionary process since then that has taken it from applets to the very heart of the corporation. Java’s early history as a programming language for embedded applications is often forgotten.
In September 2003 some friends and I went on a Via Ferrata climbing holiday in the Italian Dolomites. We experienced lightning “up close and personal”….
Via Ferrata are scrambling- and climbing-grade routes, mostly at high level, protected by fixed metal cables attached at regular points to the rock. The cable is what makes it a Via Ferrata - Iron Way.