MXT. LIBRARIES - DEWEY Dewey HD28 .M414 Electronic communication and new A organizational forms: coordination theory approach by Kevin Crowston CCS TR #175, Sloan WP # 3719-94 August 1994 :.;ao&achusctts iimstitute of technology DEC 01 1994 LIBRARIES Electronic communication and new organizational forms: A coordination theory approach Keuin Crcrwstorr^ School of Business Administration University of Michigan August ^ Author's present address: 17, 1994 School of Business Administration University of Michigan 701 Tappan Ann Arbor, MI 48109-1234 Electronic mail (internet): crowston@umich.edu Telephone: +1 (313) 763-2373 +1 (313) 763-5688 Fax: USA Electronic communication and new organizational forms: A coordination theory approach Abstract Describing and categorizing organizational forms remains a central problem in organization theory. Unfortunately defining organizatic»\al form poses numerous difficulties. Rather than attempting to categorize entire organizations, researchers have instead suggested focusing on how particuleu- tasks are performed, i.e., adopting the process as the unit of analysis. An important practical problem then is to identify processes that would be suitable for performing a desired task, especially processes that are enabled by the use of new electronic media and other forms of information technology. Coordination theory provides an approach to the study of processes. In form a process takes depends on the coordirution mecharusms chosen among tasks and to tiiis view, the manage dependences resources involved in the process. These mechanisms are primarily information- processing and so the use of new media will particularly affect their cost, perhaps changing which are preferred. In this paf)er, I use coordination theory to analyze the software change process of a large mini-computer manufacturer and suggest alternative ways the dependoices involved could be managed and thus alternative forms the process could take. for task assignment, resource sharing Mechanisms analyzed include those and managing dependences between modules of code. The organization studied assigned problem reports to engineers based on the module which appeared to be in alternative error; engineers specialized in particular mechanisms including assignment modules. The framework suggests to generalists based on workload or based on market-like bids. Modules of code were not shared, but rather "owned" by one engineer, thus reducing the need for coordination; a more elaborate code management system would be Draft of 8/17/94 3 required if multiple engineers needed to work on the same modules. dependences between modules informally, based on their personal Finally, engineers managed knowledge of which otiier engineers used their code; alternatives include formally defining the interfaces between modules and tracking their users. Software bug fixing provides a microcosm of coordination problems and solutions. Similar coordination problems arise in most processes and are managed by a similar range of mechanisms. For example, diagnosing bug reports and assigning them to engineers interesting parallels to diagnosing patients and assigning them While the case presented does not formally test may have to specialists. coordination theory, it does illustrate the potential of the coordination theory for exploring the space of organizational forms. Future includes developing more rigorous techniques for such analyses, applying the techniques work to a broader range of processes, identifying additional coordination problents and mechanisms and developing tools for collecting and comparing processes and perhaps automatically suggesting potential alternatives. Draft of 8/17/94 1 Introduction IDescribing and categorizing organizational forms remains a organization theory (e.g., McKeivey, 1982; Rich, 1992; Sanchez, centred problem in 1993). Unfortunately, defining organizatioruil form poses numerous characteristics, such as production technology (Perrow, 1967; Woodward, 1980), as being too simplistic. difficulties. Rich (1992) criticizes typologies based on single He suggests instead viewing organizational form as a multi-dimensional construct and grouping together organizations that share similar sets of characteristics. As McKeivey and Aldrich (1983) point out, however, most large organizations are actually mixtures of different forms. Mohr (1982) describes organizational structure as, "multidimensional have constant meai jig and therefore . In short, an to serve as a entire organization is good theoretical construct" (p. 16). too aggregate a level of analysis for meaningful comparison. Instead, researchers have suggested focusing on i.e., how particular tasks are performed, adopting the process as the unit of analysis (Mohr, 1982; Abbott, 1992, rather than listing might compare ways in —too inclusive to p. 428-9). For example, which General Motors and Ford are alike or different, researchers their processes for designing automobiles or even more specific subprocesses. The problem thus becomes, not what form does an organization have, but what process does use to it accomplish particular tasks?^ Given a task being f)erforTned identify other processes that scramble more to adapt would by an organization, an important also be suitable for performing that task. to increasingly frequent pressing. For example, a environmental changes, manager may this these goals into concrete organizational changes (e.g., still problem is to As compeuiies question has become even realize that the survived of his or her depends on reducing time-to-market and improving quality, but ^ practical find it company difficult to translate as part of a business process redesign effort Such an analysis presumes, of course, that organizations perform tasks. This presumption can be questioned, but it seems clear that many organizations have at least a stated purpose that would be preserved Draft of 8/17/94 in a reorganization. & Short, 1990; Hammer, 1990; Harrison & Pratt, 1993]). Other managers may be [Davenport concerned with making effective use of the information technology organizational forms media (IT), electronic become billions of dollars invested in different in particular, all what kinds of v^ronder possible as the historic constraints information processing are relaxed. Underlying issue: and on communications and of these questions is ttw central theoretical how can we represent organizatioTvil processes in a way that allows us contrast them or to kinds of to compare and design new ones (Malone, et al., 1993)? CcHisider the software problem (bug) reporting process: customers having problems with a piece of software report the problems to some kind of solution. One company 1 its develof>ers, who (they hope) will eventually provide studied, the developer of a nnini-computer operating system, has an elaborate process to receive problem reports, identify (for novel problems) filter which modules of the system are apparently reports to the software engineers responsible for those modules. might develop a workaround patch it, (i.e., to avoid the problem; the a change to part of the system) to integrate it the problem. into the total out reports of fix it. final The patch system and, eventually, send (A more detailed description it knovm at fault problems, and route the Along the way, an engineer software engineer might develop a is then sent to other groups to the who test who originally had customers of this process appears below.) Why is the process structured this way, with finely divided responsibility for different parts of the process? companies, What different forms are there for this process? we will observe a wide variety of approaches to this sometimes called change ownership (Swanson and Beath, arrives, it is module and simply cissigned to the next free engineer. task assignments are therefore based examine many processes, individuals or firms Draft of 8/17/94 we examine many same software bug process. For example, other companies (and even other parts of the is If 1990): company I studied) use when a problem Any engineer can, fixing report in principle, fix on workload rather than any specialization. we will see an even \vider range of possible forms. what If we For example, may be generalists, performing a wide variety of tasks, or specialists. 6 performing only a few. Tasks may be assigned to actors within a single orgaiuzation, as fixing; others take place in the market, as witti auditing, consulting variety of services; with bug and an increasingly wide and increasingly cor]x>rations are forming networks for allocating work (e.g., Powell, 1990). When we begin to systematically compare these processes, however, the organizations are performing essentially the required. For example, bug, write code for a broadly, all same software companies that respond to the fix fix, test and integrate it with same basic bug reports need tfie rest performs them and here there are how steps are of the system. Looking more steps are tihe how these large abstract tasks are decomposed, tfiey are assigned, that common patterns: If to diagnosis the many engineering change processes have similar steps. While the general same, organizations differ in imjx)rtant details of who task, typically the patterns emerge. is, similar problems arise in how these tasks are coordinated. Even and are managed by similar coordination mechanisms. 2 A coordination theoiy approach to organizational form To study coordination, 1 use the model presented by Malone and Crowston (1994), who define coordination as "managing def)endences between activities" (p. 90) and coordination theory as the still developing body of "theories about kinds of systems" (p. 87). performing interdependent how coordination can occur in diverse Malone and Crowston analyze group action activities to resources of various types. For achieve ^oa/s. These activities example, in the case of software bug customers and various employees of the software company^; in terms of actors may also require or create fixing, the actors are the activities include those mentioned above. The goal of the process in this case appears to be eliminating problems in the system, but 3 In some cases, 13); for which a group of individuals example, it interacts Draft of 8/17/94 may be represented by a single actor (Abell, 1987, p. to simplify the cinalysis of a particular subunit, the odier might all be represented as collective actors. subunits with —such as appearing responsive alternative goals Finally, resources include the problem time, software patches, source code In tfiis that constrain of tfie customer requests reports, information —could also be analyzed^. about knowrn problems, computer and so on. view^, actors in organizations face coordination problems arising how problem to tasks can be performed. These dependerKes (e.g., compwients of a system may of changes that can be made to a single interact may be iiiherent in die structure with each other, constraining the kinds component) or they may result from decomposition of the goal into activities or the assigrunent of activities to actors and resources working on the same component face constraints from dependences (e.g., two engineers on the kind of changes they can make without interfering with each other). To overcome ttiese coordination problems, actors must perform additional form of coordination mechanisms. For example, a software engineer planning in a computer system must check any necessary changes module must each be be quite specific, to that the changes will not affect other modules that will be affected; such as a code management system or other resources. Note that mechanisms modules or arrange for two engineers working on the same to control to in the change one module careful not to overwrite the other's changes. Coordination general, such as hierarchical or market changes mechanisms may to software, or quite manage assignment of activities to actors many coordination mechanisms are primarily information ordering or picking tasks, negotiating with other actors or informing processing activities (e.g., them about planned activities) ^ to work and thus potential candidates for support from electronic media. In taking this approach, we adopt Dennet's (1987) intentional stance: since there is no completely reliable way to determine someone's goals (or if indeed tiiey have goals at all), we, as observer"^, can only impute goals to the actors. For instance, in analyzing markets, we might as observers regard the goal to be achieved as one of optimally allocating resources to maximize consumer utilities (e.g., Debreu, 1959). Even though no single individual in the market necessarily has this goal, observers might evaluate market coordination in terms of how well it is Draft of 8/17/94 achieved. In general, there may be several coordination mechanisms that could be used a given dependence; different organizations to address may use different mecharusms to address similar problems, thus resulting in a different organizational form. Given a particular organization performing some task then, one way to generate alternative processes is to idaitify the particular depoidences and coordination problems faced by the orgai\ization and consider what alternative coordination mechanisms could be used to manage them. For example, Lawler (1989) argues the functions of an organization's hierarchy, many of which are ways of coordinating the actions of the lower levels, could be accomplished in other ways, such as systems or that new patterns of information distribution. work design, information (Of course, there are also many non- coordinating functions of the hierarchy, such as motivating or coaching workers that must be considered before makir ^ such chtinges.) 2.1 • Implications of coordination theory for the study of electronic media and organizational form Coordination theory provides a useful theoretical framework for analyzing the implications of new communications mechanisms (and thus in media (cuid An organization's choice of coordination our view, the organizational form) determined) by their relative electronic technologies. costs, which in turn is affected (although not depends on the technology available. The use of other kinds of IT) will change the relative cost of coordination mechanisms, making new processes feasible or desirable. Coordination theory thus provides a conceptual link between organizational form and the use of communication technology. For task assignment, communications technology makes it easier to gather information about available resources and to decide which to use for a particular task. At a macro level, Malone, Yates and Benjamin (1987) suggest that decreased coordination costs favour more extensive use of markets, which usually have lower costs but require instead of vertical integration, which Draft of 8/17/94 make the opposite trade-off. more coordination activities, Avoiding duplicate tasks is difficult if there are working on the same task. For example, by many users; tt\e company would in a software numerous workers who could be company, the same bug is may be reported prefer to not diagnose and solve this problem repeatedly. Past solutions to this problem include ceitralizing the workers to easier, specializing workers so diat identical tasks are all assigned accepting the duplication. iitformation about tasks make exchange of information to the same worker or simply New alternatives include an information system containing and known solutions or communications technologies that can cheaply broadcast questions to a large community, such as a computer conferoicing system (Finholt and Sproull, 1990). Just-in-time delivery of components, a between suppliers and users, up-to-date information about on hand is in large part a new way to manage prerequisite dependences communications innovation: new ways what components should be delivered replace keeping to transmit inventories in the plant. For sharing information resources, commurucations and database technology themselves provide the necessary coordination. For example, coordination is may necessary if multiple tasks need access to information stored on paper (a shared resource dependence). therefore be desirable to have a single individual handle For example, a conference room schedule is possibility of conflicting reservations being every time a reservation is all may the data to simplify the coordination. usually kept in a central location because of the made and the prohibitive cost of updating copies made. Data such as customer accounts or handled similarly, resulting It in specialization of actors credit information are often based on their access to information. A database and communications system enable multiple workers to access and make changes to the data. change the basis By empowering workers and reducing the need for assigning tasks; tasks can be assigned on criteria workers are equally capable of performing a can task, then such as workload or the customer involved rather than on availability of data or specialization. Draft of 8/17/94 if all for specialization, IT Such a change was made to the Citibank letter of credit 10 process when a group of specialists, each performing a by generalists 2.2 A single step of the process, who handle the entire process for particular customers (Matteis, were replaced 1979). typology of coordination mechanisms As a guide to such analyses, Crowston (1991) presents a preliminary typology of dependences and associated mechanisms. The main dimension of the typology is the type of objects involved in the dependence, either tasks (goals and activities from Malone and Crowston's (1994) framework) or resources used or created by tasks (irKluding the effort of the There are therefore three major kinds of dependences between two actors). two tasks, of resource or resources are shared by the output of the task). dependence or to Mecharusms two also differ tasks in Table 1. by considering and how they are used by purpose, either to (as Vat kind an input or as an manage constraints created by a maintain a desired depeulence. The typology of dependences and examples task-task between between two resources or between a task and a resource. These categories can be further refined: for example, task-task dependences are distinguished shovm objects: diose Some of the cells of associated coordination of this typology are dependences have been analyzed in more developed than mechanisms is others; for example, some detail, while resource-resource dependences have not. Insert Table 3 1 about here Data and methods As a concrete example of a coordination theory process and consider example is analysis, alternative forms the process could take. I The will examine a software change particular orgcinization in this the minicomputer division of a large diversified electronics corporation; in 1989, the study started, the entire corporation Draft of 8/17/94 had sales of when approximately $10 billion and roughly 11 100,000 employees^. The computer division produces several lines of minicomputers and workstations and develops system software for these computers. 3.1 Research setting This process was examined as part of a study of *e engineering change process in three First, the process organizations. Engineering change processes are interesting for several reasons. is manufacturing to very coordination-intensive and requires individuals in engineering and work together to be effective. Second, even though each change is unique, change management is of routine relatively routine. Pentland (1992) notes advantages to shidying this sort work: each one. change forms a clearly bounded unit of work and intensive records are kept of each change management which are is done in Finally, some form by nearly all manufacturing companies, many interested in improving the performance of this process. The particular group studied was responsible for the development of the kernel of a high-level language. proprietary operating system, a total of about one million lines of code in a Development of the operating system had that time, the system To system is had just set the context for been started about 5 years before we began our study; at irutially released. my analysis, I will first briefly describe the product. the basic software of the computer; its major function is to insulate The operating programmers from users to share the computer the details of the hardware. Additional mechanisms permit multiple services such as access without interference. Increasingly, operating systems provide specialized to a network or database and transaction management. Operating systems are specific to the details of the hardware; the system studied works only with typically quite this manufacturer's hardware. 5 The field work and Draft of 8/17/94 analysis was done with the assistance of Stephen Brobst. ^^ Software differences is interestingly different is tfiat software the development process is is from other products. One of the most fundamental not a physical product, which has several implications. completed, reproduction of the finished product straightforward, consisting mostly of duplicating tapes ai\d documentation. is very malleable: almost any change that can be imagined can be is not to imply that changes to software are costless, however.) As a changes is once relatively As well, ttie product made without the physical constraints of other products, such as the need to change tooling or produce (This is First, new components. result, the rate of higher in software than in hardware (A, p. 110)^. Second, problems are much more likely to be systematic. A problem with a hardware may or may not occur may also be a random failure. in another item: the problem piece of may be due to a design flaw, but it A problem with a piece of software, on the other hand, it is likely to occur in every copy of the software. This is especially true for system software, which less customized than mainframe or mini<omputer application software and thus and for is usually less variable, micro or minicomputer software, where the variance in the underlying hardware In a sense there is only one product, not multiple instances. As a processes are important to do well, because they affect every The operating system developed by this several major subsystems, such as the process software change user. organization manager or result, file is decomposed hierarchically into system; each subsystem divided into a number of modules. Each module implements a small set of services. depends on another process manager if the first makes use of services provided by may use routines management code depends on that are part of the (part oO the file file is less. further is A module the second. For example, the system; therefore, (parts oO the process system code. The set of routines and data provided by a module form the interface to that module. ^ References to page numbers of statements by subjects. Draft of 8/17/94 my field notes are given as the source for quotations or 13 Different interfaces are provided for use to customers are described in published interfaces, called service interfaces, are software. Service interfaces used sp>ecifications; tt\ose manuals for the library. system and rarely Interfaces provided ever change. Other if provided for general use by other parts of the system by other development groups are documented used only within a single unit specification or perhaps not at documentation by different classes of users. all. may be dociunented Manuals and external in an in external internal specifications are maintained in a paper Programmers who request copies of a document are registered as a user of the described interface, in principle so tfwy can be informed of any changes to the document At the time of our study, there were 800-900 documents, with about 1000 users A total of 15,000 copies of 3.2 Data documents had been total. distributed. collection The analysis presented here is based on 16 interviews with 12 different individuals, including 6 softwtu-e engineers, two managers and three members of support groups and one marketing engineer. The interviews were carried out during 6 headquarters; most were or>e to two hours long. member of the software development group As who well, I trips to the worked on company's engineering the analysis with a former much additional provided information. As discussed above, coordination mechanisms primarily involve information-processing activities. (e.g., For my study I March and Simon, therefore adopted the information processing (IP) 1958; Galbraith, 1977; Tushman and view of organizations Nadler, 1978) because of its focus on how organizations process information. During the interviews, I attempted to uncover, in March and Simon's (1958) terms, the programs used by the individuals in the group. March and Simon suggest these programs: (1) interviewing individuals, (2) examining operating procedures or and Simon (3) (1958) point out, Draft of 8/17/94 observing individuals. I relied "most programs are stored documents three ways to uncover that describe standcu-d most heavily on interviews. As Mcirch in the minds of the employees who carry 14 them out, or in ti\e minds and most accurate way simplest I many purposes, the of their superiors, subordinates or associates. For to discover started the data collection studied. This identification what a person does to ask is him" by identifying differa\t kinds of actors was done with the aid of a (p. 142). in the group being few key informants, and refined as the study progressed. As well, formal documentation of the process was used as a starting point where was available. For example, a number of individuals design and code parts of the it operating system, each is all working in rougJJy the same using the same kinds of information; an example of a "software engirwer actor." Response centre or marketing engineers use and process different information Subjects were identified was no evidence, however, it by differently and were therefore analyzed the key informants, based that their reports identify the types of information received were from whom they receive systems); (4) it; (3) how they process messages as a result. how atypical. I on separately. their job responsibilities; they receive (1) .ere then interviewed each subject to by each kind of actor and the way each type handled. Data were collected by asking subjects: talk way and is what kinds of ir\formation they receive; it (e.g., from telephone and the different kinds of information; calls, (5) to (2) memos or computer whom they send When f)ossible, these questions were grounded by asking interviewees to about items they had received that day. I also collected examples of documents created and exchanged as part of the process or that described standard procedures or individual jobs. Not surprisingly, the process as performed frequently differs from the formally documented process. For example, at a different site in the study, engineers receive a listing of all approved changes, but the official list seems merely to confirm that the changes have been approved. In order to react to a change an engineer must be warned of it well in advance of its appearance on the primarily through an informal process. Draft of 8/17/94 It is official list. this informal process This warning seems to happen I sought to document. 15 3.3 Validation of data The initial product of these studies was a model of the change process (presented detail in more below) that describes the actors involved, which steps each performs and the information they exchange. contact at this It should be noted that data were collected about only one group because company worked in that group. my My impression from interviews with individuals who had worked in other groups in the past or who interacted with them is ttiat processes are similar in odier software development uiuts, but I have rw direct information Relying on interviews for data can introduce some biases. what they the really think. company, so (the "company company Some interviews were conducted intervie A^ees line"), may have been te^npted what they think I want look best. Second, individuals sometimes people do not always say in the presence of another to say to hear or First, about them. employee of what they think they should say what will make themselves or the may really not know the answer or may be mistaken. Some of these biases can be controlled informants. For example, can check if that other if by cross-checking reported data with other one interviewee reports sending information to a particular group, I group reports receiving such information. Furthermore, the modelling process serves as another check on the consistency of the data. I used an iterative approach, sometimes called the negative case study method [Kidder, 1981 #114], switching between data collection and collection serves as the basis for the data, for example, places an where initial it model development. The model. Constructing this was not clear how an actor initial round of data model revealed omissions reacts to in some message or from whom a particular piece of information comes. These omissions or ambiguities serve as the basis for further data collection. Draft of 8/17/94 16 3.4 The change process Reasons for changes. Lientz and Swanson (1980) distinguish three reasons for making changes to a program: corrective, perfective and adaptive. Corrective changes are those fix made to problems. For this company, problems are defined as disagreements between the behaviour of a program and its documentation. The interface ctnd behaviour of a module are supposed to match Q\e document describing it, so changing tfie interfece requires a revision of the corresponding docviment. Fixing problems usually requires changing the software, but sometimes the fix is made to the documentation instead. Perfective changes are those made improve a correct program without altering its behaviour, typically by improving performance. Adaptive changes are those that add new functionality, altering the software requirements. The last two categories of changes are mostly than as part of the change process, so Goals of the change process. process (A4, p. • I will not discuss made them to to to meet changing enhance the system rather further in this paper. The organization had the following stated goals for the change 7): ensure that all critical program parameters are documented: customer commitments, cross-functional dependencies. • ensure that a proposed change • ensure that document status is: reviewed by all impacted software development units/functions; formally approved or rejected. and • date); is made available ensure changes are made quickly and More generally, I and ensures that changes are and number efficien tly believe the change process actually has quality of the software are fully tested to all users: stable (revision changes being considered; approved/rejected/withdraum. to two primary goals: module and its the module involved, documentation are kept cost of changes, the change process requires that changes be authorized enhancement. maintain the minimize the cost of changes. To maintain quality, the process made by someone who understands that the to As one manager put it, in tha«^ changes agreement. To reduce the made only to fix a problem or the "formal change control process is add an there to prevent changes" (A, p. 108). Draft of 8/17/94 17 Many problems are found during the development process by the testing group. Some are found testing by customers using the product. The software maintenance processes start when the group or a customer notices some problem with a product and complains. The group can enter a problem report directly Customer complaints are altered centre staff if in the testing change request system described below. into the system by a field engineer or by the customer support the customer telephones for help. When a customer calls, \he call is directed to one of approximately 300 specialists in one of 10-15 groups, depending on \he reported product The staff member handling A\e call may use information such as the manuals distributed with the product, marketing information, ciurent price lists, ordering information and other documents describing the product. Specialists also have access to a database of all calls logged in the past few years and a database of change requests. may be due to several causes, such as user misunderstanding of the product Problems (an estimated 4 out of 6 calls per day, according to one interviewee), hardware problems (1/2 to call per day) or real problems with the software (1 to 1 1/2 calls per day). The reported problem may duplicate a known report already in tiie change request database. patch, the call handler can order existing problem tracking system. ref)ort, is for the customer. the call handler can enter a Our interviewee had a specialist group database it (i.e., If 1 In tt\is case, if the reported problem does not there a is match any new change request in the change request entered a change request 2 times in 9 mondis of working in on the order of 2 out of an estimated 1000 calls). The change request the major commuiucation channel between the customer service centre and the development engineers. Marketing engineer. Once a change request marketing engineer studied. for review. entered from any source, it is retrieved There are eight such engineers for the operating system The marketing engineers Draft of 8/17/94 is get a list of by a we problems entered every morning. About half the 18 time the problem report is complete enough to work with; in other cases, the a\gineer requests additional information from the submitter Once the report is complete, and waits for really a user misunderstanding, a duplicate of a \he problem appears to be genuine, decide that the problem process. is it may also determine tinat the problem is known problem or due to a documentation error. The marketing engineer may also an enhancement, which are haiKlled by a separate sets the priority for fixing the The marketing engineer next determines to the be sen*^ gets processed further. really a request for The marketing engineo* then change request to the marketing engineer attempts to replicate &»e problem to gain a better understanding of its causes. The engineer If it the location of the development unit responsible for that problem. problem and assigns the module. can not locate the problem, the report goes to a group called the If the marketing engineer SWAT team. This team has access to the system source code which they use to further diagnose the problem. they locate the bug within group; they may go as some module and far as to At the least, assign the report to the appropriate engineering suggest a possible fix to the engineer, although they do not make changes themselves. Software engineer. Periodically a coordinator in each software development group assigns new change requests in the database to the engineer responsible for the affected modules. software engineer then investigates the problem. module, then the engineer passes the request The engineers first If the problem turns out discuss the problem informally; the problem is internal to a single if it is another module. change request tracking database. module, the engineer can just used by other modules, requiring that changes be made Draft of 8/17/94 in agreed that the problem should be resubmit the code to the integration group. In other cases, the change interface be entirely to the engineer responsible for the other transferred, the engineer then changes the assignment in the If to The fix the module and may require changes to those modules as to an well. In 19 these cases, the engineer must discuss die change with the owners of the affected modules as well as other interested engineers and arrange Change approval process. Changes for to them to change their modules as some service interfaces use) require changes to dociuneits that are controlled interface and the change, this mig^t be a thick document which jjeople what The engineer will be changed. invites diese people to the design reviews. otherwise, they change for the change. For a ma^or widely circulated; for a minor change, only a few may be involved. Typically the change includes a marked up copy of the document indicating and is (those intended for general by a change control group. To change the document, the engineer writes a proposal related necessary. is come to the design review investigates If who will be affected by the change they are not affected, they simply say so; and comment on the proposed change. When the agreed on, the engineer seeks approval from management and from the change review board. The board is composed of representatives of different software development units, software manufacturing, integration and a testing and performance unit, 15-20 people in This group meets once a week for two hours, during which they discuss change other issues. For this operating system, the board considered 4-5 changes per documented week among to interfaces. Once is requests, total. the change is approved, the engineer changes the code as necessary. The end result code for a new module with the problem fixed. When the change is complete, the engineer and another engineer review the code to check that no other errors were introduced. As well, the engineer code for first tests the affected all modules the to create the engineer informally Integration new code identify modules by recompiling and to the testing (i.e., merging the affect multiple modules, the change with die aid of the other engineers. When the engineer is satisfied with the change, he or she submits and integration group. which change request and relinking the system complete system). For changes that tests the entire testing. it is In order to submit a change, the engineer .nust being addressed; without a request, the integration group will not accept the change. The submittal form must also be approved by the engineer's manager. Draft of 8/17/94 20 When multiple modules must be changed, the changes for each module are submitted separately, but with a notation that it is part of a bundle. The complete. The integration group then recompiles The kernel is initial all engineer indicates die changed code and when the bundle is relinks the system. then tested; any bugs fouTKl are reported to the engineer, potentially starting another pass through the process. If tt\e problem was serious and required a quick response, a fix can be released in the form of a patch. To make a patch, the compiled code for ihe just the affected modules is copied on a ta(>e which can be separately installed on the affected customer's system by a field engineer or the customer. If the problem did not need an immediate solution (e.g., diere is a workaround that avoids the problem), then the customer would wait for a routine release of the system that includes the change. Customers are periodically sent the most recent release of the system. The activities performed for a typical Table 2^. Although no particular bug were described as typical by is change are sunnmarized in die first two columns of necessarily treated in exactly this way, these activities my interviewees. Insert Table 2 about here 4 Dependences and coordination mechanisms in software bug fixing In the course of making a change to the system, managed. The coordination theory approach identifying diese dependences least) two ways First, part of ^ to identify numerous dependences must be to analyzing and redesigning and considering alternative ways to this process suggests manage them. There are (at dependences and coordination mechtinisms (Osbom, 1993). we c£m examine activities in the current process, identify tfiose that are seem to some coordination mechanism and determine what dependence they manage. Some be of the Because the orignal study focused on the actions of the software engineers, the response was treated as a collective actor. As a result, activities internal to it, such as the task assignment discussed above, are omitted from the summary of the process. centre Draft of 8/17/94 21 activities in the discussed column bug fixing process the def)endences such activities apparentiy eeirlier; of Table 2. For example, one of the tasks is known problem listed in the manage are listed in the third things the customer service centre first marketing aigineers aiKl software engineers do duplicates a Ae coordination mechanisms apf)ear to be instances of when receiving a problem report staff, is check if it change database. In the typology, looking for duplicate coordination mechanisms for managing a dep)eKlence between two tasks listed as a which have duplicate outcomes. The organization can avoid doing the same work twice by noticing the duplication and reusing the result of one of the tasks (as Task assignment task and a p>erformer is a coordination mechanism by finding a f>erformer performed repeatedly in this process: them allocation task. the dependence between a Such coordination mechanisms are to the marketing engineers, marketing engineers software oigineers and software engineCTS assign tasks to each other. to the Prioritizing tasks, do the managing the case in this example). customers assign tasks to the customer service centre, the customer service centie assigns novel tasks assign to for is performed by the marketing and software engineer, a sign of a resource is mechanism. A second approach what dependences is to list the tasks and resources involved are possible between them. It in the process may be that some of the and consider steps in a process are coordination mechanisms for managing those dep>endences. As mentioned above, tasks necessary to res{X)nd to problem reports include noticing there is reproducing aind diagnosing the problem, designing a a problem, finding a fix, writing new code and recompiling system with the new code. Resources include the problem reports, the sf>edalized actors and the code Dependences between one task. code, For example, tinat is the two. many tasks can be identified used as input by some other Draft of 8/17/94 efforts of a the number of itself. tasks create Malone and Crowston workaround, by looking some output, such a for resources bug rep>ort, task, thus creating a prerequisite (1994) note that such dependences often used by more than a diagnosis or new dependence between impose usability and 22 Some invaitory constraints. new module works example, testing that a creating code If of the steps in the process appear to two problems in the code. In this process, this def>endence correctly addresses the usability constraint same module, then both bug is least greatly in these modules often called "code ownership," since each p>erforms all modify tasks that fixing tasks managed by assigning modules is programmers and then assigning problems owner who constraints; for between and relinking and using the system. there are arrangement manage such that to that module need the same of code to individual programmer. This of the system has a single module. Such an arrangement eliminates or at reduces the need for coordination to share that resource. Finally, there e dependences betweeri modules owned bv different engineers constrain whiat changes can be made and must therefore be that managed. Interactions between different parts of the system are not always obvious, since they are not limited to direct physical connections. As a result, the impacts of changes are not always immediately apparent. In principle to each module is should be easy to detect dependences automatically, because the interface it defined in what is calling modules. Simply looking at mixiuie includes many all u hich may routines, called a "header file", these of files which is explicitly referred to in overstates the dependences, however, since a which are defined in the header file, but only a few of actually be used by the particular calling module. Furthermore, since time consuming to list exactly which other mixiules that simply defines everything that is likely to underlying dependences by (apparent!) ) all a module uses, sometimes programmers often use be necessary. Overuse of making it is this file masks the a file real ever)'thing depvend on everything else. Interactions can be determined directly from the source code of the system, for example, by looking list for places which mtxiules where one nxxiuie call which other modules. These limitations. First, the cross-reference Draft of 8/17/94 calls another. Cross-reference listings can be listings exist made that and are used, but they have two does not indicate where mcxJules use data structures from 23 a another module (as opposed to calling routines). Second, the cross reference only covers the kernel; it does not show which routines are called by code developed by other groups. As a result of these problems, there seem to be no reliable mechaiucal means to determine the interactions between different modules. Instead, social mechanisms are used. In theory, a programmer should interface register with the documoit library and ask the maintainer if they want to if they want to use a documented use an uivlocumented interface. An engineer could then use these sources to determine who would be affected by changes to a module and should be invited to review any changes. In practice, programmers sometimes borrow a document or copy pieces of someone some cases, irtform the developer. In usual social norms that control 4.1 how else's code jmd therefore do not realize that they should these other programmers are interfaces are used in other groups where the may not apply. Developing new forms —such as could be easily generated from Table 2 above— Given a flowchart of a process common approach to where steps or places redesign tasks is to look for problems such as redundant or non-value added spend long periods waiting to be worked on and then modify the process to address these problems (Harrington, 1991, pp. 134-163; Hammer and Champy, 1993, pp. 122-126). For example, the current change process assumes that customers are incapable of doing anything to fix their problems. for example, to check themselves for duplicate developed at the conclusion of and search for documents information. Customers The process could be modified our study to allow that describe their who tasks. In fact, a just this. to allow customers do more, database of documents was Customers can dial-in to the database problem and the appropriate workarouna or patch find solutions can order the patch or apply the they can leave an electronic request for a return call workaround; if not, from the response centre, starting the change process described above. Draft of 8/17/94 24 Our analysis suggests another approach to redesign, namely, replacing some coordination mechanisms with alternative mechanisms. In the remainder of this section, discuss three examples involving alternative techniques for managing I will task-task, resource- resource and task-resource dependences described above. Alternative mechanisms for managing prerequisite dependences. In the manage prerequisite dependences between several activities appear to output of the one task reports are detailed is enough approvals tests, tasks by ensuring that the usable by another. For example, marketing engineers check that problem to be used by tite engineers fixing the bugs; bug fixes are tested at problem and do not introduce new problems. In several points to check that they actually fix the addition to these problem fixing process, managers must approve changes before they can be implemented. Such may serve as an additional check on the quality of the change, either directly, if the meinager notices problems or indirectly, because engineers are more careful with changes they show their managers. There are other possible interpretations of might use the information to allocate resources spend to all. If their time or simply demonstrate this approval process: managers among different projects, their power without track how engineers necessarily adding any value at approvals are a quality check, however, there are other mechanisms that might be appropriate. For example, if approvals are time consuming and most changes are approved, may be more effective to continue the change process it without waiting for the change to be approved. Most changes will be implemented more quickly; the few that are rejected vnW require additional rework, but the overall cost might be lower. Alternatively, managerial reviews could be eliminated altogether in favour of more intensive testing and tracking of Alternative mechanisms for managing resource-resource dependences. when test results. Changes are problematic they are visible outside a single module since they then require coordinated changes to the modules which depend on it. These dep)endences are especially difficult are developed in different divisions, since there divisions. For example, Draft of 8/17/94 one interviewee is little told a story to mange if the modules informal communication between about the time the word processing system 25 became the source of mysterious system crashes. It turned out that its developers had used a very low level system call which had been changed between rdeases, c£ using no way for the developers of the word processor to for the developer of *e system call to know the problem. There was know not to use the system call and no way they were using it, since the word processor is developed in another, geographically remote software development urut The typology suggests tfiat such dependences must sometimes first be noticed and then managed. however. For example, engineers can only perform Noticing dependences is unit tests (that of a single module); they can not really test the whole operating system since they access to tests do not necessarily know how all recompile is, difficult, the code. all files, To save time, tfw other modules are supposed to behave or even have an engineer or even the integration group might not but since there are no sure-fire methods mi^t be affected by a change some affected files to determine which other modules migjit be omitted, an almost certain source of problems. One solution is programmers use. Such provide documented service interfaces for the data and to interfaces change only rarely, calls reducing the chance of problems. At the time of our study, the change control group was planrung to control the use of more interfaces were planning a new solution is set of interfaces to internal data that to better ti-ack database that lists principle these what interfaces people are using. which engineers have requested copies lists can be used often they are used or to track who how accurate tiiey are. documents or code fragments; captured by die database. customers were using. tiiese As mentioned of A second earlier, there is a documents describing uses a particular interface, but it is interfaces; in not clear how For example, engineers frequently borrow copies of borrowings could result in dependences that are not One engineer was working on a known dependences, but he was concerned that witiiout a database tiiat mechanism included all currently for people to report their use of other modules the database would not stay up-to-date. Draft of 8/17/94 26 Alternative mechanisms for task assignment. In the analysis we noted numerous places where actors perform part of a task assignment process. For exctmple, customers give problem rejwrts to the service centre, which in turn assigns them software engineers. In addition, software engineers to product oigineers, may assign reports or subtasks to each other. Currently these assignmoits are done on the basis of specialization, that problem ref)ort must determine the module in who assign them to which the problem likely is, an actor with a appears and assign the task to the engineer responsible for that module. This system has the advantage \hat a particular engineer code. is (TTiis responsible for a small set of modules and can therefore develop expertise in that feature the system.) As result of particularly important well, since discussed above location of a is is when modules are assigned is also developing to engineers, the problem can be new versions of code sharing problem minimized. However, there are aiso disadvantages. First, diagnosing the because symptoms can appear to be in one module as a difficult, problems somewhere else. In the best case, an error message will clearly identify the problem; otherwise, the problem will be assigned transferred. the engineer to the most likely area and perhaps later A second problem is load balancing: one engineer might have many problems to work on while others have none. Towards the The reorganization the end of our study, the group split the development engineers system is made available we were studying underwent a reorganization. engineers into support and development groups, possibly to allow to concentrate on adding new to the customers, functionality. As each version of the development stops and the version goes into support. only important problems and refer others to the Engineers working on these versions fix development engineers be addressed in future versions. Most bugs are reported against the current versions though, since those are the ones that customers have. In this form, support engineers are not specialized support group has fewer engineers who do not split their by module, apparently because the time between support and development, thus reducing the need for specialization as well as Draft of 8/17/94 tiie resources to support it. The 27 support engineers are instead organized around change ownership rather than module ownership, that is, an engineer is assigned a modules are affected. As a result, task particular problem report aivl changes whatever assignment can be done by workload rather than specialization. With change ownership, multiple engineers may be working on the same module. To manage these new task dependoKes, the company started system maintains a copy of all source check it files. The activities and is analysis of this checked back in form are shown in assignment mechanism. In this form, Table 3 about here lowest bidder 4.2 fix is the bug, mechanism for task A more extreme substitution is to use a market-like task each problem report evciluates the report; engineers interested in fixing the take to 3. the substitution of a specialist assignment with a generalist mechanism. When the change and the system records the changes made. Insert Table The previous example showed The When engineers want to make a change to a file, they out of the library, preventing other programmers from modifying it has been completed, the module would to use a source control system. is sent to bug submits all available engineers. Each how a bid, saying long it how much it would cost or even what they would charge to do it. The chosen and the task assigned to him or her. EiHiluating alternative organizational forms Given this aruilysis, it is important to be able to evaluate the advantages and disadvantages of each kind of organization. In this section, I will suggest informally — evaluation might proceed for the three forms of task assignment consider above generalist and market-like how such an specialist, —following Malone and Smith's (1988) analysis of four different organizational structures. In their model, tasks arrive at an organization and must be assigned an actor that can execute them. They compcu-e organizational forms on three criteria: Draft of 8/17/94 to the 28 production cost (i.e., the average delay to process a task), the coordination cost (the messages necessary to assign a task) aiKl vulnerability of the Many other fectors could be added three additioruil factors: learning form to failures of to complicate such a model. by engineers who work rej)eatedly on I an number of actor. will briefly consider the same modules mi^t reduce production costs; diagnosing a problem to choose an appropriate specialist and decomposing and distributing complex problems across costs. Calculating these costs requires e.g., specialists might increase coordination some detailed assumptions about parameters of what proportion of tasks are complex or how long it takes to diagnose a the system, problem versus sending a message. However, even without these assumptions, some qualitative comparisons can be made. The first form, assignment based on sf>ecialists, has a low coordination cost. Assigning a task requires only three messages, from the customer to the service centre, from the service caitre to the marketing engineer and from the marketing engineer to the software engineer. Each of these actors must evaluate the task and Because software engineers are relatively quickly once they get the decomposed and assigned identify the appropriate specialist to specialists, task. presumably they However, problems to multiple engineers. If the load become available, however. Also, other engineers those engineers could be busy working on Finally, the form is substitute in a pinch). engineers will have (i.e., some wait until the engineer to is wait for the code to may be under-employed, although presumably new versions of the system. vulnerable to the failure or overloading of a single actor since the engineer responsible for each module has no backup Draft of 8/17/94 to time to finish the task. The engineer does not have problems modules must be distributed unevenly modules have more problems than others) then a problem may have free, increasing ttie will be able to fix that span is work on it next. (in practice, of course, other engineers could Assignment based on module reinforces specializations by module since little opportunity or need to learn about other parts of the system. 29 The cost of the task assignment in the generalist model number of messages. Furtfiermore, the fiiud assigrunent need for the marketing engineer to identify the is is also low, requiring the same done by workload, eliminating the module involved. Problems are handled by the next available actor, minimizing waiting time and reducing vulnerability of the organization to the failure of a single engineer. However, because the engineers are generalists, the time they take to fix a module is likely to be higher than in the specialist model. The organization advantage of any difference between actors in performance and no actor has (or incoitive) to learn in detail someone for the else is already code to to make in the if the changes. messages to assign each task (one for each bid request and for much opporturuty module, then the engineer will have to wait The market-like model has a much higher coordination messages includes, no about a particular module to improve performance. Firudly, working on a problem be available takes bid). cost, since it requires many The cost of processing these example, the cost of having each engineer read each problem report. However, problems can be immediately assigned, aldnough the engineer may have code to be available to make the changes. Finally, in this to wait for the model, the task will be assigned to the actor with the lowest bid, thus taking advantage of differences in knowledge. If the actors learn, then can specialize, preferentially bidding for one type of task and constantly improving their performance on it. For example, an engineer who has recently worked on one module may be able to bid lower for other changes in that module. The relative costs of these three have identified additional nrvarket-like form is is summarized fix in Table 4. Of course, researchers factors that affect the feasibility of these forms. For example, the susceptible to agency problem: number of bugs they flat salary, forms if engineers are rewarded based on the they might bid unrealistically low to win assignments; they might not bid at implications of such factors all. As with tfie if they are paid a product of any redesign method, the must be considered before a particular form can be recommended. Insert Table 4 about here Draft of 8/17/94 30 4.3 Effects of electronic media on the choice of coordination methods As discussed above, the use of new communication media and differa\tially aitect the costs of coordination technology for is mechanisms. Clearly, the exact form of the important than the functionality less it provides. In the case discussed in this paper, example, the main communicaticms channel between groups requests rattter than a (Electroruc mail other kinds of IT more ccmventional system like electronic is actually a database of change mail or computer conferencing. was available, but not heavily used witfiin the group.) However, system provides much of tf\e same functionality and was sometimes even used For example, on one occasion the response centre created a the database in the same way. new change request to enter a question about the status of an older report; the responsible engineer then replied to the question in another field of the database Ratiier than focusing technologies is and closed on the the request. specific technology then, one approach to analyzing such consider which of a system's attributes are important. Nass and to pp. 52-53) discuss numerous dimensions of communications technology; key Mason (1990, attributes for the case above include permanence across time, one-to-one vs. one-to-many communication and programmability and integration with computer technology. Permanence across time means a later date. that messages entered into the system can be retrieved at Computer conferencing and databases have electronic mail do not. This function allows the this property; telephones product of fixing a problem to and ordinary be stored and reused, a key part of one of the coordination mechanisms discussed above. A second key characteristic is the Telephones are usually one-to-one; paper number of possible recipients for a single message. memos can be one-to-many, for a cost; and electronic media can be one-to-many with almost no extra cost. This functionality enables more coordination intensive forms. For example, in the market-like form, the response centre needs to send the same message Draft of 8/17/94 (a bid request) to all software engineers. The organization could use a 31 computer bulletin board on which task announcements are posted to support this communication. Such a system would reduce the coordination cost by replacing multiple bid request messages widi a single broadcast. Finally, electronic computer technology, system could filter number that need communications media pot»\tially automating certain kinds of coordination. For example, such a problem reports to may be programmable or integrated with for engineers based on an interest profiles, be evaluated. Bid processing and awarding could also be easily automated, further reducing the cost of a market-like mechanism, perhaps enougji to 5 reducing the make it desirable. Conclusion Engineering change provides a microcosm of coordination problems and mechanisms to management of numerous solve them. Successful implementation of a change requires dependences among tasks and resources. A variety of mechanisms are used may simply be dependences. For example, the possibility of duplicate tasks to manage these ignored or engineers may check for a know^ solution before attempting to solve the problem. Dependences between tasks and the resources needed to perform them are managed by a variety of task assignment mechanisms, such as managerial decision making based on expertise or workload; those between modules of the system, by a variety of code management systems and The choice of coordination of possible organizational forms, mechanisms to disciplines. manage these dependences some already known (such results in a variety as change ownership) and some novel (such a bidding to assign problem reports) The relative desirability of mechanisms to be affected by the use of electronic media. For example, make it easier to find existing solutions to a tiie problem, either use of a computer system in a is likely may database or from geographically distributed coworkers, thus reducing duplicate effort, or reduce the coordination costs of a market-like task assignment sufficiently to Draft of 8/17/94 make it desirable. 32 As well, the software change process may have interesting parallels in other industries. Despite differences in the products, the other engineering change processes studied (Crowston, 1991) had sinularities in goals, activities, coordination one reviewer noted parallels betweoi diagnosing software bugs diagnosing patients to assign them to mi^t reveal problems and mechanisms. Further ttiis them to engineers and An analysis similar to the one presented here specialists. interesting alternatives in to assign afield, domain as well. Such an effort may be particularly timely, given the leading role IT-enabled changes play in current proposals to revamp the American health care system. Coordination theory, like organizations, but it all theories, a simplification of the complexity of real is seems to usefully explain a variety of alternative processes and highlight the contribution of new communications media and other information example presented here obviously does not serve to to those to test the tiieory, but rather to with other interests. Furthermore, the suggestions of the analysis needs is cheaf)er, (as is true of does not mean any kind of analysis). it is what should happen communication systems, although 1987). For it to any single organization Specifically, automatically better or that should be implemented. In other words, coordination theory does not predictions about demonstrate the how tasks are performed, however, the technique because a particular mechanism will or single focus on Given be tempered by consideration of omitted factors just The its potential of the approach. may not appeal technologies. that does suggest what wall hapf)en make it strong implemoits a new in aggregate (Malone, et al., example, as mentioned above, market-like task assignment mechanisms have certain cost benefits, but are also susceptible to agency problems that succeed. Rattier than saying must be addressed what must happen, the analysis suggests if possibilities A\ey are to which an informed manager can consider and modify as appropriate for the particulars of the organization. Therefore, the appropriate test for the theory Coordination theory useful to consider Draft of 8/17/94 is a success if is its utility for organization designers. those attempting to understand or redesign a process find how various dependences are managed and it the implications of alternative 33 mechanisms. As an example, processes (Malone, et consult the al., handbook we are currently using these techniques to compile a handbook of 1993). Managers or consultants to identify likely alternatives and interested 'n redesigning a process could to investigate the advantages or disadvantages of each. Coordination theory makes the haiKlbook feasible by more precisely revealing how processes are similar and where they differ. A redesign agenda suggests several additional research prc^ts. First, development of the handbook £md general use of a coordination-theory analysis for recording processes and identifying depeiKlences requires more rigorous methods in organizations. There are already many techniques for data collection which are relevtint, but none focus explicitiy on identifying dependences. Other researchers that relies on affiliated witti the handbook basic techniques of ethnographic interviewing activity lists to identify project have proposed an approach and observation to collect data dependences and coordination mechanisms (Pentland, et al., and 1994). Prototypes of such methods are currently being used for our research and in the classroom. Experiences to date attempting to teach students to use this while to pick up the concepts, but that using them leads Second, more work is needed techniques indicate that it takes a to greater insight into the process. to elaborate the typology of dependences, particularly those between objects, and associated mechanisms. Identifying additional mechanisms inevitable result of the work being done ways to organize mechanisms these will to record a variety of processes, cind be develof)ed. Finally, I is an exp)ect that better computer simulations of processes will provide an aid to understanding the performance of processes using alternative coordination mechanisms and might even automate the exploration of alternative forms. Although still under developir«.nt, coordination theory seems underpinning for the study efforts will cuid design of new organizational be a coordination-theory based processes. The much needed result of these set of tools for organizational analysts that perhaps help realize the potential of electronic Draft of 8/17/94 to provide a and designers, media and new organizational forms. 34 m Acknowledgments This research Institute of was supported by tiie Center for Coordination Science at the Massachusetts Technology arul a fellowship from the Ameritech Foundation. discussions with Michael Ccrfien, Jin-tae Lee, It has benefited from Thomas Malone, Charlie Osbom, Brian Pentland and other members of the CCS Process Handbook Project Draft of 8/17 ^5 References Abbott, A. (1992), "From causes to events: Notes on narrative positivism," Sociological Methods and Research, 204, 428-455. Abell, P. (1987), The Syntax of Social Life : The Theory and Method cf Comparative Narratixfes, New York: Clarendon Press. 'Towards a Coordination Cookbook: Recipes Crov^rston, K. (1991), Unpublished doctoral Davenport, T. H. and J. dissertation, E. Short (1990), MIT Sloan School of Management. "The new industrial engineering: Information technology and business process redesign," Debreu, G. (1959), Theory cf value: Sloan Management Review, 314, 11-27. An axiomatic analysis of economic equilibrium. New York: Wiley. MA: MIT Press. Dennett, D. C. (1987), The Intentional Stance, Cambridge, Finholt, T. and Galbraith, J. L. S. Sproull (1990), "Electronic R. (1977), Organization Design, Hammer, M. for Multi- Agent Action," groups Reading, at work," Organization Science, 11, 41-64. MA: Addison-Wesley. "Reengineering work: Don't automate, obliterate," Harvard Business (1990), Rmetyjuly- August, 104-112. Hammer, M. and J. Revolution, Harrington, H. J. Champy (1993), Reengineering the Corporatwn: A Manifesto for Business New York: Harper Business. (1991), Business Process Improvement: The Braikthrough Strategy for Total Quality, Productivity, Harrison, D. B. and and Competetiveness, M. D. Pratt (1993), New York: McGraw-Hill. "A methodology for reengineering business," Planning Review, 212, 6-11. Draft of 8/17/94 37 Lawler, E. E., Ill (1989), Lientz, B. P. and E. B. "Substitutes for hierarchy," Organizational Dynamics, 1633, 39-45. Swanson (1980), Scfhvare Maintenance Management: A.Study of the Maintenance of Computer Applications Software in 487 Data Processing Organizations, Reading, MA: Addison-Wesley. Malone, T. W. and K. Crowston (1994), 'Toward an interdisciplinary theory of coordination," Computing Surveys, 261. Malone, T. W., K. Crowston, Toward a J. Lee and B. Pentland (1993), "Tools for invwiting organizations: handbook of organizational processes," In Proceedings of Second Workshop on Enabling Technologies: Infrastructure for Collaborative Enterprises (pp. 72-82), Morgantown, WV: IEEE Computer Society Press. Malone, T. W. and S. A. Smith (1988), "Modeling the performance of organizational structures," Operations Research, 363, 421-436. Malone, T. W., J. Yates and R. I. Benjamin (1987), "Electronic markets and electronic hierarchies," Communications of the ACM, 30, 484-497. March, J. G. and H. A. Simon (1958), Organizations, Matteis, R. J. (1979), "The new back office focuses New York: John Wiley and Sons. on customer service," Harvard Business Review, 57, 146-159. McKelvey, B. (1982), Organizational Systematics: Taxonomy, Evolution, Classification., Berkeley: University of California. McKelvey, B. and H. Aldrich (1983), "Populations, natural selection and applied organization science," Administrative Science Quarterly, 28, 101-128. Draft of 8/17/94 38 Mohr, L. B. (1982), Explaining Organizational Behavior: Research, Nass, C. and L. J. The Limits and PossUrilities cf Theory and San Frandsco: Jossey-Bass. Mason (1990), On tfte study of technology and task: A variable-based approach. In Fulk and C. Stdnfield (Eds.), Organizations and Communication Technology (pp. 46-67), Newbury Park, CA: Sage. Osbom, C. (1993), Field Data Collection Tor The Process Handbook (Unpublished working paper), MIT Center for Coordination ScioKe. Pentland, B. T. (1992), "Orgaruzing moves in software support hotlines," Administrative Science Quarterly, 37, 527-548. Pentland, B. T., C. S. Osbom, G. M. Wyner and F. L. Luconi (1994), Useful Descriptions cf Organizational Processes: Collecting Data for the Process Handbook (Unpublished manuscript), Perrow, C. (1967), MIT Center "A framework for Coordination Science. for the comparative analysis of organizations," American Sociological Review, 32, 194-208. Powell, W. W. (1990), "Neither market nor hierarchy: Network forms of organization," Research in Organizational Behavior, 12, 295-336. Rich, P. (1992), "The organizational taxonomy: Definition and design," Academy of Management Review, 174, 75S-781. Sanchez, J. C. (1993), "The long and thorny way to an organizational taxonomy," Organization Studies, 141, 73-92. Swanson, E. B. and C. M. Beath (1990), "Departmentalization in software development and maintenance," Communications of the ACM, 336, 658-667. Draft of 8/17/94 39 Tushman, M. and D. Nadler (1978), "Information processing as an integrating concept in organization design," Academy cf Management Review, 3, 613-624. Woodward, J. (1980), Industrial organizations: Theory and practice (2nd ed.), Oxford: Oxford University. ^^ Draft of 8/17/94 Figures Table 1. A typology of dependences and associated coordination mechanisms from (Crowston, 1991). Dependence Coordination mechanisms Coordination mechanisms to to manage dependence maintain dependence Task-task Tasks share common output decompose a task into subtasks, iiKluding integration same characteristics look for duplicate tasks merge tasks or pick one do to negotiate a mutually overlapping agreeable result pick one task to conflicting Tasks share common do input shareable resource no reusable resource make conflict visible conflict schedule use of the resource non-reusable resource Output of one task is pick one task to do • input of means-ends analysis other (prerequisite) same characteristics order tasks ensure usability of output manage flow of resources reorder tasks to avoid conflicting conflict add another ttisk to repair conflict Task-object Object is identify necessary resource used by task resources identify available resources choose a particular set of resources assign the resources Object-object One object depends on Draft of 8/17/94 another dependence manage the dependence identify the pick objects with the desired relationship 41 Table 2. Typical steps in the software problem fixing process. Actor Activity Customer find a rep>ort nee problem while using system problem to response centre managed between. problem fixing task and capable actor Response Centre look for bug in database of to customer and stt^ known bugs; if found, return fix problem fixing task and duplicate tasks attempt to resolve problem refer hardware problems to field engineers problem fixing task and capable actor problem is novel, determine affected product and forward bug report to marketing engineer look for bug in database of known bugs; if found, retxim to customer problem if Marketing Engineer request additional information if fixing task and capable actor fix necessary problem fixing task and duplicate tasl^ usability of problem report by next activity attempt to reproduce the problem or find workaround set priority for problem problem fixing task and actor's time if the report treat Programming Manager or it actually a request for aifferently is an enhancement then , determine affected module if unable to diagnose, forward to SWAT Team if bug is in another product, forward to appropriate product task and reso tasks manager forward bug report module capable actor to manager of group responsible :es rt quired by problem fixing task and for determine engineer resf>onsible for module and forward bug rejxjrt to that engineer problem fixing task and pick tfie report with the highest priority, or the oldest, or the one you want to work on next problem fixing task actor's time diagnose the problem task and resources required tasks capable actor Designate Software Engineer if the problem is in another module, forward engineer for that module design a fix for the bug it to the if change is needed in other releases and make the change as needed send the proposed fix to affected engineers for their comments; if the comments are negative, then revise the Managers approve the change write the code for the problem fixing task two modules management of necessary, ask tfie usability task and capable actor usability of fix to other modules task by next activity and subtasks needed accomplish Integration and capable actor fix determine what changes are needed if and the process the change requires changes to a controlled document, then send me proposed change to the various managers and the change review board for their approval if Software engineer fixing task engineers responsible for the other modules to make any necessary changes test the proposed fix send the changed modules to the integration manager send the patch to the someone to send to the customer check that the change has been approved recompile the module and link test the entire system it with the rest of the problem to it fixing task and capable actor by next activity and capable actor usability of fix task usability of fix activity by integration system usability of entire system by next activity release the Draft of 8/17/94 new by capable actor check bug and repeat problem and software 42 MIT LIBRARIES 3 Table 3. Activities in Agent TDfio 0Da^3Dfl^ r the generalist form of task assignment. Activity Dependence managed between... Customer Use system, report bug find a bug to response centre problem fixing task and capable actor database of known bugs; Response lookup bug in Centre retiim customer and stop fix to if found, determine affected product and forward bug report to marketing engineer Marketing Engineer lookup bug in database of known bugs; if found, return fix to customer aiKl stop —part of diagnosing attempt to reproduce the bug determine affected module; to if problem fixing task and duplicate tasks problem fixing task and capable actor problem fixing task and duplicate tasks it can't diagnose, forward SWAT Team; if other product, forward to problem fixing task and capable actor appropriate product manager; put bug report in the queue of bugs Software Engineer start work on to Work on the next bug in the queue problem fixing task and actor's time diagnose the bug if it's actually an enhancement request, then treat it differently design a fix for the bug if the change requires changes to a controlled document, then send the proposed change to the various managers and the change review board for their Managers management of usability task and capable actor approval approve the change usability of fix subsequent Software engineer check out the necessfiry modules; if someone else working on them, then wait or negotiate to work is concurraitly write the code for the test the proposed problem fixing task and other tasks using the same module fix usability of fix fix subsequent send the changed modules check in the module Integration to the integration usability of fix subsequent recompile the module and link system system it by activities manager; check that the change has been approved test the entire by activities with the rest of the by activities integration endre system by next usability of activity release the Draft of 8/17/94 new software 43 Table 4. Relative costs of different task assignment mechanisms. Cost Specialists Production costs Waiting for engineer Waiting for module Fixing problem Takes advantage of learning Coordination costs Diagnoses Messages to assign Decomposition and assignment of subtasks Vulnerability to failure Necessary Generalists Market-like Date Due AUG. 3 NOV- f '9*^ - 3 1996 JUL 2 9 1998 "^ J-0 19! )9 Lib-26-67