Requirements Analysis Using Event/Response And Use Cases – Event Discovery Part 2

Planning

In the previous post I discussed how to use the Context Diagram for initial Event discovery. In this post I will present how to use the outputs from your Event List to discover more events.

The fifth column in your Event List (the one labeled “Which creates this…”) are the outputs of your business processes. You can use these outputs to discover more Events by asking the following questions for each output:

  • Does the output go to a “Customer”? (an entity outside of the center bubble in the Context Diagram). If yes, then that is where the output ends. If no, then that means it must be input to another event or the output has no purpose. Ask your SME’s (Subject Matter Experts) what other business processes use this data. For each identified business process, you can flesh out the Event List row for that process.
  • What are the “Create” Events for this output? These are the Events that result in the establishment of a new row (or rows) of data in the output in question. For example, the sale of a product creates a Sales Transaction record. Note there may be more than one Event that creates rows in this output.
  • What are the “Change” Events for this output? For this you may need to examine each data element in the output. For each element, ask the SME’s what business processes change this data. Use these answers to continue to build the Event List.
  • What are the “Delete” Events for this output? These are the Events that result in the logical or physical removal of a row in the output. For example, if the record retention requirement for the output is 5 years, then the time-based event “Record Retention Limit Reached” will be added to your Event List.

Now that you have added many more rows to your Event List, you will have more outputs to examine. Cycle back thru the Event List outputs and ask the same questions listed above. You will find your Event List grows very quickly!

In the next post I will continue to present additional techniques for Event Discovery.

Note: My Kindle book “Project Management For The Real World”, is available at

https://www.amazon.com/author/lettera

Requirements Analysis Using Event/Response And Use Cases – Event Discovery Part 1

Planning

In prior posts I introduced the Context Diagram and the Event List. In this and the upcoming series of posts, I will define some techniques you can use to discover events and complete the Event List and Context Diagram.

The very first place to start defining events is the Context Diagram. Every input arrow on the diagram represents an event to which your “business” must respond. Recall that our definition of your “business” is the boundary of the business area under study. Inside of the business bubble in the Context Diagram, you have control over the business processes and data flows. Outside the boundary, you can negotiate the interfaces with the Suppliers and Customers but have little or no control over their business processes.

Let’s examine an example of how the Context Diagram can provide events. For this example, let us say the Supplier is an Employee and the input arrow is “Travel Expense Details”.

Our first column on the Event List is “When this happens”. In this example, you would state “Travel Expense Report Submitted”.

The second and third columns are “This Source” and “Gives us This”. In this example, the Source is “Employee”, and “Gives us This” is “Travel Expense Details”.

The fourth column is “Then we do this”. These are the labels of the business processes your “business” will execute upon receipt of the “Travel Expense Details”. You might have a list of processes that looks like this:

  • Verify expenses comply with business policy
  • Approve/Reject Expenses

The fifth column is “Which creates this”. These are the outputs of each business process. The outputs of the first process listed above might be “Valid Expenses” and “Invalid Expenses”. The outputs of the second process listed above might be “Approved Expenses” and “Rejected Expenses”.

The sixth column is “… and we give it to …”. These are the recipients of the outputs listed in the fifth column. In this case the recipient of the Valid and Invalid Expenses could be “Employee’s Manager”. The recipient of “Rejected Expenses” would be the Employee while the recipient of “Approved Expenses” could be the Travel Expense Data Repository.

Be sure to keep implementation details out of this analysis. You don’t want solutions to be constrained by using specifics such as “email:, “reports”, “database”, etc.

In the next post, I will continue the discussion of Event Discovery and show how, once you have a few events listed, you can use these events to discover more events and get the complete scope of the project.

Note: My Kindle book “Project Management For The Real World”, is available at

https://www.amazon.com/author/lettera

Requirements Analysis Using Event/Response And Use Cases – The Context Diagram

Planning

The Context Diagram is the place to start when doing your analysis. It should be done in conjunction with the stakeholders that are most knowledgeable about the business processes for the domain under study. The initial list of Business Events will be derived from the Context Diagram.

Start with a circle in the middle of the diagram. This represents the area of the business in the scope of the project. All of the processes within this circle are in scope and are able to be modified or added to as part of the project scope. Think of it as if this business function were outsourced to a service provider and the Executive Sponsor of the project is the CEO of this service provider. What would they need to know to create a business model?

First, you would want to define “who are my Customers?” Your Customers are recipients of your business’s outputs (in most projects, these are flows of information and data). Ask the key stakeholders “who are the current recipients of information your business function?” Draw the Customers as rectangles on the right hand side of the diagram. It is not important at this time that you have the complete list of Customers, only that you have some. We will complete the list of Customers in an iterative process in conjunction with the Event/Response Model.

Next, define the types of information that flow to each Customer. Draw these as arrows from the center circle and connecting to the Customer rectangle. Have a short, high level description of the flow on each arrow.

After that you need to define “who are your Suppliers?” The Suppliers are providers of the business’s information and data. Ask the key stakeholders “who are the current providers of information for your business function?” Draw the Suppliers as rectangles on the left hand side of the diagram. It is not important at this time that you have the complete list of Suppliers, only that you have some. We will complete the list of Suppliers in an iterative process in conjunction with the Event/Response Model.

Next, define the types of information that flows from each Supplier. Draw these as arrows from the Supplier rectangles and connecting to the center circle. Have a short, high level description of the flow on each arrow.

Rules for Suppliers and Customers:

  • They can be individuals, roles, departments, organizations, systems, vendors, etc. Anything that is a net originator or receiver of data or information from your “business”.
  • Some entities can be both Suppliers and Customers. so they will have arrows going in both directions.
  • If you are struggling with whether a Supplier or Customer is inside or outside the circle, the general rule is for entities outside the circle, the project has no control over their processes. The project can only change the nature and content of the information flows to and from these entities.
  • There are no flows represented that go from entity to entity. They may exist but they are of no concern to the project.

Here is an example of a Context Diagram:

Context_Diagram

Note: My Kindle book “Project Management For The Real World”, is available at

https://www.amazon.com/author/lettera

Requirements Analysis Using Event/Response And Use Cases – The Event Model

Planning

The Event Model looks at the scope of your project as if this business function is being outsourced to a third party business and your Executive Sponsor is the CEO of that business. This is the new way of thinking about requirements that I referred to in the Overview post.

The Event Model consists of the following elements:

  • The Context Diagram – shows your business boundary as a circle in the center of the diagram with your suppliers, customers and information flows surrounding the center circle. I will present this in detail in the next post.
  • The Event/Response Model – this contains the detail of the events that “wake up your business” and requires the business to have a planned response. It is progressively elaborated in conjunction with the Context Diagram. More on this in a future post.
  • Use Cases – are derived from the Event/Response Model and show the specific steps required for each business response. At the end of the requirements analysis, this becomes (or is the basis for) your “Business Standard Operating Procedures Manual”. Functional Requirements are derived from the Use Cases.

An important thing to remember when creating the Event Model is to keep it independent of technology. It needs to address “what we do” and not “how we do it”. Doing this will help you envision more design alternatives than you would if you locked in a solution at the requirements level.

In the next post I will give you a closer look at how to create a Context Diagram and utilize it to get the requirements discovery rolling.

Note: My Kindle book “Project Management For The Real World”, is available at

https://www.amazon.com/author/lettera

Requirements Analysis Using Event/Response and Use Cases – Analysis Sequence

Planning

Getting requirements right is a process. Your business stakeholders will rarely (if ever) be able to give you all of their requirements without some method of generating relevant questions to draw the requirements from them. What I am going to present in this and the following posts on this topic is NOT a new way to document your old thinking. It is a new way to think about requirements.

The deliverables created from this approach are:

  • Identification of all processes in scope
  • Documentation of the specific Use Cases for each process
  • Identification of all of the stakeholders that interact with the business processes
  • Creation of a framework with which you can generate and execute your test cases

Many analysts start and end their requirements elicitation with “functional requirements” (e.g. “I need to search by Last Name” or “Requests for time off need to be approved by the manager”). In the Event/Response/Use Case approach, functional requirements are derived from the Use Cases at the end of the analysis process.

The analysis sequence is as follows:

  • Business Objectives
  • Project Objectives (1st cut)
  • Event Model
  • Project Objectives (verified)
  • Use Cases
  • Functional Requirements

In the next post, I will discuss how the Business and Project Objectives are defined and used in the Event/Response methodology.

Note: My Kindle book “Project Management For The Real World”, is available at

https://www.amazon.com/author/lettera

Requirements Analysis Using Event/Response And Use Cases – Overview

Initiation

This is the start of a multi-part series on my favorite requirements elicitation technique: the Business Event/Response Analysis. Early versions of this methodology were developed in the late 1980’s by some of the great system development minds of that era. Since then it has evolved and I have adapted it to meet the needs of whatever organization for which I am working.

There are some that think you can gather requirements by just asking the sponsors and users “what do you want?”. Needless to say, this method will generate incomplete requirements and tends to start and end with functional requirements. In the latter half of the project when large requirements gaps are discovered, the sponsors/users blame the analyst and vice versa.

When I teach on this topic, I tell the analysts it is their responsibility to gather complete requirements. Given this, we need a method that will (1) generate the appropriate questions to ask, (2) ensure that we have the complete set of requirements, and (3) allow us to derive the functional requirements from the model.

The Business Event/Response method meets these desired outcomes. The advantages are:

  • It helps the Business Analyst create the questions needed to draw the requirements from the Business Owner, even if the Analyst has no knowledge of the business area.
  • It organizes the requirements in the context of Business Processes and Usage to promote better understanding.
  • The output serves as a significant starting point for defining the testing scope and scenarios.

In the upcoming posts I will describe this method in detail.

Note: My Kindle book “Project Management For The Real World”, is available at

https://www.amazon.com/author/lettera

Requirements Analysis Using Event / Response and Use Cases: Final Summary

Planning

In the preceding posts, I gave you some guidance on how to execute the Event/Response methodology for scope and requirements analysis. In this last of the series of posts on this topic, I will take the 5,000 foot view and put it all together in a summary of steps.

  • Step 1 – Define the Business Objectives (the measurable benefits realized after implementation). These will be used to verify the scope and requirements.
  • Step 2 – Define the Project Objectives (the products, services and/or results delivered at project implementation). These will also be used to verify scope and requirements.
  • Step 3 – The Context Diagram. Look at the area under study as an outsourced business, with Suppliers (of data) and Customers (recipients of data/information/results).
  • Step 4 – The Event List. This represents your “business model”. You define all of the events that “wake up” your business and require a planned response. In the prior posts, I presented a variety of techniques for fleshing out these events. Included in the Event List are your business processes and stakeholders.
  • Step 5 – Validate the Event Model. Compare your event scope with the Business and Project Objectives and verify with the Project Sponsor that all objectives are covered by this scope.
  • Step 6 – Construct Use Cases. Use the defined business processes in the Event Model as the starting point for creating Use Cases.
  • Step 7 – Test Planning and Execution. The Event Model is a wonderful framework in which to define your test scenarios and cases. Take advantage of all the work you did in the requirements phase to make your test planning and execution easier.

That’s it for this topic. I hope you found it informative and useful. I have used this technique successfully in many real-world projects.

Requirements Analysis Using Event/Response and Use Cases: Test Planning & Execution

Planning

In addition to being a great way to elicit the complete scope of a project, the Event/Response methodology delivers a comprehensive framework for test planning and execution. When using this methodology, what many call “User Acceptance Testing” can be replaced by the term “Event Testing”.

In my prior posts on this topic, I identified the primary deliverables of the Event/Response methodology as:

  1. The Event List (containing the event that triggers the response, the origin and data content of the information flow into your “business”, the named processes, the outputs of the processes and the destinations of the outputs), and
  2. The Use Cases. You can plan to test by simulating the actual Events, creating the data flows, executing the processes and examining the outputs. The Use Cases give you a good start on creating the data and usage variations for each Event. Doing this yields a direct mapping of the scope and requirements to the test cases and execution.

Note that since the Event List also contains the roles of the actors initiating the events and processes, as well as the roles receiving the outputs, security testing can also be built into this framework.

Another major plus of planning and executing the tests this way is that you are testing the system as it will actually be used in context, as opposed to functional testing which tests bits of functionality in isolation.

A recent project of mine used this methodology and yielded 180 Events and over 1,600 test cases. Because of this comprehensive approach, the system was very well tested and only experienced minor problems after implementation.

Requirements Analysis Using Event / Response and Use Cases: Functional Requirements

Planning

In my previous post on the topic of Requirements Analysis, I showed you how to derive your Use Cases from the Event List. I also presented a list of recommended elements to be included in each Use Case. The primary element is the list of steps taken by the Actors and the System they interact with. Within these steps are the Functional Requirements.

In my initial post in this series, I mentioned that starting and ending requirements gathering with functional requirements was not very effective. Why? Because functional requirements are at too low of a level and places the burden on the memories of SME’s (Subject Matter Experts) instead of the analytical questions of the Business Analyst, where the burden really belongs. For large systems, if you start and end with functional requirements you will almost assuredly have an incomplete set of requirements.

Using the Event/Response methodology, we started with Event Discovery, using a wide variety of techniques to generate the questions the Business Analyst needs to ask. We fleshed out the Events, which led to discovery of the business processes in scope. We validated the model to make sure we had the complete list of Events and processes. We used the processes to create our Use Cases. We will now examine the Use Cases to derive the functional requirements. This is an organized, top down approach to requirements that will output as complete a set of requirements as is possible.

Within the steps of the Use Cases are things like “Insert Debit Card”, “Read Card”, “Select Action”, “Browse by Last Name”, etc. These are all functional requirements that must be satisfied by the solution. The system design must address all of these requirements. However, these are low-level capabilities and are not a good source for overall system design. By using the Event Model, the system designer can see the big picture and design a friendlier, more efficient system than is possible using just the functional requirements.

In the next post I will address the advantages of the Event Model when designing and executing tests.

Requirements Analysis Using Event/Response and Use Cases: Building Use Cases

Planning

Now that you have a complete and comprehensive Event List, you can now use this to create your Use Cases. Before I show you how, let’s first define “Use Case”:

  • A Use Case is simply a list of steps to achieve a goal
  • It may have multiple paths (for example, the Use Case for getting cash from an ATM has the normal path, plus an alternate path for the case where a user asks for more money than in their account)
  • A Use Case Scenario is a specific path thru the Use Case

Column 4 of the Event List (“…Then We Do This”) contains the names of all of the business processes within the scope of your project. Take each of these process names and create the corresponding Use Cases. Here is a collection of data elements which you can include in the Use Cases:

  • Use Case Name and ID (you can use a scheme such as capital U + the Event Process ID + decimal point + the Use Case sequential number. For example, U2.1.1)
  • Use Case brief description (The process name and perhaps an additional clarifying sentence or two)
  • Sub-System Name (e.g. “Accounts Payable”)
  • Triggering Event (from the Event List)
  • “Actors” (Stakeholders that interact with or are affected by the Use Case; Your Event List is a great starting point for identifying your Stakeholders)
  • Pre-conditions: What needs to be true before the execution of this Use Case (for example, “Customer ID has been established”)
  • Post-conditions: The state of the system after execution of the Use Case (for example, “Employee has possession of a company credit card”)
  • Process Flow. Include a column for the Actors and a column for the steps executed by the Actors and the System. Do this until the process is complete and accomplishes the Post-conditions.

In the next post I will discuss deriving Functional Requirements from the Use Cases.