Jan 01 2012

Scrum is Chess, Part II

Category: For the Record,Scrum and AgileGary Pedretti @ 1:52 PM

In my previous post, I mentioned that I’ve been getting a fair number of questions lately that go like this:

What does Scrum say about [[ something that Scrum does not prescribe anything for ]]??

Questions are always good. I think I’m dealing with some clients who are a bit more self-aware, who desire to “do Scrum correctly,” and who perhaps are apprehensive about doing it correctly because of some things my colleagues and I have said to them.

If Scrum prescribes something for the subject at hand, great, let’s start there and try it. If not, I’ll tell you so, and let’s just try something. Preferably, something that thought leaders or the community have proposed and/or come to a consensus on (e.g. Larman’s excellent guidance on scaling Scrum and agile, which I also mentioned in the previous post).

But here’s what I don’t want to do: immediately assume something Scrum prescribes won’t work, doesn’t apply to us, is insufficient, or otherwise must be changed. The rules of Scrum have emerged, empirically, over the past twenty years.

My colleague Chad Albrecht has a great analogy: a white belt n00b doesn’t come in to Karate class and suggest he or she knows better than the black belts, much less the masters who developed the system and practices over many centuries. He or she doesn’t show the teacher how to perform a kick; in fact, it’s the other way around…as it should be.

And here’s another place where Ken Schwaber’s chess analogy is excellent.

In the comments of Ken’s post, Chad says,

If…we don’t follow the rules of chess because our culture dictates that we don’t use pawns, we can create an odd dependency on environment. While this seems crazy and pointless to do in chess, it is what organizations do when they choose to not follow the rules of Scrum. Environments that prevent teams from using Scrum completely are as dysfunctional as not using pawns in chess.

So following the analogy, when might it make sense to modify the rules of chess?

I have personal experience with this, actually. As a very young kid who was trying to learn chess, I first learned how the various pieces moved. I didn’t yet understand the concepts of check and checkmate; I hadn’t gotten that far in the World Book Encyclopedia entry. But I taught one of my sisters how the pieces moved too…and then played a more complex form of checkers which I called “chess!!!” To win my “chess,” you just had to capture all of your opponents pieces – just clear the board, as in checkers. Not only were check and checkmate gone, but the relative value of the pieces in chess was out the window, too. In retrospect it is silly, but perhaps understandable in the sense of learning something incrementally, without a mentor.

A more legitimate case of modifying the rules of chess would be Bobby Fischer’s Random Chess, A.K.A. Chess960. Fischer was dissatisfied with the lack of creativity and unreasonable advantage that rote memorization of chess openings had brought to the game. He proceeded to introduce a variant of Shuffle Chess (which had been played as early as the 1800s) that preserved castling and the opposite colored diagonal placements of the bishops, but otherwise randomized the starting position of pieces along the home rank just like Shuffle Chess. This made opening memorization impractical, if not impossible, and forced the player to think creatively from the beginning – not just during the middle game. The game takes its name from the fact that there are 960 possible starting positions. Two important things to note here: a) the game is called Fischer Random Chess or Chess960, it is not called chess, and b) Fischer introduced his game in 1996, 38 years after becoming the youngest U.S. Champion ever, and 24 years after becoming the 11th World Champion.

To make the analogies I’m drawing here completely explicit: people have modified the rules of chess a) out of ignorance and b) out of a deep, storied understanding of the game and its modern shortcomings – more often for the former than the latter, I’m sure. I imagine people modify Scrum for these same reasons, with the same relative frequencies. And as my silly grade school version of chess and Chess960 are not “chess,” we shouldn’t call someone’s (oftentimes silly) variations on Schwaber and Sutherland’s framework “Scrum,” either.

Did I hurt myself or anything else by playing my silly version of chess? No. I suppose it made me more familiar with how each piece moves in (real) chess. But it is also important to note that I didn’t cling to it when I found out I didn’t have the whole story (whole story = additional sections in that same World Book Encyclopedia entry for “chess”). I never justified playing my silly way, nor played it that way, ever again. I didn’t argue that check, checkmate, castling, etc. “won’t work for grade school boys in Wisconsin.” I didn’t argue that a Knight was actually more valuable than a King, even though I lived on a farm with a pony and under a government that was not a monarchy.

Dec 05 2011

Scrum is chess, scaling Scrum is…

Category: For the Record,Scrum and AgileGary Pedretti @ 10:59 PM

I’ve been getting a fair number of questions lately that go like this:

What does Scrum say about [[ something that Scrum does not prescribe anything for ]]??

I love Schwaber’s chess analogy: you either play chess, or you do not. In the same way that chess does not succeed or fail, Scrum does not succeed or fail. Knowing the rules does not make you a Grandmaster or effective Scrum practitioner; strategy, practice, mentorship, etc. *may* make you a Grandmaster or effective Scrum practitioner. You get the idea.

Scaling Scrum is something that is not prescribed by the rules of Scrum**. But I’d like to tie scaling to the chess analogy.

The rules of chess do not tell you how to run a chess tournament. Scrum is chess; scaling Scrum is running a chess tournament.


** But luckily there are plenty of known patterns, resources, and good ideas out there…check out Craig Larman’s books for a start…

Nov 20 2011

Presenting at the Milwaukee ALT.NET Group on November 21, 2011 – Onion Architecture with S#arp

Category: Speaking EngagementsGary Pedretti @ 1:03 PM

I’ll be talking about implementing the Onion Architecture using the S#arp framework at Milwaukee’s ALT.NET group on November 21st, 2011.

There is more information here, and you can register here.

I hope to see you there!

Nov 01 2011

Presenting at the Dubuque .NET User Group on November 1st, 2011 – T4 Templates

Category: Speaking EngagementsGary Pedretti @ 9:31 AM

I’ll be talking about T4 Templates in .NET in Dubuque, IA on November 1st, 2011. The presentation is on the Clarke University campus, in the Keller Computer Center, at 5:30 PM.

The group’s website is at http://dbqineta.com/.

The presentation description:

Microsoft’s Text Template Transformation Toolkit – T4 – is the unknown workhorse behind ASP.NET MVC, ADO.NET Entity Framework, ASP.NET Dynamic Data, and the VS 2010 Architecture Tool’s forward engineering. We’ll trace T4′s history through its start as a second-class citizen for VS 2005 to its current prominent (but often unknown) place in VS 2010 and associated frameworks. We’ll look at precursors and competitors to T4, as well as essential tools for T4 development. Finally, we’ll develop a data-driven application that takes advantage of T4 generation, showing how to handle and extend generated code in a changing codebase and how to establish a workflow to use T4 over the lifecycle of an application.

I hope to see you there!

Oct 05 2011

Presenting in Fox Valley on October 11th, 2011 – Agile Modeling with Visual Studio 2010 Ultimate and Feature Pack 2

Category: Speaking EngagementsGary Pedretti @ 12:11 AM

I’ll be speaking at the Fox Valley .NET User Group on October 11th, 2011. The event is at 5:30 PM in Appleton – Fox Valley Technical College, 1825 N. Bluemound, Room A170 A/B, Appleton, WI 54912. See the FV NUG site for more details.

I will be giving my “Agile Modeling with VS 2010 Ultimate and Feature Pack 2” presentation.

I hope to see you there.

Mar 16 2011

Mulletude Theorem and the Ultimate Mullet

Category: For the RecordGary Pedretti @ 5:09 PM

If we can agree that as the length “in the back” of a mullet haircut grows, if the length “in the front” stays the same, the wearer has “more mullet”


If we can agree that as the length “in the front” of a mullet haircut grows shorter, if the length “in the back” stays the same, the wearer has “more mullet”


Mulletude = Length of Hair in the Back Divided by Length of Hair in the Front


M = Lhb / Lhf


A person who is bald on top, with any length of hair in the back, possesses the Ultimate Mullet. Why? It is a division by zero problem – there is literally so much mullet, it cannot be computed.


Jan 22 2011

Quotable Quotes from a PSM Class

Category: For the RecordGary Pedretti @ 1:30 PM

I came out of Giovanni Bassi’s excellent train-the-trainer Scrum.org Professional Scrum Master class with some memorable and useful quotes.

The plan is useless. Planning is essential. – Giovanni

EDIT: I’ve learned this is not Giovanni’s :)

Plans are worthless. Planning is essential. – Dwight D. Eisenhower

Are you scared of not meeting a deadline? Scared of not delivering what the customer actually wants?

If you’re scared, you’re not agile. – Giovanni

Why not generalize Ambler’s “avoiding speculative ideas that are likely to change in favor of stable information” best practice to all areas, not just documentation?

When is the last responsible moment to do this? – Giovanni

Further assertions that engineering and manufacturing metaphors only hurt our industry, as I am and will be talking about in the Agile Modeling and Emergent Architecture topic here:

We’re not building bridges, we’re more like lawyers arguing a case. – Giovanni

Do you have someone who objects to Pair Programming on the premise that it will “cut productivity in half” ??

Are they programmers, or typists? – Felipe Rodrigues, a colleague of Giovanni’s

Dec 18 2010

if (Code_as_Design != Keyboard_Cowboys) return Agile_Modeling + TDD; else return Same_Stuff_Different_Day;

Category: Agile Modeling and Emergent ArchitectureGary Pedretti @ 10:49 PM

It is really fun to stumble upon old classics like Reeves’ “What is Software Design?” and think about them in a modern context.

This post begins a series of responses to Reeves’ article. I will examine his basic assertions here, and comment on how they relate to agile modeling, test-driven development (TDD), and agile in general in future posts. Continue reading “if (Code_as_Design != Keyboard_Cowboys) return Agile_Modeling + TDD; else return Same_Stuff_Different_Day;”

Dec 18 2010

Presenting in Chicago on January 12th, 2011 – Agile Modeling with VS 2010 Using the Architecture Tools

Category: Speaking EngagementsGary Pedretti @ 11:25 AM

I’ll be speaking at the Chicago Application Lifecycle Management (ALM) user group on January 12th, 2011. The event is at 6:30 PM, at the downtown Microsoft offices – in the Aon Center, 200 E Randolph. Continue reading “Presenting in Chicago on January 12th, 2011 – Agile Modeling with VS 2010 Using the Architecture Tools”

Nov 27 2010

My Name for DDD Aggregate Roots

Category: For the RecordGary Pedretti @ 5:25 PM

I’ve used a term for the “aggregate root” concept in Domain-Driven Design (DDD) for many years now. It makes the concept easy to grasp, methinks. Continue reading “My Name for DDD Aggregate Roots”

Next Page »