Cross Functional Flowcharts

Hi There,
I have been playing with dot for small charts and now I spent some more effort on producing the attacched cross functional flowchart.
http://en.wikipedia.org/wiki/Cross_functional_flowchart
Once obtained the visual effect I'd like to discuss the results with expert to optimize it.
a little explaination. 
I created a subgraph for each stakeholder, then hidden nodes and edges to force the group dependency.
Finally I wrote the visible edges.
Although the visual effect is the desired one, I don't think this architecture is easily maintanable as if a new step needs to be inserted (IT DOES !!!) each single group needs to be displaced.
The ideal would be to have 15 steps where only the active states are described. I did some tries with "constraint" attribute, but finally I landed on this form.
Can any better be done ? Is dot the right tool to do this ?
I like the language description because I am focused on the analysis and the graph is a consequence opposite to visio.
Any help will be welcome
benny59
code here:
digraph G {

        //page="16.54,11.69";

        layout=dot;

        label="Change Management Process"; 

        //node [shape=plaintext, fontsize=16]; 

        //bgcolor=white; 

        //edge [arrowsize=1, color=black]; 

         
    /* Nodes */

    subgraph cluster_0 {

        label = "Management - CEO";
        //STEP 1
        x0_1 [style=invis];
        //STEP 2
        x0_2 [style=invis];
        //STEP 3
        x0_3 [style=invis];
        //STEP 4
        x0_4 [style=invis];
        //STEP 5
        x0_5 [style=invis];
        //STEP 6
        x0_6 [style=invis];
        //STEP 7
        x0_7 [style=invis];
        //STEP 8

        x0_8 [label="8-Project\nAnalysis",shape=box];   
        //STEP 9

        x0_9 [label="9-Project\nEvaluation",shape=diamond];
        //STEP 10
        x0_10 [style=invis];
        //STEP 11
        x0_11 [style=invis];
        //STEP 12
        x0_12 [style=invis];
        //STEP 13
        x0_13 [style=invis];
        //STEP 14
        x0_14 [style=invis];
        //STEP 15
        x0_15 [style=invis];
        x0_1->x0_2->x0_3->x0_4->x0_5->x0_6->x0_7->x0_8->x0_9->x0_10->x0_11->x0_12->x0_13->x0_14->x0_15 [style=invis];

        color=blue

    }

     
    subgraph cluster_1 {

        label = "Technical Departement";
        //STEP 1
        x1_1 [style=invis];
        //STEP 2
        x1_2 [style=invis];

        //STEP 3
        x1_3 [style=invis];
        //STEP 4
        x1_4 [style=invis];
        //STEP 5
        x1_5 [label="5-Feaseability\n Analysis",shape=box];   
        //STEP 6
        x1_6 [style=invis];
        //STEP 7     
        x1_7 [label="7-Cost\nAnalysis",shape=box];

        //STEP 8
        x1_8 [style=invis];
        //STEP 9
        x1_9 [style=invis];
        //STEP 10

        x1_10 [label="10 - Request for Execution\nCreation",shape=box];
        //STEP 11

        x1_11[label="11-Acceptance Plan\nCreation",shape=box];

        //STEP 12
        x1_12 [style=invis];
        //STEP 13

        x1_13 [label="13-Acceptance\nTests",shape=diamond];
        //STEP 14
        x1_14 [style=invis];
        //STEP 15
        x1_15 [style=invis];

        x1_1->x1_2->x1_3->x1_4->x1_5->x1_6->x1_7->x1_8->x1_9->x1_10->x1_11->x1_12->x1_13->x1_14->x1_15 [style=invis];     
        color=blue

    }

     
    subgraph cluster_2 {

        label = "Software Factory";
        center=true;
        rankdir=TB;
        //STEP 1
        x2_1 [style=invis];
        //STEP 2
        x2_2 [style=invis];
        //STEP 3
        x2_3 [style=invis];
        //STEP 4
        x2_4 [style=invis];
        //STEP 5
        x2_5 [style=invis];
        //STEP 6

        x2_6 [label="6-Impact and\nCosts Analysis",shape=box];
        //STEP 7
        x2_7 [style=invis];
        //STEP 8
        x2_8 [style=invis];
        //STEP 9
        x2_9 [style=invis];
        //STEP 10
        x2_10 [style=invis];
        //STEP 11

        x2_11 [label="11-Implementation",shape=box];
        //STEP 12         
        x2_12 [label="12-Change\nReleased",shape=box];       
        //STEP 13
        x2_13 [style=invis];
        //STEP 14
        x2_14 [style=invis];
        //STEP 15
        x2_15 [style=invis];

        x2_1->x2_2->x2_3->x2_4->x2_5->x2_6->x2_7->x2_8->x2_9->x2_10->x2_11->x2_12->x2_13->x2_14->x2_15 [style=invis];         
         
        color=blue

    }

 
    subgraph cluster_3 {

        label = "Any Source";
        rankdir=TB;
        //STEP 1

        x3_1 [label="1-start" shape=circle,style=filled];
        //STEP 2

        x3_2 [label="2-Request for change\nsubmission"];
        //STEP 3
        x3_3 [style=invis];
        //STEP 4
        x3_4 [style=invis];
        //STEP 5
        x3_5 [style=invis];
        //STEP 6
        x3_6 [style=invis];
        //STEP 7
        x3_7 [style=invis];
        //STEP 8
        x3_8 [style=invis];
        //STEP 9
        x3_9 [style=invis];
        //STEP 10
        x3_10 [style=invis];
        //STEP 11
        x3_11 [style=invis];
        //STEP 12
        x3_12 [style=invis];
        //STEP 13
        x3_13 [style=invis];
        //STEP 14
        x3_14 [style=invis];
        //STEP 15
        x3_15 [label="15-Receives\nAcknowledge",shape=box];

        x3_1->x3_2->x3_3->x3_4->x3_5->x3_6->x3_7->x3_8->x3_9->x3_10->x3_11->x3_12->x3_14->x3_15 [style=invis];   
        end [shape=circle,style=filled];

        color=blue

    }

     
        subgraph cluster_4 {

        rankdir=TB;

        center=true;

        label = "Marketing\nProduct Management"; 
        //STEP 1
        x4_1 [style=invis];
        //STEP 2
        x4_2 [style=invis];
        //STEP 3
        x4_3 [label="3-Analyze\nRequest",shape=box];
        //STEP 4

        x4_4 [label="4-Market Fitting Evaluation",shape=diamond];
        //STEP 5
        x4_5 [style=invis];
        //STEP 6
        x4_6 [style=invis];
        //STEP 7
        x4_7 [style=invis];
        //STEP 8
        x4_8 [style=invis];
        //STEP 9
        x4_9 [style=invis];
        //STEP 10
        x4_10 [style=invis];
        //STEP 11
        x4_11 [style=invis];
        //STEP 12
        x4_12 [style=invis];
        //STEP 13
        x4_13 [style=invis];
        //STEP 14

        x4_14 [label="14-Notifies Submitter",shape=box];
        //STEP 15
        x4_15 [style=invis];

        x4_1->x4_2->x4_3->x4_4->x4_5->x4_6->x4_7->x4_8->x4_9->x4_10->x4_11->x4_12->x4_13->x4_14->x4_15 [style=invis];

        color=blue

    }

     
 
 
/* Process Relationships */

x3_1->x3_2 ; //STEP1

x3_2->x4_3 ; //STEP2

x4_3->x4_4 ; //STEP3

x4_4->x4_14 [label="Rejected",color=red];     //STEP4

x4_4->x1_5 [label="Compliant",color=green];     //STEP4

x1_5->x2_6 ; //STEP5

x2_6->x1_7 ; //STEP6

x1_7->x0_8 ; //STEP7

x0_8->x0_9 ; //STEP8

x0_9->x4_14 [label="Rejected",color=red];  //STEP9

x0_9->x1_10 [label="Approved",color=green]; //STEP9 

x1_10->x1_11 ; //STEP10

x1_10->x2_11 ; //STEP10

x2_11->x2_12 ; //STEP11 
x1_11->x1_13 ; //STEP12

x2_12->x1_13 ; //STEP12 

x1_13->x2_11 [label="Rejected",color=red];  //STEP13

x1_13->x4_14 [label="Accepted",color=green];  //STEP13
x4_14->x3_15 ; //STEP14

x3_15->end   ; //STEP15 

 
 
}
 

AttachmentSize
WISSchange.dot_.jpg241.71 KB

Recent comments