In my organization, critical path analysis is based on synthesis and analysis. This is not self-evident; it is also not always true. Especially if a program is built up from small sections, like Henry’s prototype, there may not be an overall design by the time it has grown into a full system. In that case, code may branch to many points indeterminately, making it hard to follow and debug (so-called spaghetti code). If there is an overall design, it will not necessarily be clear to anyone other than the original developer or to someone joining a programming project after it has been going on for some time. Whether it is possible to find or to infer the design of the system depends on a number of factors. One possibility is that the original developers have provided documentation on the structure of the system or are available to explain the design to new people.
Ideally, a system can be documented in the form of functional and technical specifications before any coding has taken place. If this has not happened, one can retroactively create documentation implying that the design that ultimately developed was actually conceived in advance, even though it may not have been. Specifications described as written “for historical purposes” fall into this category.
There may also be documents that provide an overview, though not a formal description, of the system design. Most commonly, however, none of this is present, and programmers must infer the design from the code itself and from how the system works (the “black box” approach). This maintains consistency between versions and also eliminates the possibility of spelling errors in any given module (though not in multiple modules, so whoever makes the original change must be very careful). Commands to access the database are standardized across programs and copied from templates.
The idea simply is that groups can tend to generate and promote behavior in their members that serves to filter out undesirable information and unprejudiced evaluation. The main consequences of groupthink are an incomplete survey of alternatives, an incomplete survey of objectives, failure to examine risks of preferred choice, failure to reappraise initially rejected alternatives, poor information search, selective bias in processing information available, and failure to work out contingency plans.
Mere membership is barely adequate, though it helps raise the question of whether we think organizations should support information as well as formal groups. One of the features of conventional meetings is that a number of individuals can interact very quickly, and by this criterion, three people communicating and responding immediately via e-mail would, in informational terms, be close to a conventional meeting, wherever they were located around the world at the time.