SoftwareReleaseProject

Causal loop example given by van Zijderveld (MARVEL)

Diagram

Information

This information is part of the Business Simulation Library (BSL). Please support this work and ► donate.

In 2007 Erik J.A. van Zijderveld introduced what he coined a "Method to Analyse Relations between Variables using Enriched Loops (MARVEL)" [24]. He made the following observations:

  • A causal loop diagram (CLD)—or impact diagram—is a good tool for integrating information from different stakeholdes and a modeling paradigm, which people with different backgrounds can easily relate to.

  • While quantitative data may be hard to obtain quickly and reliably, stakeholders and decision makers can often reach consensus on speed and strength with regard to impact relations.

  • Decision makers can typically identify pressure or intervention points and relevant performance indicators in such diagrams.

  • Often to come up with relevant insight it will suffice to show initial dynamic behavior, i.e., we do not need the kind of long-run validity that a fully fledged simulation model provides—given that the effort building such a model will usually be 10 to 100 times higher.
In section 5 of his paper van Zijderveld gives an illustrative example for the application and utility of MARVEL. The MARVEL diagram for that illustrative application is given below. The problem at hand is a software release project, i.e., a new software is to be introduced in a company, which has great impact upon procedures and organization, while resistance against the software endangers the project. The resistance stems from dismissals, low software quality and poor management [24, p.13].

MARVEL Diagram for a new software release project [24, p.14]
CausalLoopDiagram.png

In the diagram, the thickness of an arrow indicates the strengh of impact whereas length and number of "barriers" at their tips indicate the speed of impact propagation. These attributes are assigned qualitatively using weak, average, strong, very strong to rank strengths and low, average, high, very high to rank speeds.

The model diagram below illustrates how such a model can be built using the →CausalLoop package. Impact relations between variables are encoded using the →ProportionalityDelayed component with global parameters for strength (wk, av, st, vs) and speed (v1, v2, v3, v4) in place, the latter being transformed to delay times, which are inversely related to speed.

Diagram View
ModelDiagram.png

In accordance with the MARVEL version there are four control or intervention points, which can be turned on or off for a simulation run:

  • c1 : budget control with setpoint = 0.8

  • c2 : mandate control with setpoint = 0.7

  • c3 : management knowledge level control with setpoint = 0.5

  • c4 : management quality control with setpoint = 0.6

These controls mean that whenever there is a deviation between setpoint and actual level of the variable under control, then corrective action will be taken, i.e. a flow to the stock, in order to erradicate the deviation within the chosen adjustment time, whcih is set to 1 yr for all controls.

There are three main performance goals: cost effectiveness (costs), production quality (quality), and software usage (usage). In this example the normalized stock values pertaining to the goals are simply mapped upon the linear scale [0,1]. The graph blow shows the development for these performance indicators over a period of 10 years with just the budget control (c1) activated.

Performance Evaluation (c1 active)
PerformanceC1.png

In order to better combare different scenarios we can use a weighted average performance and calculate the mean over the simulation period (→totalPerformance). Using this measure we can compare different combinations of interventions and it turns out that a combination of c3 and c4 shows best average performance albeit withouth considering the control effort (see Notes).

Performance (basis points) for different control combinations
ControlCombinations.png

Notes

  • The parameters in the model are set to the values specified in van Zijderveld's paper whenever possible.

  • The model by specification is set up in equilibrium as there are not processes of exogenous growth in the model and all motion is triggered by changes. If at least one control is activated the model will show dynamic behavior.

  • Since control elements (optionally) report their rates, i.e., the control effort, one can readily expand the evaluation of scenarios by comparing performance gains to the required control effort.

See also

HealTheWorld

Parameters (15)

wCost

Value: 1

Type: Real

Description: Weigth for cost performance

wQuality

Value: 1

Type: Real

Description: Weigth for quality performance

wUsage

Value: 1

Type: Real

Description: Weigth for usage performance

wk

Value: 0.2

Type: Real

Description: Weak influence

av

Value: 0.5

Type: Real

Description: Average influence

st

Value: 1

Type: Real

Description: Strong influence

vs

Value: 1.2

Type: Real

Description: Very strong influence

v4

Value: 7889238

Type: Time (s)

Description: Very high speed

v3

Value: 15778476

Type: Time (s)

Description: High speed

v2

Value: 31556952

Type: Time (s)

Description: Average speed

v1

Value: 94670856

Type: Time (s)

Description: Low speed

c1ActiveQ

Value: true

Type: Boolean

Description: = true, to activate the budget control

c2ActiveQ

Value: false

Type: Boolean

Description: = true, to activate the clear mandate control

c3ActiveQ

Value: false

Type: Boolean

Description: = true, to activate the management knowledge level control

c4ActiveQ

Value: false

Type: Boolean

Description: = true, to activate the management quality control

Connectors (1)

modelOutput

Type: DataOutPort

Description: The model's performance output

Components (73)

modelSettings

Type: ModelSettings

Description: Setting important global variables within a model

lab1

Type: MatFlowIndicator

Description: Directional indicator for material flows in a diagram

lab2

Type: MatFlowIndicator

Description: Directional indicator for material flows in a diagram

lab3

Type: MatFlowIndicator

Description: Directional indicator for material flows in a diagram

lab4

Type: MatFlowIndicator

Description: Directional indicator for material flows in a diagram

lab5

Type: MatFlowIndicator

Description: Directional indicator for material flows in a diagram

lab7

Type: MatFlowIndicator

Description: Directional indicator for material flows in a diagram

lab8

Type: MatFlowIndicator

Description: Directional indicator for material flows in a diagram

lab9

Type: MatFlowIndicator

Description: Directional indicator for material flows in a diagram

lab10

Type: MatFlowIndicator

Description: Directional indicator for material flows in a diagram

lab11

Type: MatFlowIndicator

Description: Directional indicator for material flows in a diagram

lab12

Type: MatFlowIndicator

Description: Directional indicator for material flows in a diagram

lab13

Type: MatFlowIndicator

Description: Directional indicator for material flows in a diagram

budget

Type: SimpleInformationLevel

Description: Available budget

externalResources

Type: SimpleInformationLevel

Description: Available external resources

clearMandate

Type: SimpleInformationLevel

Description: Clear mandate assignment

partiesInvolved

Type: SimpleInformationLevel

Description: Number of parties involved

decisionSpeed

Type: SimpleInformationLevel

Description: Speed of decision making

adHocDesignDecisions

Type: SimpleInformationLevel

Description: Number of adhoc design decisions

designQuality

Type: SimpleInformationLevel

Description: Quality of software design

swQuality

Type: SimpleInformationLevel

Description: Software quality

swAcceptance

Type: SimpleInformationLevel

Description: Software acceptance

swUsage

Type: SimpleInformationLevel

Description: Software usage

prodQuality

Type: SimpleInformationLevel

Description: Quality of production

prodEfficiency

Type: SimpleInformationLevel

Description: Production efficiency

costs

Type: SimpleInformationLevel

Description: Costs

costEffectiveness

Type: SimpleInformationLevel

Description: Cost effectiveness

changePressure

Type: SimpleInformationLevel

Description: Need to change

mgtKnowledgeLevel

Type: SimpleInformationLevel

Description: Management knowledge level

decisionQuality

Type: SimpleInformationLevel

Description: Quality of decisions made

swMgtOrgCapacity

Type: SimpleInformationLevel

Description: Software management organization capacity

employees

Type: SimpleInformationLevel

Description: Number of employees

swResistance

Type: SimpleInformationLevel

Description: Resistance against software

mgtQuality

Type: SimpleInformationLevel

Description: Management quality

r1

Type: ProportionalityDelayed

Description: External resrouces >> clear mandate

r2

Type: ProportionalityDelayed

Description: External resources >> management knowledge level

r3

Type: ProportionalityDelayed

Description: External resources >> management quality

r4

Type: ProportionalityDelayed

Description: External resources >> software management organization capacity

r5

Type: ProportionalityDelayed

Description: Budget >> external resources

r6

Type: ProportionalityDelayed

Description: Clear mandate >> number of parties involved

r7

Type: ProportionalityDelayed

Description: Costs >> cost effectiveness

r8

Type: ProportionalityDelayed

Description: Decision quality >> design quality

r9

Type: ProportionalityDelayed

Description: Decision speed >> number of ad hoc design decisions

r10

Type: ProportionalityDelayed

Description: Design quality >> software quality

r11

Type: ProportionalityDelayed

Description: Management knowledge level >> decision quality

r12

Type: ProportionalityDelayed

Description: Management quality >> resistance against software

r13

Type: ProportionalityDelayed

Description: Management quality >> software usage

r14

Type: ProportionalityDelayed

Description: Change pressure >> budget

r15

Type: ProportionalityDelayed

Description: Number of ad hoc design decisions >> design quality

r16

Type: ProportionalityDelayed

Description: Number of employees >> costs

r17

Type: ProportionalityDelayed

Description: Number of employees >> resistance against software

r18

Type: ProportionalityDelayed

Description: Number of parties involved >> decision speed

r19

Type: ProportionalityDelayed

Description: Production efficiency >> costs

r20

Type: ProportionalityDelayed

Description: Production quality >> cost effectiveness

r21

Type: ProportionalityDelayed

Description: Software acceptance >> software usage

r22

Type: ProportionalityDelayed

Description: Number of parties involved >> design quality

r23

Type: ProportionalityDelayed

Description: Software management organization capacity >> software quality

r24

Type: ProportionalityDelayed

Description: Software quality >> software acceptance

r25

Type: ProportionalityDelayed

Description: Software usage >> number of employees

r26

Type: ProportionalityDelayed

Description: Software usage >> productive efficiency

r27

Type: ProportionalityDelayed

Description: Software usage >> production quality

r28

Type: ProportionalityDelayed

Description: Production quality >> change pressure

r29

Type: ProportionalityDelayed

Description: Software usage >> resistance against software

r30

Type: ProportionalityDelayed

Description: resistance against software >> software acceptance

r31

Type: ProportionalityDelayed

Description: Software management organization capacity >> number of employees

c1

Type: SimpleControl

Description: Directly influencing a stock to keep it at setpoint value

c2

Type: SimpleControl

Description: Directly influencing a stock to keep it at setpoint value

c3

Type: SimpleControl

Description: Directly influencing a stock to keep it at setpoint value

c4

Type: SimpleControl

Description: Directly influencing a stock to keep it at setpoint value

usage

Type: Performance

Description: Evaluation of a stock on a [0,1] scale

quality

Type: Performance

Description: Evaluation of a stock on a [0,1] scale

cost

Type: Performance

Description: Evaluation of a stock on a [0,1] scale

totalPerformance

Type: AccumulatedPerformance

Description: Mean weighted-average performance from startTime to currentTime

Revisions

  • Added in v2.0.0.