December 30, 2009

Learn TDD with Codemanship

Celebrate The New Year With Some Rubbish Demos I Recorded In 2009

And so we come to the end of another year. And what a year it's been! The first international conference on Software Craftsmanship. Boffoonery! in aid of Bletchley Park. And in those rare spare moments, and against all the advice of my elders and betters, Ive been recording demos of my really rather poor guitar music, which I present in their horrific entirety for your delight and delectation as a seasonal gift (or curse, depending on how you look at it).

These rough demos (very rough demos!) were recorded between Sept and Dec 2009 using RiffWorks, which I highly recommend for getting stuff down quickly without the usual "noodling" you get with Pro Tools, Cubase etc. Unless otherwise stated, guitar is an Ibanez RG2550Z (black and pointy, just the way I like them) and bass is a Peavey Cirrus through a SansAmp Bass Driver. I played all parts, except for the very sloppy bits, which were played by someone who broke into my flat and over-dubbed my originally faultless playing

Take No Pensioners

I've dedicated this fine example of demo quackery to my stepmum for her Herumphtieth birthday. The first track I did in RiffWorks,
and first track using the speaker-emulated output of my new Blackstar HT-Dual pedal.
The solo really sucks. Sorry, I just couldn't resist a bit of 80's Big-Hair-Open-Wah wankery.

Chunky's Revenge

More sloppy Big Hair wankery, this time in a Vai-esque lydian groove (you'll be hearing a lot of that, I'm afraid), with the HT-Dual and a nice clean sound courtesy of my Damage Control Liquid Blues pedal. Through a Damage Control Timeline tube-based delay pedal (the best-sounding I've heard). A lovely tubey lead sound. Must be all those tubes. Tubes still rule in metal!

Snakeskinned Alive

Wanky, wanky, wanky! Nobody likes this demo. Well, I do. But nobody normal. Used the Radial Plexitube pedal for a nice British sound through the POD X3 doing just cabinet/mic simulation. Like you care...

The Long Ride Home

All POD X3. 100% digital. I think there's a simulated Ibanez Tubescreamer in their warming up the clean sound. And lots of long delays and backwards guitar. No synths. All guitar. My feeble attempt at a David Sylvian/Robert Fripp-style affair

The Heavymetallist

This is my test track. I've done a demo with it four or five times to test different set-ups. This is the version I did after I discovered the amazing Recabinet convolution reverb library. I've never heard a better approximation of real guitar cabinet/mic combinations. For $15. Pity about the actual playing.

The Girl From Panama

I was drunk. It was late. My neighbours hate me. I was aiming for an Al Di Meola vibe. Well, sort of. If you listen carefully, you can hear the metronome ticking away at the end. Just a Yamaha CPX700 semi-acoustic through a Shure SM57 mic and massive reverb from the POD X3.

The Heavier Metallist

Tried to make a more atonal version of the Heavymetallist with insane distortion courtesy of the POD X3. "Tried" being the operative word.


Okay, so this is all HT-Dual and Recabinet, and I dusted off my metallic red Tokai Strat (they make better strats than Fender, IMHO). Yes, it's a big long lydian solo. Again. Wanky, wanky, wanky.

Pass The Napalm (On The Left Hand Side)

Recabinet + Damage Control Solid Metal in face-melting "Nuclear Mode". Your granny will love it.


Recabinet + Solid Metal (at half-mast) in ill-advised attempt to recreate the minimalist sound of the eponymous Swiss metallers, complete with completely-out-of-place and very badly executed effect-laden solo

September Summer

Some acoustic stuff with a very slow jazz/latin feel and the strat doing the honours at the end. Just listen to that intonation. I'm not a qualified guitar tech. I know, it's hard to believe, but it's true. I was planning to add something, well, interesting. But lost interest.

Devin Sent ("The Man From Canada")

Dedicated to my Dad, who is from Canada. HT-Dual. Timeline. LOTS of delay. Then added a suboctave to beef up the sound using a TC-Electronic G-Major along with cavernous reverb in a vain attempt to disguise my awful playing. The final finish was some synth fairy dust courtesy of the stupifyingly powerful Omnisphere. My tribute to the actually talented Devin Townsend, who is also from Canada.

April 8, 2009

Learn TDD with Codemanship

SPA2009, SC2010, Carpool & General Nonsense

Just a quick post today with a few honourable mentions.

Firstly, SPA2009; with all sorts of stuff going on at the moment, I only managed to make it to one afternoon yesterday, which is a shame because it looked liked it was going swimmingly. SPA's a much more sophisticated affair than SC2009 was (though cheap and cheerful has its place, I should add), and hats off to the organisers for putting it all together. I'm due to be in town later this afternoon, so maybe I'll try and hook up with a few folk after the conference for a beer.

My own session at SPA was fun, but poorly attended, I'm afraid. I enjoyed it, anyway. And that's all that matters, I s'pose :-)

You can view a Flash demo of the practical elements of the session by clicking here. Alas, what you will have missed out on is the experienced insights of people like Alan Wills, Dave Cleal and Mark Dalgarno at the session itself. But I'm sure you'll get the jist of it.

On the subject of Flash demos, I just checked my stats on Libsyn and it looks like the TDD in C# demo has now been viewed 3,000 times. Which is nice. Remind me to do a Java version soon.

Finally, a quick mention about next year's Software Craftsmanship conference.

It's on.

In exactly what form remains to be seen, but I'm committed. And if I'm committed, that means it's happening. Even if it's happening in my flat. I can't tell you too much at this early stage, because there are lots of decisions that need to made, alliances that need to be brokered and sexual favours that need to be administered to make a conference possible. What I can tell you is this:

1. I'm banning talks, presentations or any other kind of session that doesn't involve real live coding. The feedback has been very clear about this; the best bit was getting a bunch of smart, talented and skilled developers around some code and talking turkey with real, concrete examples. I was impressed by how powerful that simple act can be when I used to take teams into a room with a laptop and a projector for a week or two and we'd take turns at the keyboard implementing solutions to real requirements. It's a great way to bring everybody to the same page quickly and with a lot less blah blah blah. And I feel very strongly now that this is the way forward for SC2010 and hopefully beyond. Let the code do the talking!

2. We're going to sort out network access, source control and other technical stuff this time around, so hopefully the first twenty minutes of your session won't be taken up with folk handing memory sticks around. We'll also keep copies of all the code that gets created, which will be donated to medical science for their secret occult experiments. Or something like that.

And while we're on the subject of software craftsmanship, in answer to one Tweeter's question - no, not everybody who promotes craftsmanship necessarily thinks they're a "master craftsman". Far from it, in fact. Don't be bullied by this sort of anti-craftsmanship rhetoric. If you go out there and push the craftsmanship message, you are doing a good thing. It doesn't make you arrogant or elitist. It does mean that you care, and that you at least aspire to high standards. Any negativity or animosity some people might voice about this nascent movement, I suspect, says more about the naysayers than it does about the size of your ego.

My ego, of course, is massive and I do - as the same Tweeter kindly pointed out in a private message to me - have a very high opinion of myself. And why not? I still hold the self-endowed title of "World's Greatest Software Developer" and nobody has challenged me for it yet. I am also a brilliant rock guitar player, Kung Fu fighter and I'm fantastic in bed. But that has nothing to do with my support of software craftsmanship. I'm just a big-headed gobshite who just happens to care about software development. I'm perfectly comfortable with that. Hey, it works for me :-)

Anyhoo, I'm off to watch this week's Carpool (highly recommended, by the way) before I launch into some actual work. Toodle-pip!

April 22, 2008

Learn TDD with Codemanship

Test-driven Development Illustrated for .NET

I always find it hard to effectively communicate what TDD actually is. I think you have to see it, and then do it, to really get your head around the practice.

So I've finally gotten around to posting a dynamic worked example so you can see the process I go through, and see the kind of end result you might get.

It's a very simple example, with just a handful of tests, but hopefully it illustrates TDD in a way words seem unable to.

The video's about 30 minutes long and you'll need an up-to-date version of Macromedia Flash. Click here to view it.

It was created using Camtasia Sudio, which I thoroughly recommend for this sort of knowledge sharing.

May 15, 2007

Learn TDD with Codemanship

Podcast #2 - Interview with Ivar Jacobson

I'm delighted to announce the arrival of the second podcast, after a little jiggery pokery. And I'm even more delighted to tell you that it features an interview with one of the pioneers of object oriented software engineering, Ivar Jacobson.

Among his many achievements, Ivar has given us use cases, OOSE (Object Oriented Software Engineering), Sequence Diagrams, and a significant chunk of the Unified Process. That's a pretty impressive CV, by anybody's standards!

Ivar and his team have been hard at work developing new process frameworks that are much more practice-based, and - dare I say it - Agile. I thoroughly recommend you check out his Essential Unified Process (EssUp) and also read up on their latest offering, EssWork, which offers an even greater range of flexibility - apparantly you don't even need to be using use cases.

Podcast #2 - Ivar Jacobson (MP3 - 16 mins approx)

April 17, 2007

Learn TDD with Codemanship

Podcast Technical Questions Answered

Just to answer a couple of questions about the pilot podcast: it was recorded using Digidesign's Pro Tools on a laptop running Windows XP. The "beercast" with Henry Seymer was recorded on a BOSS 8-track recorder and edited in Pro Tools. The cheesy music was actually created by me, and is my interpretation of musak.

With Pro Tools you can get a high quality result, but the workflow of the tool sucks!

I love this little snippet from guitarist Steve Vai's diary about recording his new orchestral album:

"Last night I finished the 5.1 mixes and was finally able to start thinking about playing the guitar again. I took to my private little guitar room in the Harmony Hut and started to just play. After floating for about 15 minutes I had the realization that I had made a mistake with the 5.1 mixes.

While importing session data from other sessions and pasting them into the 5.1 auxiliary tracks, I realized that certain information did not transfer and the mixes were thrown off so I have to go back and re-do all the 5.1 mixes. It felt as though I was hit by a train right in the middle of the light at the end of the tunnel."

Steve is a Pro Tools user - check out this video from his studio to see his set-up. As a Pro Tools user, I can sympathise: it's easy to screw up.

There are two things about this little vignette that struck me:

1. Just how many professions these days come down to someone sitting at a computer going copy-paste?

2. Would you ever hear a Spice Girl say something like "Last night I finished the 5.1 mixes..."?

Mind you, if you want to see really bad workflow, spare a thought for the earlier pioneers of computer music. Frank Zappa's Synclavier cost $100,000 and he had to hire a computer programmer to make it do all the stuff he wanted it to. We've come a long way, I suppose.

April 16, 2007

Learn TDD with Codemanship

Pilot Podcast - Agile Testing

After some delays and false starts, the pilot podcast is finally ready for download (MP3 22min36s)

Being a devotee of test-driven development, I chose Agile Testing as the theme for the first show, and I have interviews with three experts in this field.

Jonathan Kohl is a testing expert who hails from Calgary in Canada, and he speaks to me about exploratory testing, a practice that is gaining popularity among the Agile community.

Antony Marcano is a testing guru based here in the UK, who shares his thoughts on the whole business of testing on Agile projects.

Henry Seymer is an Agile tester who can still remember the hell of waterfall, and he gives his personal thoughts and experiences about going Agile and what it can do for you.

If you enjoyed the show, and want to find out more, check out some of these links:

Sticky Minds

Testing Reflections

James Bach - Satisfice Inc.

Elizabeth Hendrickson - Quality tree Software

Brian Marick - Testing Foundations

Some useful blog posts from Antony:

Boredom & Testing

Lessons learned as a tester on Agile Teams:

Assimilated Tester & heterogeneous teams:

If you want to send us your feedback and have it potentially included in the next podcast (fingers crossed there will be another one!), you can Skype us at parlezuml. Alternatively, just send your comments to