Archive for May, 2009

Working with User Stories: The Missing Parts

Not long ago, someone emailed me asking me to write about working with user stories. I have a few thoughts about working with user stories. I thought I would write about what I call the “missing parts problem” this time.

In my experiences working with user stories, one element often missing is how a new feature will work with existing features. Notice that I stated “in my experience” because this doesn’t need to be the case. I realize this statement might bring questions to mind – it raised questions in my mind as I tried to explain the missing part problem to a project stakeholder recently. These are the questions and thoughts that roll through my mind and are darn close to a conversation I had recently.

What’s missing in the stories?

The user stories are usually about the new features without hashing out how a new feature will work with existing features. So I end up with 10 user stories about a new feature but the feature is alone. The stories are missing how the new feature will play with other features.

How do I look for the missing parts?

What I do is I create a vision of the new or upgraded feature in my mind; I then walk through the rest of the application with that new feature in mind. Some features will have no – um, perhaps this word works – interplay, no interaction with the new feature. If there’s no interplay to consider, I move on. I do this with aspects of the application that might not be thought of as features – such as active, inactive users, user permissions, etc.

It takes some discipline to walk through that same course over and over but the upside is you get faster at this the more often you use this approach. I’m sweeping through the whole application. I’m not thinking about features in a staccato disconnected fashion.

If you can’t draw that vision in your head, map it out in your notebook. I probably look like I’m zoning out when I gaze out windows or close my eyes but I can see things in my mind pretty clearly. An alternate approach would be to draw a table with a list of the application features and continually run through the list. It’s kind of fun because it’s like holding a puzzle piece and your hand, looking at a jigsaw puzzle and asking yourself, does it (the new feature) fit here? How about here?

I do write a fair amount of grids/tables in my notebooks as I plot out combinations. And if it helps to know, I don’t get my grids right on first drawing – I frequently have to draw them out 2 or 3 times before it’s a grid that works for what I want.
And that thought process is massively helpful because now I’m part of the application, I’m learning. I could be handed the same grid of combinations or permutations of whatever I’ve thought of but I wouldn’t have consumed the knowledge as much as if I drew it out myself. This is the same reason that when I’m given a table I try to force myself to not see the table as complete but instead ask, is anything missing?

Why are there missing parts?

I don’t know. Deep sigh. On one project I worked remotely with a virtual team, the person writing the stories didn’t think I would have input despite my asking to be involved. On another project, the stories were in place when I joined the team. But here’s the more important perspective – I don’t want to whine about not being involved – yeah sure that happens sometimes but more importantly – I would never look to user stories or requirements to think that everything I needed to think about would be written down anyway.

I expect to be the person on the project who thinks of the combinations of things that result in unfortunate results. Or sometimes gets to discover a rock-solid application – whichever the case may be. The combinations of a new feature with an old feature, a new feature under stress, a new feature with challenging data, race conditions, and boundary conditions – the list continues.

If the user stories covered everything, and I all I needed to do was test the user stories, then I wouldn’t be an exploratory tester. I would be a test script executioner or a user story executioner. In either case, I would have disengaged thinking from my work. (Ok, I’ll stop the soapbox.)

How do I continue with testing in this situation?

Happily. I know this is one of the first areas I’m going to think through and see if I can find issues. When I do, I nearly always hear the same reaction from the developers, “Oh.”

But this is probably a good time to point out that I never want to be snotty about finding a defect. Building a good rapport with development is so important. And I make mistakes too – all the time – so it’s best to remember that.

If you have other questions on this subtopic, let me know.

I’ll post about what I do with the parts that are there – the next time.

Share
Posted in storytelling, usability | Comments Off

It is complicated

I recently finished reading the novel, Complications, A Surgeon’s Notes on an Imperfect Science. It was one of those books that I sometimes had a hard time staying physically seated to read because I had such strong reactions to what the author had to say. My spiked reactions were centered on how frequently the author described what I have felt in my own career, albeit we are in slightly different professions. The book is divided into three parts: Fallibility, Mystery, and Uncertainty. Perhaps you can already see the correlations I was making.

The other reaction that I had is not directly related to the book but instead is a larger question I’ve been walking around with for some months now: how can software testers who test products such as medical devices get to know medical practitioners?

I have a vision of building a partnership between medical practitioners and software testers. I am uncomfortable with the thought of testing medical devices used by a group of practitioners that I’ve never met. It frustrates me deeply that I’m not able to bridge that gap. How fantastic it would be to build an association where medical practitioners and software testers could exchange ideas. I don’t mean the high-level executives from either communities, I’m sure there are sales and purchasing associates at both ends of our fields that talk and go out to occasional fabulous lunches.

I would like to create a bridge between the people who use the devices and those of us who are software testers located in office buildings far away from the real life situations where medical devices are actually used. It seems to me, we should know each other.

But with a deep sigh, I don’t at this time know how to build that association. And I don’t know if there are other people in either profession who would also believe that this could be a valuable association. I have made some attempts in recent time to investigate the possibility but nothing has come of it, yet.

In the meanwhile I’m intrigued to read passages from a surgeon who has clearly acquired years of real life experience describing his journey and to feel correlations to my own work and my thoughts and feelings towards my work. Despite years of sustained practice and training, the author mentions the doubts that creep in. The time constraints, the ethical dilemmas and the fact that sometimes despite years of training and field work, situations occur in ways where the path to proceed and the decisions to make are not clear. It sometimes takes judgment to proceed.

I think this book could be a good read for beginning software testers to recognize that some skills take years of sustained focused engaged practice. And that it is unrealistic to think that reading one book or passing one certification exam of any flavor can replace years of apprenticeship. And that even after years of practice, we still must use our own judgment and common sense mixed with what has become intuition to make decisions.

So I imagine people might think drawing correlations between software testing and surgery might be rather extreme. But is it really? When I think about the testing I’ve done with medical devices and recognize that should a device introduce an error, patient death is a possibility – all my work does is move me further down the hall from the outcome.

It saddens and frustrates me that in our world, we esteem medical practitioners to a god-like status but that too frequently I see software testing deemed by some as such a lowly occupation that they seek across the globe to find the cheapest possible resources to pawn software testing off to. Can you imagine price-shopping a surgery in the same fashion? After all if a medical device is tested poorly, the most brilliant and skilled surgeon could press a button on a device only to end up in dire consequences potentially due to poor software testing. Given that possible outcome, we should esteem software testing in its rightful place as an acquired intelligent skilled profession. And that we should pay people accordingly regardless of their location as long as the skills used and provided equate to these higher expectations.

When it comes to testing a medical device, I don’t see myself as any less responsible or removed from the outcome just because I might not be as physically close as an attending physician. Shouldn’t there be doctors and medical practitioners thrilled and relieved to know that some of us who test medical devices care that deeply. And that some of us, would like to meet?

Share
Posted in storytelling | Comments Off

brain games

I finally had a chance to visit a store in Chicago, called Marbles, The Brain Store. They sell games designed to strengthen the brain. Their website and newsletters include other info centered around the brain – and not everything is about buying stuff.

I went around the store looking for games that would be interesting to me. Not surprising, I gravitated towards word games. I picked up Bananagrams. Its a game that travels well and can easily be played in small windows of time. Perfect.

I found I was getting frustrated just looking at a couple of the visual perception games like Tantrix and Tangoes. So I bought both to see if I can improve skills in that area. And I want to see if I can figure out why these games frustrate me.

Check out Marbles it’s pretty cool.

Share
Posted in Uncategorized | Comments Off

Switch to our mobile site