November 1988 | BILL CURTIS, HERB KRASNER, and NEIL ISCOE
This study investigated the challenges of designing large software systems through interviews with personnel from 17 large projects. A layered behavioral model was used to analyze how three key problems—thin spread of application domain knowledge, fluctuating and conflicting requirements, and communication bottlenecks—affected software productivity and quality through their impact on cognitive, social, and organizational processes. The study focused on understanding how requirements and design decisions were made, represented, communicated, and changed, as well as how these decisions impacted subsequent development processes.
The layered behavioral model emphasizes factors that affect psychological, social, and organizational processes to clarify how they affect productivity and quality. It focuses on the behavior of those creating the artifact rather than the evolutionary behavior of the artifact. At the individual level, software development is analyzed as an intellectual task subject to the effects of cognitive and motivational processes. When the development task exceeds the capacity of a single software engineer, a team is convened, and social processes interact with cognitive and motivational processes in performing technical work. In larger projects, several teams must integrate their work on different parts of the system, and interteam group dynamics are added on top of intrateam group dynamics. Projects must be aligned with company goals and are affected by corporate politics, culture, and procedures. Thus, a project's behavior must be interpreted within the context of its corporate environment.
The study found that the thin spread of application domain knowledge was a significant problem, as most software developers lacked deep understanding of the application domain. This led to difficulties in understanding the problem and designing the system. Fluctuating and conflicting requirements were also a major issue, as requirements often changed during development, leading to instability in the project. Communication bottlenecks and breakdowns were also a problem, as communication between teams and individuals was often ineffective.
The study concluded that managing learning, especially of the application domain, is a major factor in productivity, quality, and costs. The layered behavioral model provides a framework for understanding how different factors affect software development processes and how these problems ripple through a project. The study highlights the importance of understanding human and organizational factors in software development and the need for a comprehensive approach to managing software development projects.This study investigated the challenges of designing large software systems through interviews with personnel from 17 large projects. A layered behavioral model was used to analyze how three key problems—thin spread of application domain knowledge, fluctuating and conflicting requirements, and communication bottlenecks—affected software productivity and quality through their impact on cognitive, social, and organizational processes. The study focused on understanding how requirements and design decisions were made, represented, communicated, and changed, as well as how these decisions impacted subsequent development processes.
The layered behavioral model emphasizes factors that affect psychological, social, and organizational processes to clarify how they affect productivity and quality. It focuses on the behavior of those creating the artifact rather than the evolutionary behavior of the artifact. At the individual level, software development is analyzed as an intellectual task subject to the effects of cognitive and motivational processes. When the development task exceeds the capacity of a single software engineer, a team is convened, and social processes interact with cognitive and motivational processes in performing technical work. In larger projects, several teams must integrate their work on different parts of the system, and interteam group dynamics are added on top of intrateam group dynamics. Projects must be aligned with company goals and are affected by corporate politics, culture, and procedures. Thus, a project's behavior must be interpreted within the context of its corporate environment.
The study found that the thin spread of application domain knowledge was a significant problem, as most software developers lacked deep understanding of the application domain. This led to difficulties in understanding the problem and designing the system. Fluctuating and conflicting requirements were also a major issue, as requirements often changed during development, leading to instability in the project. Communication bottlenecks and breakdowns were also a problem, as communication between teams and individuals was often ineffective.
The study concluded that managing learning, especially of the application domain, is a major factor in productivity, quality, and costs. The layered behavioral model provides a framework for understanding how different factors affect software development processes and how these problems ripple through a project. The study highlights the importance of understanding human and organizational factors in software development and the need for a comprehensive approach to managing software development projects.