brown-mmsThe rock band Van Halen got some bad PR years ago when word spread that they demanded M&M’s in their dressing room, and that the brown M&M’s must be removed.   A concert could be cancelled or delayed if the M&M requirement was not satisfied.

What a bunch of spoiled brats!   But hold on…the terms of the contract rider were NOT actually demanded by the band members.   David Lee Roth explained that Van Halen concerts had extensive technical and engineering requirements that must be followed explicitly for safety reasons as well as to ensure that the show could go on with no surprises.    All of the site preparation details were meticulously laid out in a contract rider.   The rider spelled out everything that must be done to prepare the stage, sound equipment, lighting, etc.

Hidden way down in the nooks and crannies of all these instructions was the “No Brown M&M’s” requirement.    When the band showed up for a performance, if there were no M&M’s, or if they were there and the brown ones weren’t removed, it set off a red flag that the contract had not been read carefully.    The show would be delayed until every detail of a site preparation could be verified.   When telling this story on This American Life, Ira Glass referred to this as a “Canary in the Coal Mine”.

This story illustrates the great challenge with written requirements.   When requirements are written down, the burden of fulfillment then lies in the hands of the person reading the requirements, and it’s highly probable that requirements will be missed.    The “Canary in the Coal Mine” is a clever trick to ensure that written requirements are carefully handled, but it’s not attacking the heart of the problem.

Effective, real time communication is the key to quality requirements handling.   This is why most Agile practices emphasize high bandwidth communication over writing things down.  It’s possible that the use of passive communication techniques such as filling out business requirements documents may not be avoidable, but when these techniques are used, you may want to embed a canary…