, , , , , , , , , , , , , ,

I need a report that shows me how much I spent yesterday!

Not an atypical ‘requirement’ from a business users’ point of view, huh?  What do you as a Software Engineer DO with this and similar statements?

Let’s start with a couple of questions that we can use to expand and clarify on a statement like this:

  • You SHOULD already know what business unit this user is in but if you are at all unsure, ASK!
  • You SHOULD already know what data this user’s business responsibility has access to but if are you unsure, ASK!
  • Are there other data fields that are important to the report being requested that are NOT within the reach of this Business User?
  • Are their calculations that are to be performed for this report and are the data required for these calculations currently available within the ‘reach’ of this report?

As a recap, the Business Unit and its accessible data will point you to a segment of the organization’s Entity Relationship Diagram (ERD).  This can act as an initial data context for these discussions.  If other data is needed for this report but is not within the organization’s data context, then you will need to inspect the rest of the Organization’s ERD to confirm that there is a usable path to get to this related data.  Once this path is confirmed as available, defined as a needed new path to existing data, or clearly identified as a new data point that has not yet been collected, we can add this to the Proposed Solution ERD.

The process of collecting the data together for the delivery of this report can then begin with the answers to a few other questions:

  • What business condition(s) should trigger the creation of this report?
    o   Frequency: Daily, Weekly, Monthly, Quarterly, Annual, etc.
    o   Number of transactions (since last report, or overall in increments, etc.)
    o   Data relationships indicating an situation: normal, abnormal, other
  • What conditions will affect when certain calculations are Needed or Not Available?
  • Where can new data be found and how should it be stored for use in this report?
  • What sequence or search criteria should be used to select data to be included in this report?
  • What changes should be made to the data to indicate that this report has been delivered for a certain date range, business condition, or other situation?

The process model can now be built as a Data Flow Diagram or Object Model with Methods to show the identification of the situation(s) that will trigger this report; the sequence of data collection and selection, the calculations that are to be included, and the production of the report.

The distribution of this report is still not determined but with just a few more questions, a Software Engineer should be able to determine the media, distribution path, and list of recipients.