{"id":7672,"date":"2013-08-14T15:35:57","date_gmt":"2013-08-14T19:35:57","guid":{"rendered":"http:\/\/mjtsai.com\/blog\/?p=7672"},"modified":"2019-12-20T13:31:48","modified_gmt":"2019-12-20T18:31:48","slug":"the-influence-of-organizational-structure-on-software-quality","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2013\/08\/14\/the-influence-of-organizational-structure-on-software-quality\/","title":{"rendered":"The Influence of Organizational Structure on Software Quality"},"content":{"rendered":"<p><a href=\"http:\/\/dl.acm.org\/citation.cfm?id=1368160\">Nachiappan Nagappan et al.<\/a> (via <a href=\"https:\/\/twitter.com\/secboffin\/status\/364349064315678720\">Graham Lee<\/a>):<\/p>\n<blockquote cite=\"http:\/\/dl.acm.org\/citation.cfm?id=1368160\"><p>In our case study, the organizational metrics when applied to data from Windows Vista were statistically significant predictors of failure-proneness. The precision and recall measures for identifying failure-prone binaries, using the organizational metrics, was significantly higher than using traditional metrics like churn, complexity, coverage, dependencies, and pre-release bug measures that have been used to date to predict failure-proneness. Our results provide empirical evidence that the organizational metrics are related to, and are effective predictors of failure-proneness.<\/p><\/blockquote>\n<p>The <a href=\"http:\/\/research.microsoft.com\/pubs\/70535\/tr-2008-11.pdf\">full paper<\/a> is available from Microsoft Research.<\/p>\n\n<p id=\"the-influence-of-organizational-structure-on-software-quality-update-2019-12-20\">Update (2019-12-20): <a href=\"https:\/\/augustl.com\/blog\/2019\/best_bug_predictor_is_organizational_complexity\/\">August Lilleaas<\/a> (via <a href=\"https:\/\/news.ycombinator.com\/item?id=21823199\">Hacker News<\/a>):<\/p>\n<blockquote cite=\"https:\/\/augustl.com\/blog\/2019\/best_bug_predictor_is_organizational_complexity\/\">\n<p>The distance to decision makers and the number of developers working on a project is clearly and unambiguously the issue that is the best predictor of future problems with a code base.<\/p>\n<p>[&#8230;]<\/p>\n<p>Another shocking discovery for me personally, is that the only one that I've actually used myself - code coverage - has the lowest recall. It has a high precision, so bad code coverage does mean a high chance of bugs, i.e. low amount of false flags. But with a low recall, there are lots of bug that code coverage doesn't actually catch.<\/p>\n<p>[&#8230;]<\/p>\n<p><a href=\"http:\/\/www.scs.ryerson.ca\/~avm\/dat\/manuscripts\/ICSE_2015.pdf\">In the replicated study<\/a> the predictive value of organizational structure is not as high. Out of 4 measured models, it gets the 2nd highest precision and the 3rd highest recall. The study itself does conclude that organizational complexity as a bug prediction method is worth investigating further. The study is also based on individual functions in C\/C++, and not entire modules like Microsoft Research did, which can be a reason for at least a part of the discrepancy.<\/p><\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Nachiappan Nagappan et al. (via Graham Lee): In our case study, the organizational metrics when applied to data from Windows Vista were statistically significant predictors of failure-proneness. The precision and recall measures for identifying failure-prone binaries, using the organizational metrics, was significantly higher than using traditional metrics like churn, complexity, coverage, dependencies, and pre-release bug [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2019-12-20T18:31:51Z","apple_news_api_id":"52ae6d50-f623-4249-a2f6-400f347b2d63","apple_news_api_modified_at":"2019-12-20T18:31:51Z","apple_news_api_revision":"AAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/w==","apple_news_api_share_url":"https:\/\/apple.news\/AUq5tUPYjQkmi9kAPNHstYw","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[2],"tags":[131,27,37,71,219,1531],"class_list":["post-7672","post","type-post","status-publish","format-standard","hentry","category-technology","tag-bug","tag-craft","tag-microsoft","tag-programming","tag-windows","tag-windows-vista"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/7672","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=7672"}],"version-history":[{"count":2,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/7672\/revisions"}],"predecessor-version":[{"id":27636,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/7672\/revisions\/27636"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=7672"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=7672"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=7672"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}