[Deep Dive] Modeling Out Loud: Deeper Thinking
August 3, 2010
I'm still in the thinking stage in preparation for my deep dive on "Modeling out loud".
What motivated me that I think it's worth diving into? For a while now, I've been thinking that, as a coach coder, I sure as hell spend a lot of time coaching product owners on crafting BDD style stories. I also spend a lot of time with developers in interpreting BDD stories and taking a story and getting it to code. I think I know why. Because a BDD story is not a regular story. It is a model of how the software should behave under certain conditions. Note that I said it is a model !! And it genuinely is, it just happens to be in natural language.
So, as a coder I think in models and I find it is easier for me to use a new language (haha!) to craft a model. I also think that developers that are accustomed to creating models struggle with receiving BDD stories because the model has already been created. On the other hand, product owners struggle with creating BDD stories because they are, perhaps, not so accustomed to creating software models.
Where's the overlap? The only thing that a product owner should really focus on is the actor (As a) and the value statement (So that). This is what is shared, nothing else. Developers discuss intentions with product owners but they don't necessarily collaboratively model with product owners. Instead, developers need to collaborate with subject matter experts and surface multiple models, pick one for the sprint and adapt it in every scrum or even switch models mid-sprint. What's your appetite for agility?
What's this nonsense about "out loud"? When you model, you want instant feedback. That's why we prefer to talk and listen rather than writing and reading. The latency is so low. Instant feedback increase my opportunity to be agile. That's why I model out loud, at every opportunity.
What will we do in this crazy deep dive? I don't know yet, but I am imagining something like this:
A small group of us (3+) are sitting in a circle
I ask "So, who's got a story for us - a real one that's bugging you, not that shopping cart stuff".
I ask "So, who's got a story for us - a real one that's bugging you, not that shopping cart stuff".
So, we got us a story, and the volunteer has inadvertently become our subject matter expert :-)
Now one of two things happen: either everyone goes deathly quiet, or there is utter animated confused conversation
Both are good. And we end up doing the same thing - we start working the story, finding it's intention and discovering multiple solutions.
Soon enough, we get to a point where one person is writing up BDD scenarios on a board and another drawing pictorial models of the scenario as it unfolds. Just so that we can see the implications of story writing as a modeling tool.
Then someone starts writing a test case for the scenario as it is unfolding. Just so we can see the implications of story writing on code.
So that's half the session done, we've dived deep enough and it's time to come up for air
Now, we're itchy and we get some more stories on the board.
Deep breath, dive!
As we swim, some new insights and lessons appear out of the depths.
We pass by big fat stories that should be split up, but how? Maybe it's all in the modeling.
We find some stories that look similar to others. Hmm, we consider combining them, and we almost drown.
We find something that was pretending to be story, and we wasted so much energy modeling. We wonder "What could we have done sooner?"
Deep breath, dive!
As we swim, some new insights and lessons appear out of the depths.
We pass by big fat stories that should be split up, but how? Maybe it's all in the modeling.
We find some stories that look similar to others. Hmm, we consider combining them, and we almost drown.
We find something that was pretending to be story, and we wasted so much energy modeling. We wonder "What could we have done sooner?"
We eventually surface, drink tea, hug, shake hands or whatever else feels appropriate.
And if there is no small group, then the one other person and I will disband the session and talk over many things in the cafeteria, including modeling out loud.
See you soon!
-- Aslam