A computer-implemented method for identifying critical parts in software code comprised in a number of software code files, said method comprising: fetching at least two revisions of said software code, wherein said at least two revisions comprises a first revision and a second revision, said second revision being a latter revision, and wherein the first and second revisions are created in conjunction with different - first and second - commits for the software code; comparing said second revision to said first revision in order to identify at least a first and a second segment (420, 520, 620) of software code in said second revision that have been changed; fetching at least a first and second timestamp correlated with said change of said at least first and second segment of software code respectively, wherein the first and second timestamps are correlated with respective times at which the first and second commits occurred; determining a time difference between said change of said at least first and second segment of software code based on said at least first and second timestamp; if said time difference is within a predetermined range, assigning a temporal coupling between said at least first and second segment of software code; and if said temporal coupling has been assigned, identifying said first and/or second segment of software code as critical parts; providing a suggestion on how to re-arrange said software code such that said critical parts appear closer to each other; and re-arranging said software code according to said suggestion, wherein the re-arranging comprises one of: combining a first software code file comprising one of the critical parts with a second software code file comprising another one of the critical parts, and splitting a software code file comprising the critical parts and arranging the critical parts in one of the split software code files. fetching at least two revisions of said software code, wherein said at least two revisions comprises a first revision and a second revision, said second revision being a latter revision, and wherein the first and second revisions are created in conjunction with different - first and second - commits for the software code; comparing said second revision to said first revision in order to identify at least a first and a second segment (420, 520, 620) of software code in said second revision that have been changed; fetching at least a first and second timestamp correlated with said change of said at least first and second segment of software code respectively, wherein the first and second timestamps are correlated with respective times at which the first and second commits occurred; determining a time difference between said change of said at least first and second segment of software code based on said at least first and second timestamp; if said time difference is within a predetermined range, assigning a temporal coupling between said at least first and second segment of software code; and if said temporal coupling has been assigned, identifying said first and/or second segment of software code as critical parts; providing a suggestion on how to re-arrange said software code such that said critical parts appear closer to each other; and re-arranging said software code according to said suggestion, wherein the re-arranging comprises one of: combining a first software code file comprising one of the critical parts with a second software code file comprising another one of the critical parts, and splitting a software code file comprising the critical parts and arranging the critical parts in one of the split software code files. combining a first software code file comprising one of the critical parts with a second software code file comprising another one of the critical parts, and splitting a software code file comprising the critical parts and arranging the critical parts in one of the split software code files.