What if I have to come up with doomsday scenarios exhaustively?

What if I have to come up with doomsday scenarios exhaustively?
Balachandar Ramadurai | May 27, 2010
This is the question that is unnerving to most of us, well, atleast me. We confront doomsday scenarios everyday.
“We are going to run out fossil fuels by 2050”
“Temperature of the earth is going up by 6 degrees, if yes, then…”
But, in a project context, how does one predict all of this ? The idea is not rumour mongering and create fear in people’s minds. If one is ready with the risks or scenarios, one can atleast attempt to solve the problem and at another level, be ready for the risk.
Now, there is a tool by the name, Functional Analysis or Functional Attribute Analysis. When I am through explaining what it is, one gets the feeling that this is a distant cousin of MindMap and a fraternal twin of Concept Map. But the devil is in the detail, as they say. The details are given below:
Functional Analysis
1. Identify all possible elements or objects, NOT actions, but specific software modules, players, machines
For example, importing is an action, but importing module is an object.
Use a spreadsheet to list down all the elements.
If the system is too complex, consider breaking down into components.
Addition of objects can happen at a later stage as well, so don’t fret if you think you have not been exhaustive.
2. Interaction Matrix: In the above spreadsheet, rows have all the elements. Transpose these on corresponding columns as well. If elements physically touch each other or there is some direct interaction, mark “+” in the corresponding cell.
For example, if the system is a water bottle. Cap vs Bottle, the interaction is “+”, although the cap does no actual function to the bottle.
3. The object with the maximum “+” signs should be drawn at the centre of the functional analysis diagram
4. Keep adding objects to the diagram in the order of the number of “+”s
5. Add relationships between the objects, if they exist. Indicate the direction of the relationship using an arrow.
6. Add verbs on these relationships.
For example, Importing module “imports” data file.
7. Force verbs even if it is difficult to come up with a verb on all relationships
When you finish this diagram, what you have is a functional analysis diagram.
Scenario and Test Case Generation
1. Start with the key object. Key object is the one which has the maximum number of connections and hence dependencies are extremely high.
2. In each of the relationships with the key object, ask yourself 4 questions/consider possibilities in this order
a. What if this object doesnt exist? For example, What if the database crashes and is offline?
b. What if the relationship is insufficient? For example, what if they are only a few fields in the record missing?
c. What if the relationship is excessive? For example, what if there are 20,000 transactions in a single day?
d. What if the relationship or transaction harmful? For example, what if seller enters erroneous data into the signup forms (in ebay, say) ?
Tip – Dwell on each possibility for some time to get different interpretations of that possibility for that relationship
3. Do this rigorously for all the relationships to generate exhaustive scenarios.
Happy Ending
All scenarios and corresponding test cases should have been generated exhaustively. Whenever there is a change in specifications, all you need to do is pictorially, which relationship is this change affecting and one can generate test scenarios for the change.
This methodology is intended for Testing and Risk Analysis tasks. If you have any questions, please feel free to reach out to me.
Communities:Innovation, Knowledge Services, Project Management, Tech Leads, Testing


One thought on “What if I have to come up with doomsday scenarios exhaustively?

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s