1.Introduction

Products, processes and organizations are all complex systems. The most practical and reasonable approach to complex structures have involved in some way or the other decomposing the complex unit to smaller subsystems. Subsystems, being smaller in size and less complex enhances understanding of the big picture. The systems behavior can further be analyzed by establishing relations between the subsystems and studying their input and output components.

Non-trivial projects have consists of numerous processes (subsystems) that are dependent on one another. These interdependencies keep growing with the size of the project increasing the level of complexity. Numerous approaches to solve this problem have been adopted, PERT, CPM being quite common. However, these approaches did not scale up as they were only capable of handling sequential and parallel processes. The need to handle iterative processes within complex projects led to the development of a new tool called Design Structure Matrix (DSM). DSM differs from other project management tools as it relies on information flows rather than work flows

Also known as the “Dependency Structure Matrix”, “ Problem Solving Matrix”, the DSM is a system analysis and project management tool. As a system analysis tool it provides a concise representation of a complex system and a capture method for the interactions between the processes. As a project management tool DSM provides a representation that allows for feedback and cyclic task dependencies. DSM finds its applications mainly in the engineering applications, as they tend to exhibit cyclic dependencies.

2.1Design Structure Matrix:

Design Structure Matrix is a matrix representation of a project. The matrix contains a list of all tasks and the corresponding information exchange patterns. It gives information pieces or parameters that are required to start a certain task and where the information generated by that task feed into i.e. which other tasks within the matrix utilize the output information. It is otherwise known as information based matrix.

A sample DSM is shown below

(a) / A / B / C / D / E / F / G
A / X / X
B / X
C / X / X / X / X
D / X
E / X / X
F
G / X / X

The X marks indicate the existence and direction of information flow or a dependency in a general sense from one task in the project (i.e. matrix) to another. Reading across a row reveals the input/dependency flows by an X mark placed at the intersection of that row with the column that bears the name of the input task. Reading across a column reveals the output information flows from that task to other activities by placing an X in a similar manner described above. For example, in the matrix above Task G relies on information or inputs from activities D and F and delivers information to activities B and C.

The green marks below the diagonal represent forward flow of information and the red marks above the diagonal represent feedback from a later downstream task to an earlier or upstream one. This means that the earlier task has to be repeated in light of the late arrival of new information thus making the processes iterative. Design iterations create rework and require extra communications and negotiation, which result in prolonged processes. In order to speed up this iterative design processes, the DSM methodology suggests the manipulation of the matrix tasks such that iterative behavior is removed from the matrix, or at least minimized. A process called Partitioning is used to achieve this.

2.2Partitioning

This process is to remove or at least reduce the number of feedback marks above the diagonal in the matrix by manipulating or reordering the rows and columns of the matrix. After setting up the original matrix with the current information flow and feedbacks, the partitioning process proceeds as follows;

  1. Identify tasks that can be executed without input from the rest of the tasks in the matrix. Observing an empty row in the DSM can easily identify those tasks. Place those tasks in the top of the DSM. Once a task is rearranged, it is removed from the matrix for any further consideration. Step 1 is repeated on the remaining tasks.
  2. Identify tasks that deliver no information to other tasks in the matrix. Observing an empty column in the DSM can easily identify those tasks. Place those tasks in the bottom of the DSM. Once a task is rearranged, it is removed from the DSM and step 2 is repeated on the remaining tasks.
  3. If after steps 1 and 2 there are no remaining tasks in the DSM, then the matrix is completely partitioned; otherwise, the remaining tasks contain at least one information circuit.
  4. Determine the circuits or loops of information by the Path Searching Method.
  5. Collapse the tasks involved in a single circuit into one representative task and go to step 1 if there are any more loops. If there are no more tasks, proceed to step 6.
  6. Expand all the combined loops to obtain your final Matrix and Schedule.

2.3Path Searching Method

The following example is used to explain the path searching method. With this method, information flow is traced either backwards or forwards until a task is encountered twice. All tasks between the first and second occurrence of the task constitute a loop of information flow. When all loops have been identified, and all tasks have been scheduled, the sequencing is complete and the matrix is in block triangular form. The figure, above, is a simple example.

(a) / A / B / C / D / E / F / G
A / X / X
B / X
C / X / X / X / X
D / X
E / X / X
F
G / X / X
/ (b) / A / B / C / D / E / F / G
A / X / X
B / X
C / X / X / X / X
D / X
E / X / X
F
G / X / X
/ (c) / F / A / B / C / D / E / G
F
A / X / X
B / X
C / X / X / X / X
D / X
E / X / X
G / X / X
(d) / F / A / B / C / D / G / E
F
A / X / X
B / X
C / X / X / X / X
D / X
G / X / X
E / X / X
/ (e) / F / CA / B / D / G / E
F
CA / X / X / X / X
B / X
D / X
G / X / X
E / X / X
/ (f) / F / B / D / G / CA / E
F
B / X
D / X
G / X / X
CA / X / X / X / X
E / X / X
(g) / F / B / D / G / C / A / E
F
B / X
D / X
G / X / X
C / X / X / X / X
A / X / X
E / X / X

Figure A: The unpartitioned matrix is in its original order.

Figure B: Task F does not depend on information from any other tasks as indicated by an empty row. Schedule task F first in the matrix and remove it from further consideration.

Figure C: Task E does not provideinformation to any tasks in the matrix as indicated by an empty column. Schedule task F last in the matrix and remove it from further consideration.

Figure D: Now, no tasks have empty rows or columns. A loop exists and can be traced starting with any of the remaining tasks. In this case, we select task A (arbitrary) and trace its dependence on task C. Task C is simultaneously dependent upon information from task A. Since task A and task C are in a loop, collapse one into the other and represent them in a single, composite task (i.e. task CA).

Figure E: TaskCA has an empty column indicating that it is not part of any other loop. Schedule it last and remove it from further consideration.

Figure F: Trace dependency starting with any unscheduled task: task B depends on task G which depends on task D which depends on task B. This final loop includes all the remaining unscheduled tasks.

Figure G: The final partitioned matrix and schedule.

3. Building a Design Structure Matrix

The Design Structure Matrix relies on the system decomposition and on the accuracy of the dependencies of the subsystems. There are two ways to build a DSM.

  1. By converting existing documentation ( design documents, project schedules etc)
  2. By conducting structured expert interviews

However, researchers feel that there should be a hybrid policy adopted while building a DSM. The initial build should start with the documentation already made for the project, which would then be followed by set of expert interviews to validate the initial DSM. The second level of the build comprises a group of experts from different functional groups who decompose the system into subsystems that are either hierarchal or non-hierarchal in nature.

Once the appropriate system elements or set of activities that comprise a project have been identified, they are listed in the DSM as row and column labels in the same order. The elements within the matrix are then identified by asking the appropriate manager/expert in the group for the minimum set of parameters that influence their own sub-system and contribute to its behavior.

After having formed the DSM, we employ methods to “Redesign” the project. The activities in a DSM project redesign are:

  1. Partitioning
  2. Tearing
  3. Banding
  4. Clustering

We have explained “Partitioning” earlier. We shall now define in brief what the other activities mean.

Tearing:

Tearing is the process of choosing the set of feedback marks that if removed from the matrix (and then the matrix is re-partitioned) will render the matrix lower triangular. The marks that we remove from the matrix are called "tears".

Banding:

Banding is the addition of alternating light and dark bands to a DSM to show independent (i.e. parallel or concurrent) activities (or system elements).The collection of bands or levels within a DSM constitute the critical path of the system/project.

Clustering:

In partitioning, we have seen that the main objective was to move the feedback marks from the above the diagonal to below the diagonal, given that the DSM elements were tasks to be executed. However, when the DSM elements are people in charge of these tasks or are sub-systems and components of a larger system, then we have a different objective for arranging the DSM. The new goal becomes finding subsets of DSM elements (i.e., clusters or modules) that are mutually exclusive or minimally interacting. This process is referred to as clustering.

4. Data Representation in a DSM

The DSM can be used to represent different types of data. Within the matrix we can represent relations among the components of a product, among different teams working simultaneously on the project, among activities and among parameters. The following table briefly describes the different data types that can be represented, where they are used and also methods we would use to analyze it.

Data Types / Component Based / Team Based / Activity Based / Parameter Based
Representation / Multi component relations / Multi team interface / Activity input/output relationship / Parameter decision points
Application / System architecting, engineering and design / Organizational design, interface management, team integration / Project scheduling, activity sequencing, cycle time reduction / Low level activity sequencing and process construction
Analysis Method / Clustering / Clustering / Sequencing & Partitioning / Sequencing & Partitioning