Author List: Mangalaraj, George; Nerur, Sridhar P.;
MIS Quarterly, 2014, Volume 38, Issue 1, Page 249-274.
Software design is a knowledge intensive task that constitutes a critical part of the software development process. Using a controlled experiment involving software practitioners, this research examines two potentially useful mechanisms for improving the software design process. Specifically, this study examines the impact of structural distribution of cognition through design patterns and social distribution of cognition through collaborating pairs on design outcomes. The results indicate that the use of design patterns as external cognitive artifacts improves design quality, reduces time taken to solve a design problem, and leads to higher participant satisfaction. Collaborating pairs of software designers were compared to participants working alone but whose efforts were conjointly considered as the best and second-best members of nominal pairs. It was found that paired designers produced higher quality designs compared with the second-best members of nominal pairs, did not differ from the best member of a nominal pair, but took more time to complete a design task than either member of a nominal pair. The results also indicate that the availability of design patterns raises the performance level of the second-best member of a nominal pair, in terms of quality, and reduces task completion time when compared with a pair not using design patterns. Finally, paired designers were found to experience higher levels of task satisfaction when compared with individuals. Implications for research and practice are discussed.
Keywords: Software design; agile methodology; paired design; design pattern; nominal group; distributed cognition; codified knowledge
Algorithm:

List of Topics

#297 0.239 programming program programmers pair programs pairs software development problem time language application productivity best nominal languages programmer generators working reduces
#270 0.158 design designs science principles research designers supporting forms provide designing improving address case little space criteria methods increasing synthesis designer
#254 0.128 level levels higher patterns activity results structures lower evolution significant analysis degree data discussed implications stable cluster exist relationships identify
#51 0.119 results study research experiment experiments influence implications conducted laboratory field different indicate impact effectiveness future participants evidence test controlled involving
#152 0.097 software development process performance agile processes developers response tailoring activities specific requirements teams quality improvement outcomes productivity improve fit maturity
#9 0.069 using subjects results study experiment did conducted task time used experienced use preference experimental presented decision-making empirical significantly effects better
#45 0.051 community communities online members participants wikipedia social member knowledge content discussion collaboration attachment communication law virtual membership structures forms activities