Knowledge exploited by experts during software system design
International Journal of Man-Machine Studies - What programmers know
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Communications of the ACM
The pros and cons of adopting and applying design patterns in the real world
Communications of the ACM
International Journal of Human-Computer Studies
Scoring the completeness of software designs
Journal of Systems and Software
The case for collaborative programming
Communications of the ACM
A distributed representation approach to group problem solving
Journal of the American Society for Information Science - Special issue on user-centered cooperative systems
Understanding expertise in information systems design, or, what's all the fuss about objects?
Decision Support Systems - Special issue: expertise and modeling expert decision making
The role of knowledge in software development
Communications of the ACM
Extreme programming explained: embrace change
Extreme programming explained: embrace change
Distributed cognition: toward a new foundation for human-computer interaction research
ACM Transactions on Computer-Human Interaction (TOCHI) - Special issue on human-computer interaction in the new millennium, Part 2
The costs and benefits of pair programming
Extreme programming examined
Designing Flexible Object-Oriented Systems with UML
Designing Flexible Object-Oriented Systems with UML
IEEE Transactions on Software Engineering
Strengthening the Case for Pair Programming
IEEE Software
A Controlled Experiment in Maintenance Comparing Design Patterns to Simpler Solutions
IEEE Transactions on Software Engineering
Information Systems Research
IEEE Transactions on Software Engineering
Head First Design Patterns
Human Problem Solving
Two controlled experiments concerning the comparison of pair programming to peer review
Journal of Systems and Software
The Structural Complexity of Software: An Experimental Test
IEEE Transactions on Software Engineering
Pair programming productivity: Novice-novice vs. expert-expert
International Journal of Human-Computer Studies - Human-computer interaction research in the managemant information systems discipline
Evaluating performances of pair designing in industry
Journal of Systems and Software
Evaluating Pair Programming with Respect to System Complexity and Programmer Expertise
IEEE Transactions on Software Engineering
Do programmer pairs make different mistakes than solo programmers?
Journal of Systems and Software
An Integrated Performance Model Information Systems Projects
Journal of Management Information Systems
Controlled experimentation on adaptations of pair programming
Information Technology and Management
Collaboration and co-ordination in mature eXtreme programming teams
International Journal of Human-Computer Studies
The Effect of Pairs in Program Design Tasks
IEEE Transactions on Software Engineering
The Growing Divide in the Patterns World
IEEE Software
The role of physical artefacts in agile software development: Two complementary perspectives
Interacting with Computers
The effectiveness of pair programming: A meta-analysis
Information and Software Technology
Patterns of Transition: The Shift from Traditional to Object-Oriented Development
Journal of Management Information Systems
Coevolving Systems and the Organization of Agile Software Development
Information Systems Research
A preliminary study on the impact of a pair design phase on pair programming and solo programming
Information and Software Technology
Is Query Reuse Potentially Harmful? Anchoring and Adjustment in Adapting Existing Database Queries
Information Systems Research
The relation between design patterns and schema theory
Proceedings of the 15th Conference on Pattern Languages of Programs
IEEE Transactions on Software Engineering
A distributed cognition account of mature XP teams
XP'06 Proceedings of the 7th international conference on Extreme Programming and Agile Processes in Software Engineering
Structural Complexity and Programmer Team Strategy: An Experimental Test
IEEE Transactions on Software Engineering
What Do We Know about the Effectiveness of Software Design Patterns?
IEEE Transactions on Software Engineering
Hi-index | 0.00 |
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.