June 30, 2006
Wherein Hazim starts to get it
"I think I'm out of my depth here. If you're willing to help me through this, I promise to pester you to pieces with lots of questions and come up to speed just as fast as I can."
When they heard this the team broke out in great big smiles. While it would have been nice to have someone who already understood how things worked, Hazim being willing to learn was the next best thing.
Bianca started things off. "The most important thing, and what we always start with, is understanding what exactly it is our customer wants to do, how they will want to use our application."
"Isn't that what I said? Hazim asked.
"Well, yes, kind of," Jason replied, "but the way we approach it is very different from what you are used to. We used to work that way - build a spec that went into great detail about the UI, and the specifics of how everything worked, and all that. But we found we often missed some core scenarios."
"And we spent way too much time drafting detailed test cases that were obsolete before we finished because our understanding of the application was evolving so rapidly" Daphne added. "Or if we waited to plan test cases until the spec was finalized, Lucas and Bianca were already starting to code and we were behind the game."
"So what we do now", Oliver took over, "is focus on our customer's goals, on the actions they will be executing. These actions don't have anything to do with the user interface, or the programming model, or the multiple ways they can do something. We focus on the core goals our customer is trying to achieve."
"Let's see if I understand" said Hazim. He connected his tablet to the team's giant wall display. "Here's the information marketing sent me regarding what this Rug Rat Rubbings application needs to do."
- Select a page from a coloring book and color it in.
- Select a blank page and create a drawing from scratch.
- Save the current drawing to the child's picture gallery.
- Open a previously saved drawing from the child's picture gallery.
- Print the current drawing.
"So our user actions would be something like this?" Hazim inked the following below the info from marketing:
- Open a coloring book
- Browse the current coloring book
- Select a page from the current coloring book
- Color the current page
- Start a blank page
- Save the current drawing
- Open an existing drawing
- Print the current drawing
"That's a good start!" Bianca affirmed. "I see some additional actions though. I bet we'll have more than just one coloring book, so our customers will need to browse through them all." She added "Browse the library of coloring books" to the end of Hazim's list.
"I think 'Color the current page' is too coarse of an action" Lucas said. "Coloring a page usually involves filling in discrete areas with a specific color, but when a kid starts with a blank page they will draw their own lines. So we need at least 'Fill an area' and 'Draw line' actions."
"Oh!" Daphne exclaimed. "We'd better have some way to select different colors! I don't see children being happy with just one color for very long!" She added a "Pick the color to draw with" action.
Just then Simon, MMS's marketing guy, walked past. "Hey Simon!" Bianca yelled. "About this Rug Rats app. Whaddayathink about providing a set of shapes the rug rats can 'stamp' onto their drawing?"
"Oooh, that's a neat-o groovy idea!" Simon thinks the Sixties are cool again, and the entire team agrees that he actually makes bell bottoms look cool.
"Great, thanks, your grooviness!" Bianca responded. She added "Stamp a shape onto the current drawing" to the list.
Hazim was staring off into space. Jason snapped his fingers in Hazim's face. "Yo, Earth to Hazim, Earth to Hazim. Anyone there?"
Hazim blinked back into this reality. "Sorry, I was just thinking about how to start a blank page. Having a button just for that seems like overkill. What if we had a special "Blank Page" page in every coloring book? Or maybe a special coloring book filled with pages with different background patterns? Oh, but I guess that's several levels of detail lower than we're talking about right now..." he trailed off.
Lucas jumped in. "That's a great idea, Hazim! You're right that it's at a lower level of detail than our user actions generally are, but that's OK. We certainly don't want to lose it!" Lucas started a new page in the digital notebook, labeled it "Implementation Ideas", then scrawled in Hazim's idea.
Daphne and Jason had been whispering and writing off to the side while Hazim and Lucas were talking. "Here's our test API for R3" Jason said. Daphne activated the new page she and Jason had added on her tablet.
Posted by The Braidy Tester at 07:30 AM Permalink
|