1 Introduction
2 Background and related work
2.1 Progression in design
2.2 Change propagation
2.3 Design process simulation
2.3.1 Simulation method
2.3.2 Treatment of concurrency
2.3.3 Task and rework durations
2.4 Complex networks in product development
2.5 Resource-constrained project scheduling problem
2.6 Summary and critique
Parameter | Description | Definition |
---|---|---|
Model assumptions
| ||
\(m\)
| No. of maturity levels |
\(m \in \mathbb {N}\)
|
\(\varDelta m_{max}\)
| Max. allowed maturity level difference |
\(\varDelta m_{max} \in \mathbb {N} \;|\; \varDelta m_{max} < m\)
|
\(p_C\)
| Probability of change initiation |
\(p_C \in \mathbb {R} \;|\; 0 \le p_C < 1\)
|
\(c_{r}\)
| Change initiates in worked-on component (1) or any component (0)? |
\(c_{r} \in \left\{ 0,1 \right\}\)
|
\(s_{max}\)
| Max. no. of change propagation steps |
\(s_{max} \in \mathbb {Z}\)
|
\(l_{min}\)
| Minimum proportion of original task duration after learning effects |
\(l_{min} \in \mathbb {R} \;|\; 0 < l_{min} \le 1\)
|
\(l_{s}\)
| Proportional reduction in task duration on each consecutive attempt |
\(l_{s} \in \mathbb {R} \;|\; 0 \le l_{s} \le l_{min}\)
|
Design situation to be simulated
| ||
\(n\)
| No. of components in the design |
\(n \in \mathbb {N}\)
|
\(q\)
| No. of resources |
\(q \in \mathbb {N} \;|\; q \le n\)
|
\(\varvec{D}\)
| Duration to complete each component in absence of rework (days) |
\(\varvec{D} \in \mathbb {R}^n \;|\; D_i>0 \; \forall i\)
|
\(\varvec{L}\)
| Likelihood DSM |
\(\varvec{L} \in \mathbb {R}^{n \times n} \;|\; 0 \le L_{ij} < 1 \; \forall i,j\)
|
\(\varvec{I}\)
| Impact DSM |
\(\varvec{I} \in \mathbb {Z}^{n \times n} \;|\; 0 \le I_{ij} < m \; \forall i,j\)
|
\(\varvec{Q}\)
| Component-resource mapping |
\(\varvec{Q} \in \left\{ 0,1 \right\} ^{n \times q}\)
|
Priority rule to be evaluated
| ||
\(f_i\)
| Priority of task \(i\) (see Table 2 for priority rules studied) |
\(f_i: (\varvec{D},\varvec{L},\varvec{I},\varvec{M},\varvec{NR},\varvec{NT}) \rightarrow p, p \in \mathbb {R} \;|\; p \ge 0\)
|
State variables which change during simulation
| ||
\(t\)
| Current simulation time |
\(t \in \mathbb {R} \;|\; t \ge 0\)
|
\(\mathbf {E}\)
| Queue of forthcoming task completion events (component and completion time) |
\({\mathbf E} \in {(C,t)}^{n'} \;|\; C \in \mathbb {N} \;|\; C \leq n \;|\; n' \in {\mathbb N} \;|\; n' \leq n\)
|
\(\varvec{W}\)
| Is each resource currently idle (1) or not (0)? |
\(\varvec{W} \in \left\{ 0,1\right\} ^q\)
|
\(\varvec{X}\)
| Is each component currently being worked on (0) or not (1)? |
\(\varvec{X} \in \left\{ 0,1\right\} ^n\)
|
\(\varvec{M}\)
| Current maturity level of each component |
\(\varvec{M} \in \mathbb {Z}^n \;|\; 0 \le M_i < m \; \forall i\)
|
\(\varvec{NR}\)
| No. of times each component was reworked since last maturity increase |
\(\varvec{NR} \in \mathbb {Z}^n\)
|
\(\varvec{NT}\)
| No. of times each component has been attempted in total |
\(\varvec{NT} \in \mathbb {Z}^n\)
|
3 Model
3.1 Identify task(s) to start
3.1.1 Accounting for maturity constraints
3.1.2 Accounting for resource constraints
3.1.3 Making priority decisions
3.2 Start task(s)
3.2.1 Calculating task duration accounting for learning
3.2.2 Updating model state to start tasks
3.3 Complete task(s)
3.3.1 Updating model state to complete tasks
3.3.2 Change initiation at task completion
-
If a change occurs, the component that is affected must first be determined. The model allows for two different assumptions here:After identifying the affected component, change is taken into account by reducing its maturity level:1.Change occurs in the component just worked on (if \(c_r=0\));2.Change occurs in a component selected at random (if \(c_r=1\)).If a change occurs in a component that is currently worked on, this activity is interrupted.$$\begin{aligned} M_i = \max (M_i - 1, \; 0) \end{aligned}$$(8)
-
If a change does not occur and the component has just reached a new maturity high, the iteration counter is reset:$$\begin{aligned} NR_i = 0 \end{aligned}$$(9)
1.
| Load input data (\(\varvec{D}, \varvec{L}, \varvec{I}, \varvec{Q}\)) and initialise model variables (\(t, \mathbf {E}, \varvec{W}, \varvec{X}, \varvec{M}, \varvec{NR}, \varvec{NT}\); Table 1) |
2.
| |
3.
| |
Otherwise: Check for next task completion event and go to 4.
| |
4.
| Update current status for occurring event (advance simulation time, increase respective maturity level and counter for attempted tasks; Eq . 7) |
5.
| Monte Carlo methods determine if an initiating change occurs
|
Otherwise: Go to 6
| |
6.
| Check if design is complete (all components have reached maximum maturity)
|
If no: Continue simulation run and go to 2
| |
If yes: Terminate simulation run and go to 7
| |
7.
|
Variable | Value | Rationale |
---|---|---|
\(m\)
| 5 | A larger number of maturity levels give a more interleaved process; this does not have significant effect on process duration, but takes longer to simulate because more discrete events must be processed |
\(\varDelta m_{max}\)
| 2 | Design progress on a component is assumed to be strongly constrained by progress in connected components (see sensitivity analysis in Sect. 5.2) |
\(p_c\)
| 0.1 | Calibration shows this value to give an amount of rework in line with empirical studies in the literature (see Sect. 5.3.1) |
\(c_r\)
| 0 | Work on a component seems more likely to reveal problems in that component than in some other component (sensitivity analysis shows the assumption made here to have limited effect; see Sect. 5.3.3) |
\(s_{max}\)
| 5 | |
\(l_s, \; l_{min}\)
| 0.25 | The improvement curve is based on that used by Cho and Eppinger (2005), assuming an improvement by a certain percentage (25 %) on each consecutive attempt until a minimum percentage (25 %) of the original duration is reached |
3.3.3 Change propagation at task completion
3.4 Model summary
3.5 Example
4 Analysis of priority rule performance
4.1 Product models used in the experiments
4.2 Characterising the product models for comparison
4.3 Characterising process performance
4.4 Simulation experiments undertaken
5 Results and implications
5.1 Impact of design situation on policy performance
5.1.1 Size and interconnectedness of the design
5.1.2 Degree of symmetry of the product architecture
5.1.3 Number of resources
5.1.4 Flexibility of resources
5.2 Impact of progressive iteration
5.3 Impact of rework and change propagation
5.3.1 Probability of change initiation
5.3.2 Likelihood and impact of change propagation
5.3.3 Location of change initiation
Main observations | Implications | |
---|---|---|
Section 5.1.1
| Absolute and relative differences in the results are more pronounced for bigger DSMs and higher nonzero fractions | Decisions become more critical in the development of strongly interconnected products. Decision policies can help to improve the outcome significantly |
Section 5.1.2
| Symmetric DSM entries have higher impact on the results than asymmetric entries. Symmetry and dependency structure affect the performance of policies that use active or passive sums as decision criteria | Mutual dependencies between components affect the design process more strongly than asymmetrical dependencies. It is important to keep dependency structure and symmetry-related issues in mind when choosing a DSM-based policy |
Section 5.1.3
| The higher the number of resources (i.e. the more parallelised the design), the less advantageous most policies are in terms of reducing the total duration. Specifically, for smaller systems and high degrees of parallelisation trade-offs can occur between reducing the total duration and the number of attempted tasks | A high degree of parallelisation can lead to performance losses of the policies because they do not regard the occupancy of resources or possible idle times. This affects especially simpler products, which makes it hard to choose the best policy in such scenarios |
Section 5.1.4
| Results vary only marginally according to whether resources are assumed to be able to work on any component or distinct and assigned to specific components | For the purpose of analysing policy performance in this simulation, the mapping of resources and tasks/components does not reveal major insights |
Section 5.2
| The stronger interfaces between parts constrain the activity sequence, the less effective policies are in reducing the design completion time | When prioritisation decisions have a broad scope of action, policies have a higher potential for improving the situation |
Section 5.3.1
| Total duration and number of attempted tasks increase exponentially with higher likelihoods for occurrence of emergent changes and number of propagation steps | The number of initiating changes has a big effect on the absolute results. The assumption made here leads to results in a reasonable range |
Section 5.3.2
| Policy performance is qualitatively similar regardless of whether the input model or the policy is based on binary or impact and likelihood DSMs | While the dependency structure remains crucial, for this simulation it does not seem worth the effort to elicit detailed dependency strength information |
Section 5.3.3
| In most cases, policy performance is qualitatively similar regardless of whether change is modelled as (1) initiating in the task just completed, or (2) initiated randomly anywhere in the system | The assumption of when and where emergent changes appear has an effect on the results albeit not a substantial one. This simplification seems to be acceptable for the purpose of this simulation |
Section 5.4
| The three most effective policies are: (1) Lowest passive sum first (2) Highest maturity level first (3) Least reworked first. The least-recommended policy is lowest maturity level first
| These three policies perform well in most situations. Therefore, they can be recommended to serve as guidelines to help managers choosing and prioritising design tasks. Focusing attention on components that are lagging behind in terms of design maturity appears to be detrimental to performance |