“Business people and developers must work together daily throughout the project.”
I was in a backlog grooming meeting this morning when I was given reason to reflect on this, the fourth, Agile principle. The reason was that the team I was working with was struggling/arguing about the proper wording of a story. To a few on the team the absolutely precise wording of the story was of paramount importance. While I am a big fan of precision, the vehemence of the need to be precise was a bad smell. It took me some time to realize where the stridency came from.
One of the things that I thought was very progressive about this organization was that they had a very strict rule that every story must have acceptance criteria. Having worked with teams that had sketchy acceptance criteria, I thought this was a huge step forward. Nevertheless, after awhile it appeared to me that this was not the virtuous pattern that I had hoped for but merely another way to put requirements into acceptance clothing. Coming from a waterfall background, this team’s past method of communication is to “throw some requirements over the wall”. What had happened was that these teams had adopted Agile practices merely as a cover for allowing them to continue to operate in a manner that was comfortable for them.
In other words, even though we are writing good user stories, even though we are using BDD scenarios to fuel TDD development, we still have a vestigial need to create requirements and send developers on their way. Our user story / scenario / accpetance criteria is being hijacked to provide end conversations instead of beginning conversations. We are breaking the very descriptive principle that business and development must work together DAILY.
Once I realized this, I decided to take another look at Agile manifesto and principles to see if there was anything else that was as prescriptive as this. There is not. All other principles are qualified in some way to allow for interpretation – words like the “most efficient and effective” not “the only way to” or “from a couple of weeks to a couple of months” or “at regular intervals” instead of “every two weeks”. “Business people and developers must work together daily throughout the project.” (emphasis mine) – There is nothing else like it.
I believe that all Agile principles wording is precise and intentional so why would the Agile framers choose only one principle to get militant about? Of course they must have tried out qualifying words like “should”, “most effective”, “frequent”, “continual”, “often”, and the like, but they chose the very prescriptive and precise words “must” and “daily.”
In the past their use of these words has troubled me. Time (and recent experience) has taught me why they chose these particular words and their wisdom in doing so. Wihtout daily interaction enforced (MUST) we can easily backslide into old bad habits of using stories and scenarios as conversation-ending requirements instead of the conversation starters they are.