characteristics of spreadsheets developed with the … · characteristics of spreadsheets developed...
TRANSCRIPT
Characteristics of Spreadsheets Developed with the SSMI Methodology
EuSpRIG 17th Annual Conference, 2016—London, UK
Paul Mireault Founder, SSMI International Honorary Professor, HEC Montréal [email protected]
Presentation Plan
�2
‣ Introduction: Teaching Excel
‣ SSMI Methodology
‣ Characteristics
‣ Use of worksheets
‣ Names, and Far and Local References
‣ Complexity (or Simplicity?)
‣ Copying
‣ Transitive References (absence of)
‣ Auditing
Excel Courses
‣ Like teaching a dictionary.
‣ Teach a function, show an example
‣ Usual example: Pivot Table
‣ When you need this,
‣ This is how to do it.
‣ Usual example: VLOOKUP�3
Excel Courses in Business Schools
‣ Teaching Excel is done in isolated silos:
‣ Excel in Finance, Excel in Marketing, Excel in Human Resources, Excel in Accounting, etc.
‣ Usually they are template based:
‣ ROI analysis and Leverage Buy Out in Finance,
‣ Personnel scheduling in HR
‣ Ratio analysis in Accounting
‣ Product Management in Marketing
‣ More focused on the domain than on the Excel expertise and creativity.
�4
Teaching How to Use Excel
‣ You know the old saying:
‣ Give a man a fish and you feed him for one day…
‣ Teach a woman to fish and you feed her for life.
�5
SSMI Methodology
‣ Based on proven Software Engineering, Computer Science and Information Systems principles
‣ Conceptual Model (IS)
‣ Variable Names (CS)
‣ Modules (CS)
‣ 3-tier architecture (SE)
�6
SSMI Methodology
‣ Is a general methodology that can be used in any domain.
‣ Has only one rule: Don’t mix operators.
‣ (It can be broken in special cases)
‣ No color requirements or suggestions. (They belong in the interface.)
‣ Lets developers easily explain their spreadsheet.
‣ Facilitate long-term maintenance and improvement.�7
�8
Physical ModelTime
DiskExcel
manipulations
User Computer
Logical and mechanicalerrors
Typical Process Spreadsheet Analysis, Design and Implementation
Typical Process Spreadsheet Analysis, Design and Implementation
�9Source: Hermans, Felienne (2014): Enron Spreadsheets and Emails. figshare. http://dx.doi.org/10.6084/m9.figshare.1221767
Model or Model?
�10
A spreadsheet is a model of the real world
The Formula Diagram and the Formula List are the Conceptual Model of
the spreadsheet
Model or Model?
�11
Formula List Formula Diagram
In Information Systems, we use a Conceptual Model.
‣ Describes what the user needs, without references to the technology used to implement it.
Structured Spreadsheet Modelling and Implementation
Disk
�12
DiskExcel manipulations
Spread- sheet
file
Developer ComputerDomain
knowledge
Spreadsheet knowledge
Formula Diagram
and Formula List
Same or another
developer
Mechanicalerrors
Conceptual and Logical Models Physical ModelTime
Logical errors
Structured Modelling
Behind-the-Scene Interface
Constants
Calculated
Input
CalculatedVariable Output
Two categories of variables, with sub-categories:
�13
Characteristics of the SSMI Methodology
‣ Spreadsheet documentation: Formula Diagram and Formula List
‣ Overview of relationships
‣ Facilitates peer review
‣ Facilitates hand-off of the model
�15
Single-Purpose Worksheets
‣ This is the 3-tier Architecture principle.
‣ Separation of Inputs, Calculations and Outputs.
‣ Also, separation of single-value and repeated-value variables.
�16
Names
‣ Every variable is given a Name where it is defined.
‣ Input variables and Parameters are defined in their parameter worksheet (single value or repeated value.)
‣ Calculated variables are defined in their model worksheet (single value or repeated value.)
‣ The cells associated with a name are formatted Bold-Italic. Calculated variables are separated from their defining variables with an upper border (This is the only formatting requirement.)
�17
Far and Local References
‣ All reference formulas use a reference to a named variable, and are considered Far References.
‣ All definition formula use the cells in the top part of their defining block as relative cell coordinates, and are considered Local References.
‣ There is an exception when the formula uses a set of values (like a LOOKUP): in this case we refer to the set of values with a named reference
�18
Names and Absolute/Mixed References
‣ A Name that refers to a single cell is the equivalent of an absolute reference in Excel.
‣ A Name that refers to a row is the equivalent of a mixed-reference in Excel:
‣ the row is Absolute and the column is Relative.
‣ Names that refer to columns are treated similarly.
�19
Non-Recommended Modelling
Variable Type Formula or initial value
Daily Rate Parameter $58
Number of Days Input 12
Daily Allowance Parameter 100
Total Distance Input 1452
Distance Cost Parameter $0,36
Rental Cost Result Number of Days * Daily Rate + IF(Total Distance > Number of Days * Daily Allowance, (Total Distance - Number of Days * Daily Allowance) * Distance Cost, 0)
22
Structured Modelling
Variable Type Formula or initial value
Daily Rate Parameter $58
Number of Days Input 12
Daily Allowance Parameter 100
Total Distance Input 1452
Distance Cost Parameter $0,36
Rental Cost Result Daily Cost + Extra Distance Cost
Daily Cost Calculated Number of Days * Daily Rate
Total Allowance Calculated Number of Days * Daily Distance
Extra Distance Calculated IF(Total Distance > Total Allowance; Total Distance – Total Allowance; 0)
Extra Distance Cost Calculated Extra Distance * Distance Cost
23
Formula Copying
‣ Partial or incomplete copying is an often cited cause of errors.
‣ Developers tend to copy formulas as they are written.
‣ It interrupts their creative process.
‣ It’s a waste of time
25
Formula Copying
‣ Does not work when columns contain different constant values (e.g. names of months)
‣ Such constants can be created in the proper parameters sheets and named appropriately.
‣ The full column copying then works well with the named reference to the constants.
27
Transitive Reference (Daisy Chains)
‣ A transitive reference occurs when the developer references a reference of a variable instead of its definition.
‣ While it does not cause an error immediately, it may cause one when the spreadsheet is modified in the future.
‣ It’s tempting, for a developer, to point to a reference that is just above instead of navigating to the variable’s definition (that may be far away.)
28
Auditing
‣ Understanding the model is done with the Formula Diagram and the Formula List.
‣ Verifying the spreadsheet.
‣ Verify that each variable is implemented according to the Formula List.
‣ In the case of a repeated variable, copy the values in a temporary sheet, recopy the first column over the others to the right and see if some values have changed.
31