November 1988 | BILL CURTIS, HERB KRASNER, and NEIL ISCOE
The study examines the challenges of designing large software systems through interviews with personnel from 17 large projects. A layered behavioral model is used to analyze how three key issues—thin spread of application domain knowledge, fluctuating and conflicting requirements, and communication bottlenecks—affect software productivity and quality. The model emphasizes the impact of cognitive, social, and organizational processes at different levels of analysis, from individual to team to project to company to business milieu. The findings highlight the importance of managing learning, especially of the application domain, as a major factor in productivity, quality, and costs. Fluctuating and conflicting requirements are driven by external factors such as market changes and internal company dynamics, while communication bottlenecks are influenced by both individual and organizational factors. The study underscores the need for a comprehensive understanding of these behavioral factors to improve software development processes.The study examines the challenges of designing large software systems through interviews with personnel from 17 large projects. A layered behavioral model is used to analyze how three key issues—thin spread of application domain knowledge, fluctuating and conflicting requirements, and communication bottlenecks—affect software productivity and quality. The model emphasizes the impact of cognitive, social, and organizational processes at different levels of analysis, from individual to team to project to company to business milieu. The findings highlight the importance of managing learning, especially of the application domain, as a major factor in productivity, quality, and costs. Fluctuating and conflicting requirements are driven by external factors such as market changes and internal company dynamics, while communication bottlenecks are influenced by both individual and organizational factors. The study underscores the need for a comprehensive understanding of these behavioral factors to improve software development processes.