Psst… Over Here

This’ll be redundant for a lot of people but I’ve picked this blog up and moved it over to CodeBetter.

Note that my RSS feed hasn’t changed (more on how I managed that later) so this announcement is really for friends, enemies, frenimies, and lost Googlers that come to laribee.com or thebeelog.com straight up.

Now back to your regularly scheduled program!

Human Amplification

I love this term: human amplification. I believe (but can’t find confirmation) that it comes from the U.S. Navy.

You know the idea. The Agile realm re-imagines the traditional manager as a sort of human amplifier. Let’s consider Scrum. One of the named roles in Scrum is the Scrum Master. It is the Scrum Master’s responsibility (among other things) to remove obstacles revealed by the team.

To be amplified you’ve got to leave yourself open to amplification. In our world - where we don’t have DARPA, Super-sonic Jets, or 30mm Cannon - this means responding to criticism. Learn how to take criticism, and don’t be afraid to get to the heart of the matter. Courage is one of the core XP values for a reason.

More Me Than You Can Shake a Stick At

After a fairly slow end-of-August, I’m kicking it into overdrive with the whole community involvement routine. If you aren’t sick of me by now, well friends, my antics this October and November should do the trick. Here’s the rundown:

Oct 3 | Syracuse, NY | Syracuse .NET Developer’s Group

Rik Bardrof and I will be doing a spruced up variant of the You Got Served: Ping-Pong Pairing talk that covers TDD, DDD, and Ping Pong Pairing. If you’re in the cold north, you should try to make it. Rik, for the unaware, is a blogless developer who works with me at Xclaim. We should get a lot of opportunity to talk about some of the techniques we use in the wild.

Oct 5-7 | Austin, TX | ALT.NET Open Spaces Conference

The event of the year, IMHO. While not a speaking engagement (it’s more an invitation to a conversation, wait…) the event will be a great opportunity to meet many people with at least one foot in the .NET developer world. The event is in the Open Spaces style so I’ll pitch a few sessions and see how they’re received. In any case, I’m not going to bring stand-and-deliver sessions to this happening; I expect lots of conversation/debate/back-and-forth!

Oct 8-9 | Boston, MA | ReMIX

Giving a talk called Language Mashups with the DLR (it’s billed wrong on the site). Why would you use Javascript, Ruby, C#, Python, and friends all in the same application? What’s the DLR? How’s it work? What does stepping outside of the mono-langauge world do for you? Join me in Boston and find out.

Oct 12-13 | Nashville, TN | devLink

I’m speaking about the juicy goodness that is Domain-Driven Design and NHibernate. I’ve done this talk a few times now, so I’m retooling it going in to Music City USA. Should be a good time!

Oct 19-20 | Tulsa, OK, | Tulsa TechFest 2007

Enter the Ping-Pong Programming House of Pain with me and coconspirator Ray Lewallen. This session is so free-form, high participation, and different every time. We start with a model (DDD) and let it go from there. Hopefully we’ll be able to work in some developers from the peanut gallery like we did in OKC.

Nov 25-29 | Vancouver, BC, CA | DevTeach

Doing a number of talks here (DDD, User Stories, Agile Panel, check the site). There are a number of excellent speakers on the roster, so I’m not only honored to be speaking, but jazzed up to be able to attend sessions by such folks as Jeremy Miller, JP Boodhoo, Ayende Rahien, James Kovacs, Scott Bellware, etc. I’m also glad to finally see Vancouver; I hear it’s the kind of city you can immediately picture living in.

If you’re coming out to one or more of these events let’s meet up! To me, that’s the main value of doing this - meeting a number of interesting, new people and catching up with those I’ve already met on the road.

ALT.NET Open Spaces - Registration Open!

Registration has opened for the ALT.NET Open Spaces Conference! The cat’s out of the bag, the gates are open, release the bats! We have a limit of 100 People so get while the getting’s good (looks like there’s ~33 openings at the time of this post). In the coming weeks we’ll be communicating with the people who are coming to Austin, sharing plans and pointers for the Open Space-ness, etc.

Agile Cheat Sheet

Sure you’ve got the ReSharper 3.0 cheat sheet taped to your monitor, but what do you have that’s reminding you of values and principles? You need an Agile cheat sheet!

Luckily I’ve got one for you right here! Print it out and put it in your team room, tack it to your task board, and tape it to your monitor.

I made this about a year ago and put it up on the bulletin in our team room. From time to time a stakeholder will wander in, notice it, and ask about it. Then I say, “well let me tell you about this, it’s really exciting.” 

It’s a handy information radiator for everyone and an omni-present reminder of how we, as Agilists, stay on point.

The Box Got Hotter

A great analogy for side-effects in your programs from Simon Peyton-Jones:

In the end any program must manipulate state. A program that has no side-effects whatsoever is is a kind of black box, right? You press go, and it runs, and all you can tell is the box got hotter.

Check out the video of his talk on Haskell at OSCON 2007 for this and many other gems.

Boring Inside

I’m burning down some podcast backlog as I wait (and wait and wait) for a plane that’s been delayed (and delayed and delayed) when I hit part of a Hanselminutes episode featuring Jeff Atwood on the topic of building your own PC. At one point, he observes that it’s kind of nice to know what’s going on under the hood of your workstation and that knowing something about the internals of your hardware can make you a better developer.

I couldn’t care less about hardware. I care about my experience — keyboard, mouse, video walls – but the internals — Intel, AMD, pico-hampsters running on pico-hampster-wheels – make absolutely no difference to me.

To me infrastructure is a dial tone. It needs to be there, respond to my request, and let me get to the stuff I care about with minimum hassle. I care about understanding a problem or opportunity and finding its most direct and elegant solution in software. Of course my workstation needs to be fast and usable. Of course it needs to be reliable. And, oh yeah, if it could look pretty, that’d be an extra bonus.

The developer uses tools to build tools. Software solutions, when delivered into the hands of the end user, are a tool. I build or acquire tools that help me build another tool. There’s a lot to figure out and grok. Throw in our industries frenetic rate of change and there’s plenty to keep me busy for several lifetimes.

Okay. That’s kind of a who’s on first way of saying the craft of developing software is generative: tools produce tools produce tools. Wouldn’t my time be better spent learning and mastering other elements of pure thought stuff? New languages, frameworks, patterns, techniques, and (you guessed it) tools?

I crave the form and trust the details. Knowledge of hardware internals might possibly inform your craft, but an examination of history, art, architecture, city planning, philosophy, or psychology might inform in a more creative, less pseudo-comparative way. 

And before I hit publish, some disclaimers:

  1. I would care about hardware if it were part of the problem domain I was making software, e.g. embedded systems, network monitoring, device drivers. As soon as I moved on, I’d stop caring.
  2. I am very thankful that there are people that do care about hardware. Good network design/engineering/support (for example) is its own craft with its own horizon!

Exercise and Expect Discipline

A few days back I was reminded of Shuhari. It’s a concept originating from Japanese martial arts that describes a three stage self-development process where a student progresses from novice to expert to master.

Perfection is a pervasive theme in the larger Agile community.  Scott Bellware makes an agreeable point saying we should focus on the verb, not the noun; Dave Nicolette has a pragmatic take on adoption of Agile methods; Alistair Cockburn brought the term Shuhari to the Agile vernacular.

I have in my mind’s eye a particular scene from The Last Samurai. At one point the camera pans over a rural village where the town’s folk are engaged in their various activities of daily living. Captain Algren observes:

From the moment they wake, they devote themselves to the perfection of whatever they pursue — I have never seen such discipline.

Is the action is the actor’s raison d’être? Yes, but there’s more to it than one person and their craft. There’s an interdependence between the villagers. The group dynamic creates an environment of healthy peer pressure that ingrains, supports, and reinforces the discipline required to pursue perfection. I depend on my neighbor, a potter, for my earthenware. My neighbor depends on me, a farmer, for my vegetables.

Committing to the Agile way is a decision to pursue perfection. Discipline is flat-out, straight-up, and without a doubt the most fundamental ingredient in advancing on the path. Everyone involved in an Agile project or organization needs to hold discipline up as a precondition to continuous improvement. Customers, developers, managers, executives… everyone. Improve your craft, exercise self-discipline, and expect your team to do the same.