Stakeholders and Their Concerns In Software Architectures By Ziv Baida Vrije Universiteit, Amsterdam, The Netherlands email: ziv@cs.vu.nl October 2001 Abstract An architect who writes an architecture document is not the only one involved in the process of building the architecture. And many more people are involved in the process of information systems development, which can be seen as a chain of activities, one of which is building the architecture. All these people are influenced by the decisions the architect makes when writing his architecture document. As a result, all these people must be taken into consideration when writing the architecture document. This paper is about identifying these people and the type of their involvement in the process. Table of Contents 1. Introduction Part One: Theory 2. Software Architecture 3. Stakeholders and Their Concerns 1. Stakeholders’ Needs 2. Concerns and Requirements Part Two: A Case Study - BAC 4. Background Information 5. Findings 6. 7. 8. 9. Part Three: Conclusions Conclusions 1. Conclusions Regarding the Case Study 2. Conclusions Regarding the Theory Further Research Acknowledgements References 1 1. Introduction Architects building an architecture for software-based systems must take into consideration requirements that various parties might have for the architecture and for the built system. We call these parties stakeholders. [Bennett 1997] defined stakeholders as people or things (e.g. other systems) that have requirements or expectations about a system. The stakeholders have different needs and interests, and therefore pose different requirements. In order to be able to take these requirements into consideration when building an architecture, the architect must identify all stakeholders, find out what their needs and requirements are, analyze the requirements together with the stakeholders, and prove to the stakeholders that the architecture he builds meets their demands. These tasks are much more difficult than you might expect: 1. It is not unusual to simply “forget” a stakeholder, and thereby ignore his needs. 2. A well-known problem is that "often the client doesn't know what he wants, and even when he does, he doesn't know how to define it". The architect must know how to extract information from the various stakeholders. 3. Various stakeholders have conflicting demands. Together with the stakeholders, the architect has to find the golden mean that will satisfy all the stakeholders. 4. The architect needs a method to evaluate his architecture, preferably at an early stage. The evaluation must be done in a way that the stakeholders understand. For information about evaluation, see [Clements+ 1995] and [Kazman+ 1994]. This paper concentrates on the first point and on what the architect can expect to hear with regard to the second point. In the first part of the paper, an attempt is being made to identify a complete set of stakeholders, together with the type of their requirements. In the second part of the paper a specific architecture is being tested against the presented theory. The third part of the paper presents the conclusions that can be drawn from the first and the second parts of it. This paper does not handle the notion of requirements, but considers it as widely understood. For information on that subject, see [Sommerville 2001]. Part One: Theory 2. Software Architecture There still is no definition for the term "Architecture", that is accepted as "the right definition" (although the IEEE 1471 standard is gaining ground). No attempt to give such a definition will be made here. For the reader who isn’t familiar with this discussion, the following can serve as guidelines. According to [Shaw+ 1996]: Software architecture involves the description of elements from which systems are built, interactions among those elements, patterns that guide their composition, and constraints on these patterns. According to [Gacek+ 1995]: A software-system architecture comprises: 2 • • • a collection of software and system components, connections and constraints; a collection of system stakeholders' need statements a rationale, which demonstrates that the components, connections, and constraints define a system that if implemented, would satisfy the collection of system stakeholders' need statements. 3. Stakeholders and Their Concerns [Dolan+ 1998] state, that the fact that software-system family requirements are complex and even contradictory, and embedded in a multistakeholder, interacting organization, means that the technical infrastructure of the family - the architecture - must be stakeholder-centric. I move this claim up one level of generalization; any software-system architecture which by its definition is non-trivial and therefore justifies building an architecture for it must be stakeholder-centric. A non stakeholder-centric architecture is one where the developer, typically a computer scientist, took the design decisions by himself. But since he lacks insight in other aspects of the system (such as the relevant business goals, financial restrictions, non expert user-behavior etc), he is incapable of taking these decisions by himself. Therefore the process must always be stakeholder-centric. 3.1. Stakeholders' Needs This section discusses the stakes and concerns of the various stakeholders. Some of the concerns, namely those that in my view are not self-explanatory, are explained in detail. Different stakeholders think in different terms when they are confronted with the subject 'software architecture'. The reason for this is that every group of stakeholders has certain concerns in the system. These concerns, or a subgroup of them, have something in common: the 'stake' of this stakeholder. We identify the following possible stakes: • Profit: the business-related aspect of the project • Development: the short-term technical aspect of the project • Support/customization: the long-term technical aspect of the project • Usage: after all, that's the reason we're building the system What I refer to as 'Profit stake' is mostly called 'Financial stake'. In many cases, the profit really is in terms of money, so the term 'Financial' is suitable. However, often an information system is being built for a non-profit organization or for a government. The business goals of these organizations aren't measured in terms of money. I therefore prefer the term 'profit' to the term 'financial' when referring to this stake. Table 1 lists groups of stakeholders, together with their stake and concerns in the development process of a system, and therefore in the architecture. This table is based on an analysis made by [Dolan+ 1998] and [Gacek+ 1995]. The concerns marked by (*) were not mentioned in the literature but added by me, mostly based on the analysis made in part two of this paper. 3 Stake Profit Profit Usage Development Development Support / customization Stakeholder Concerns • Effectiveness (*) • Schedule estimation • Budgeting Customer • Feasibility and risk assessment • Requirements traceability • Progress tracking • Effectiveness (*) • Schedule estimation • Budgeting (low costs, keeping people Developing employed) Organization Management • Feasibility and risk assessment • Requirements traceability • Progress tracking • Consistency with requirements and usage scenarios User • Non-functional requirements (performance, reliability etc) • Accommodate future requirements • Support of trade-off analysis • Requirements traceability Architect • Completeness, consistency of architecture • Context definition (*) • Sufficient detail for design • Reference for selecting/assembling components Developer • Maintain compatibility with existing systems • Maintain compatibility with existing systems • Guidance on software modification Maintainer • Guidance on architecture evolution • Non-functional requirements (performance, reliability etc) (*) Table 1: Stakeholders and Their Concerns Table 1 attempts to define six groups of stakeholders, so that any possible stakeholder will fall into one of the groups. Any of the groups of stakeholders can be split into smaller groups. An example is dividing the groups of users into users who provide input to the system and users who receive output from it. The last category can be split into users who receive output needed to carry out work, and users who receive output needed for management tasks. As mentioned before, the table identifies four different categories of stakeholders. Before getting into the details of these stakeholders, two remarks must be made: 4 The 'Profit' stake is divided into two subgroups of stakeholders: the customer and the developing organization management. Sometimes both are the same organization. Mostly, however, a customer approaches an IT-organization which then builds an information system for him. In most cases this customer is a business, which means its main goals are financial. The developing organization is also a business with financial goals. These financial goals are of course different. The management of the developing organization has other goals and targets than the customer. It also has a different stake than the developers working for it. I will return to this point when talking about the stakeholders. • Also the 'Development' stake is divided into two subgroups of stakeholders: the architect and the developer. One could argue saying that the architect must also represent the concerns of the developer, but this has no practical impact on the table. Note that throughout this paper it is assumed that the architect and the developer both belong to the same organization (called “the developing organization”). • A more detailed explanation of some of the concerns will be given now. Where two stakeholders have the same concern, this concern will be discussed once only. The customer The customer is typically a businessman. As such, he mostly thinks in terms of money, time, business strategy and risk assessment. Businessmen and computer scientists often find it hard to communicate. They don't fully understand each other, since their orientation is different. Therefore the architect has to take special care of this stakeholder. Most of the concerns related to this stakeholder were mentioned in the literature ([Dolan+ 1998] and [Gacek+ 1995]). However, an analysis of the type of concerns revealed to me that an important concern of a business is not mentioned in the literature. This concern is effectiveness, the extent to which the software-based information system (or architecture, or anything else) contributes to achieving the business goals. I believe this is the most important concern of a stakeholder with a profit stake. Whereas scheduling, budgeting, risk assessment etc all are important for businessmen, the reason to start building the information system is the business goals which must be achieved and the business demands which must be met. If an architecture does not contribute to achieving the business goals of a business, it is useless for a business. Moreover: it becomes a burden, since it costs money and might disturb when trying to achieve the business goals. One of the concerns of the customer is feasibility. [Laudon+ 2000] identify three areas of feasibility that must be addressed: • Technical feasibility: whether the proposed solution can be implemented with the available hardware, software, and technical resources. • Economic feasibility: whether the benefits of the proposed solution outweigh the costs. This is similar to the effectiveness mentioned before. [Laudon+ 2000] do not mention the term effectiveness. The difference between these two terms could be that economic feasibility refers to the question whether the suggested information system brings a financial benefit (or a loss?), and effectiveness refers to the question 'how does the solution help an organization achieve its business goals?". 'Effectiveness' then has a broader meaning than economic feasibility. 5 • Operational feasibility: whether the proposed solution is desirable within the existing managerial and organizational framework. Another concern of the customer is risk assessment. According to [Laudon+ 2000], a project's degree of risk depends on the project size, project structure and experience with technology. For more information on assessing the degree of risk, see [Laudon+ 2000]. Requirements traceability is another concern of this stakeholder, which can be interpreted in various ways. When using this term, I refer to an explanation in the architecture document, of how the architecture meets the requirements. The decisions taken when building the architecture must be linked to the requirements due to which these decisions were taken. It must be shown that the requirements are met by taking these decisions, and that the architecture therefore meets the requirements. When talking about requirements traceability as a concern of a specific stakeholder, the architecture should meet this stakeholder's requirements. But when we talk about requirements traceability as a concern of the architect, we refer not only to supporting the architect's requirements but also to supporting the requirements of all other stakeholders. The reason for this is given in section 1 of this paper: The architect must prove to the stakeholders that the architecture he builds will meet their demands. This refers to all stakeholders. The Developing Organization Management The concerns of the developing organization management are similar to those of the customer, but on a different level. The customer is interested in the ways the architecture and the information system contribute to his business, and the developing organization management is concerned with how the project (of developing an architecture and an information system) contributes to its business. An example is effectiveness: the effectiveness that concerns the developing organization management and the effectiveness that concerns the customer refer to different organizations, and therefore have different criteria. Consider a situation in which an ITorganization builds an information system for a bank. The bank is the customer. The criteria for effectiveness at the bank's side are related to how well the information system serves the bank's needs and demands. The criteria for effectiveness at the ITorganization's side are related to how much money it earns from this project and whether this project would add to the organization's prestige within the IT-world. Although the criteria of both organizations are related (if the bank is not satisfied with the information system, the prestige of the IT-organization will be damaged), they are still different. For this reason the customer and the developing organization management are two different categories of stakeholders, with the same stake (profit) and concerns which are basically the same but have different criteria. It is important to notice that the developers and the architects of the developing organization have a different stake than the management of that organization. Whereas the management is driven by profit (business related) matters, the developers/architects have a more limited view on the activities of their own organization. They are primarily interested in their personal career, and only afterwards are they interested in the financial success of their organization. The developing organization has a profit stake, but the 6 architects and the developers do not. The User The users’ interest in the architecture typically is ensuring that the final product will meet their functional and non-functional requirements. They also are interested in the impact that future requirements might have on the system. The Architect If we regard the architect as a black box, we'd say that his input is a set of requirements, and his output is an architecture which takes these requirements into consideration and is also complete and consistent. If we look into the black box, we'll see that a trade-off must be done, since the concerns of the various stakeholders - and also their requirements - are conflicting. An example is the conflict between high reliability and low costs. Architects must be able to explain which requirements got a high priority and which requirements got a lower one. The trade-off must be done with the stakeholders and must be documented in the architecture. This is a main concern of the architect. The following concern is what I refer to as context definition. It can be seen as setting a border to your system. An important issue in developing an architecture is not only what we demand of the system, but also what we do not necessarily demand of it. Deciding that your system does not have to communicate with a different system means that the architecture might not have to support the services such a communication might require. Deciding not to require such a communication is setting a limit to your domain. This is one type of what I call context definition. A different type of context definition is defining the required interactions of your system with other systems. By requiring that your system communicate with a different system, you define a 'border' for your system. What I call here 'context definition' is not mentioned in the literature ([Dolan+ 1998] and [Gacek+ 1995]) as one of the architect's concerns. I added it, based on an analysis I have made for part two of this paper. The Developer Developers typically use the architecture as a reference for developing the system and/or assembling system components. These will therefore be their main concerns. The Maintainer The maintainers are mostly concerned with how easy it will be to change the system in the future. Such a change can be initiated by new/different user requirements, business requirements, environment requirements (such as a new currency) and more. Future changes must not violate the architecture, and this is a matter the architecture has to support. Other non functional requirements are also a concern of maintainers, because if these requirements are not met, the user will complain to the maintainers. Also this concern was not discussed in the above mentioned literature. 7 3.2. Concerns and Requirements [Sommerville 2001] defines two sorts of requirements: user requirements and system requirements. He further splits system requirements into functional requirements, nonfunctional requirements and domain requirements. The latter are requirements that originate in the application domain. They may be either functional or non-functional. Let us now have a look at these types of requirements and try to match them with the types of stakeholders’ concerns. The customer, having a profit stake, has the following concerns: effectiveness, schedule estimation, budgeting, feasibility and risk assessment, requirements traceability and progress tracking. None matches any of the criteria given by [Sommerville 2001]. The concerns of the developing organization management are very similar to those of the customer. As such, they do not match [Sommerville 2001]'s criteria either. The user, having a usage stake, has the following concerns: consistency with requirements and usage scenarios, non-functional requirements (performance, reliability etc) and accommodating future requirements. These requirements actually sum up all the types of requirements that [Sommerville 2001] lists. The architect, having a development stake, has the following concerns: context definition, requirements traceability, support of trade-off analysis, completeness and consistency of architecture. Completeness and consistency can be placed in [Sommerville 2001]'s scheme of (non-functional) requirements. Other concerns of the architect do not match [Sommerville 2001]'s criteria. The developer, also having a development stake, has the following concerns: sufficient detail for design, reference for selecting/assembling components and maintaining compatibility with existing systems. Compatibility fits into the definition of external (non-functional) requirements, but other concerns do not match any of the definitions given by [Sommerville 2001]. The maintainer, having a support/customization stake, has the following concerns: maintaining compatibility with existing systems, guidance on software modification and guidance on architecture evolution. Once again, compatibility and modifiability fit into the scheme (non-functional product requirements). The other non functional requirements also fit into the given scheme. The conclusion of the attempt to match the concerns with the types of requirements is that many concerns of various stakeholders are ignored when discussing the subject of requirements on the level of Requirements Engineering. The concerns of the user are being dealt with, and a subset of the technical concerns of other stakeholders as well. However the profit (mostly financial) concerns do not get their share. 8 Part Two: A Case Study - BAC 4. Background Information This part of the paper presents a case study of a specific architecture. It is an architecture for the 'Aangifte Uitvoer' system ('Export Declaration'), developed by the IT organ of the Dutch Tax Authority (BAC, Belastingdienst Automatiseringscentrum). The goal of the 'Aangifte Uitvoer' system is supporting the activity (business process) of exporting goods outside the tax area of the EU. The architecture itself will not be presented here, since it is not the subject of this paper. It can be found in [BAC1] and [BAC2]. This paper only discusses whether and how the theory given in part one of the paper can be traced in the system's architecture. The goal of my analysis of the 'Aangifte Uitvoer' system was to identify stakeholders and concerns in the architecture, and thereby: 1. understand which stakeholders were identified - whether explicitly or implicitly - by the architects, and which were ignored 2. make some statements about important concerns The analysis consisted of the following steps: 1. carefully reading the architecture documents, and marking next to every paragraph to which (one or more) stakeholders it is relevant 2. comparing the results of step 1 with Table 1 3. analyzing the results of steps 1 and 2 and drawing conclusions 5. Findings The results of step one of the analysis are given in Table 2 (for the document [BAC1]) and in Table 3 (for the document [BAC2]). The following abbreviations are being used in these tables (abbreviation, stakeholder) : • PC - customer • PD - Developing Organization Management • U - User • DA - Architect • DD - Developer • S - Maintainer The following tables make a distinction between implicit and explicit relevancy of a paragraph to a specific stakeholder. In some of the cases it was quite obvious from the text that a specific stakeholder is the intended reader of this paragraph (explicit relevancy). In other cases, it looks like information is mentioned as if it were relevant to a group of stakeholders (explicit relevancy), but actually it is also relevant for other stakeholders than this group (implicit relevancy). Implicit relevancy is marked as (i) in the tables. If this notation is not used, the relevancy is explicit. These tables correspond to the earlier mentioned step 1 of the analysis. 9 Paragraph Mainly relevant for... 1 2 3.1 3.2 3.3 4.1 4.2 4.3 5.1 5.2 Appendix A DA, DD DA, U DA, PC DA DA, DD, S DA, DD DA, DD, S DA, DD DA, DD DA, DD DA, DD Also relevant for... DD, S(i) DD U(i), PC(i) PC(i) - Table 2: Stakeholders in [BAC1] for... 1 2.1 2.2 2.3 2.4 2.5.1 2.5.2 2.6.1 2.6.2 3.1 3.2.1 3.2.2 3.2.3 3.2.4 Paragraph Mainly relevant Also relevant 3.2.5 3.2.6 4 PC, DA, S DA, DD, U(i) DA, S, U DA, DD, PC(i) DA U, DA, DD DD, U DA, DD, U DA, DD, U DA, DD, S DA, DD DA, DD, S DA, DD DA, DD, U(i), PC(i) DA, DD DA DA, PC for... DD, PC(i) U(i), S DD, U, S S, PC(i) PC(i), U(i) PC(i), S S, U S(i) - Table 3: Stakeholders in [BAC2] The following points can be concluded from the tables: • A first glance at both tables shows immediately that both documents have a very strong orientation for the 'Development' stake. All parts of both documents have a main relevance to either the architect, or the developer, or both. • A more focused look at the tables shows that [BAC1] is more technical than [BAC2]. Whereas [BAC1] is almost only relevant for stakeholders with a development stake, [BAC2] also has many paragraphs which other stakeholders will find very relevant. • No paragraph is relevant for the developing organization management. • If we regard only explicit relevancy, we can see that the customer is considered to be relevant in only three places in the documents. For fairness I have to emphasize that the classification of 'explicit' and 'implicit' might not be completely correct. The classification is based on how I understand - based on the architecture documents whether the architect aims the text at a specific stakeholder or not. I am aware of the fact that in several cases I might have misinterpreted the architect's purpose. All these issues have to do with the various stakeholders involved. However, some statements can be made about the concerns of the stakeholders as well: • Customer 1. As stated before, I consider effectiveness to be the most important concern of the customer. With regard to this concern, the documents state several times that the system is to support a business process, which is defined in the information plan of the Dutch tax authority. 2. Regarding the concern of requirements traceability, various requirements and quantifiers (such as the number of messages per day) are mentioned, but in order 10 to find all the requirements of the customer one should read the whole documents and collect the various requirements from the different paragraphs. Furthermore, the architecture does not specify how it can handle these quantified requirements. This doesn't suggest of course that the architecture does not meet the quantified requirements. It means that statements of the form "by doing... this requirement is promised to be met" are missing. 3. The following concerns of the customer were not referred to at all in the architecture documents: schedule estimation, budgeting, feasibility and risk assessment and Progress tracking. • Developing Organization Management: this stakeholder was not handled in the documents. • User 1. Consistency with requirements and usage scenarios is a concern that can be traced very well in the documents. The best example is paragraph 2.5 of [BAC2], where use cases are presented and a diagram models a scenario. 2. A list of the non functional requirements of the users is given in paragraph 2.3 of [BAC2]. The list is very short, and it is very unlikely that the requirements mentioned in this paragraph sum up all of the users' non functional requirements. 3. The concern of accommodating future user requirements was not handled. • Architect 1. The architecture documents refer explicitly to a subject called 'definition' ("afbakening", in Dutch, see paragraph 2.2 of [BAC2]), where the limits of a "universe of discourse" are given. A further search has shown that the same concern is given more attention implicitly. This concern was given the name 'context definition' in the table of stakeholders and concerns. 2. Requirements traceability as a concern of the architect refers to the requirements of all stakeholders. To understand how this concern was handled, the reader should continue reading this section and consider the remarks made about all of the stakeholders. 3. Documenting trade-off with regard to the different requirements is a very important issue in a software architecture. This issue was not handled explicitly in the architecture documents. Paragraph 3.1 of [BAC1] and paragraph 2.3 of [BAC2] state that by using the KEM model, the quality criteria requested by various stakeholders can be determined. KEM refers to the international standard ISO-9126, which is a standard for product evaluation.. However, no information is provided on how the trade-off was done. ISO-9126 doesn’t provide a way to do trade-off either. 4. Although the architecture 'seems' complete, no explicit effort was made to prove its completeness. Neither did I find consistency guaranteed. • Developer 11 1. Detail for design is given throughout both documents. This is the developer's concern most often referred to. However, I lack information and experience to determine whether enough details are given. 2. Almost the same counts for the concerns of references for selecting and assembling components and maintaining compatibility with existing systems. The only difference between these concerns and the detail for design is that detail for design got a lot more attention. • Maintainer 1. With regard to the concern of maintaining compatibility with existing systems, the same counts as mentioned for the developer. 2. On several places in the architecture documents references were made to future software modifications. These references were, however, not ordered, and they do not provide enough details. 3. The concern of architecture evolution was not handled in the documents. Part Three: Conclusions 6. Conclusions Based on the literature research, my own analysis of the literature and the case study, I can draw conclusions with regard to the theory part as well as to the case study. I'll start with the case study, since it has implications also on the theory part. 6.1 Conclusions Regarding the Case Study Following are the conclusions about the case study: 1. The architecture documents concentrate on the technical aspect of the project (related to the architect, the developer and the maintainer) and give a much lower priority to the non technical aspect of it. It is the architect's task to make sure his architecture supports all of the stakeholders and their concerns. Often however, a lot of attention is given to one stakeholder, on the expense of another. Also a technically oriented architect has to make sure non technically oriented stakeholders are represented well in the architecture process. This conclusion can be refined: 1. Most of the concerns of the customer did not get their share in the documents. For more information about this point, see the conclusions of the theory part. 2. The developing organization management was not recognized as a relevant stakeholder for the architecture documents. For more information about this point, see the conclusions of the theory part. 3. Based on the findings relevant to the users (see Findings) the conclusion can be drawn that probably the users weren’t involved enough in identifying the requirements for the architecture. This process probably was not users-centric. 2. The architecture provides no information about a trade-off between conflicting requirements. In this respect the architecture states that a profile has been made by 12 3. 4. 5. 6. using the KEM model (ISO-9126). However, the ISO-9126 standard doesn’t support any trade-off. Completeness and consistency are not guaranteed by the architecture. This does not mean that the architecture is not consistent or complete. It means that those who want to know whether the architecture is complete and consistent, must know themselves how to conclude or contradict it from the architecture documents. Completeness and consistency were not proved explicitly in the documents. Conclusions 1, 2 and 3 lead to another conclusion: the architect mostly tried to fulfill the technical aspect of his role; his role as a mediator between the technically oriented stakeholders and the non technically oriented stakeholders received a lower priority. This conclusion is based on the assumption that the architecture does not include a special document which I haven't seen and is intended for the non technically oriented stakeholders. This conclusion could imply that, in the eye of the architect, the importance of the following is not high: 1. the non technically oriented stakeholders are part of the intended group of readers of the architecture documents. 2. the architecture is also targeted at decision makers (managers). In general, managers must be able to quickly locate the bottom lines and the information required for decision making. A manager won't try to prove completeness and consistency by himself. If the architect cannot convince managers that his architecture is complete and consistent, the managers should not let the architecture be implemented. The concern of architecture evolution wasn’t handled in the architecture documents, and the concern of software modification wasn’t handled well. The architecture only concentrates on the system that is about to be built now, and not on how this system (and therefore the architecture) may change and grow in the future. With regard to the structure of the documents: if a specific stakeholder is interested only in the information relevant for him, he will find it hard to find. In order to find the points relevant to a specific stakeholder, one has to read the whole architecture and search for the relevant information in the various parts of the documents. With respect to the case study, the following remark must be made: Operating in a governmental environment, BAC might be subject to different 'business rules' than many other IT organizations. As a result, the communication and interaction between BAC and its clients might not be the same as they are between most of the ITorganizations and their clients. This could be a partial explanation for the fact that the architecture is mostly technically oriented. 6.2 Conclusions Regarding the Theory Conclusions regarding the theory part can be divided in several groups. General conclusions: 1. A main conclusion is that not enough research was done on the field of identifying stakeholders and their concerns. 2. As stated before, by trying to match the concerns with the types of requirements, we can conclude that concerns of various stakeholders are ignored when discussing the 13 subject of requirements on the level of Requirements Engineering. The concerns of the user are being dealt with, and a subset of the technical concerns as well. The profit (mostly financial) concerns do not get their share. I believe this can be explained by the following reasons: o The immaturity of this (young) discipline (Requirements Engineering specifically, and IT generally) o Those who deal with this discipline are computer scientists. As such, they mainly see their own needs, and not the needs of people from other disciplines. The way to cope with this problem is to make information system development (with all aspects of it, among which software architecture), a multidisciplinary discipline, in which people from various fields work together to achieve everybody's goals. Conclusions regarding stakeholders: 1. A main conclusion of the case-related part of this paper was that the non technically oriented stakeholders did not get enough attention. These stakeholders are the customer, the developing organization management and the users. In my view, they are to be handled differently: o One can come with very good arguments why the customer is the most important stakeholder. After all, he pays for the whole thing. In any case, he is a very important one. He must get a lot of attention in the architecture process. The architect must be aware of the customer's concerns and handle them all properly. o The developing organization management is a problematic stakeholder. If the architecture document pays explicit attention to this stakeholder, the customer might think that he gets second priority. I therefore think that architecture documents must have no explicit reference to this stakeholder. Instead, the architect must write - next to the architecture document(s) - another document, intended only for this stakeholder. In this document the architect should convince his own managers, that all their concerns are met. o The users are a major stakeholders group. Experience in software engineering has shown that users must be an integral part of the development team in order to prevent a situation in which a system is completed but it doesn't satisfy the users’ needs. Users must be addressed directly by the architecture. Conclusions regarding concerns: 1. I find that research that was done about stakeholders and concerns fails to identify effectiveness as the most important concern of a stakeholder with a profit stake. However, a good question is to which degree the effectiveness of the architecture must be dealt with in an architecture document, since the architect probably cannot assess it as well as business-oriented managers can. This question remains open. 2. Context definition, a concern of the architect, was identified and handled explicitly by the architecture of the case study. This concern wasn’t identified in the existing literature, but seems to be basic, and was therefore added to the table of concerns. 3. Support of trade-off analysis is a concern of the architect, but is important for all of the stakeholders. A good trade-off analysis is absolutely required in order to gain the confidence of the stakeholders. It must therefore be part of an architecture. 14 7. Further Research Based on the conclusions, a suggestion can be made for further research on this subject. Further research can be done in several directions: • Continuing the research of identifying stakeholders and their concerns. • Identifying conflicts between concerns and providing a tool to make a trade-off analysis. Note that such an analysis cannot be put into an algorithm; the trade-off shall be different in every architecture. But maybe a framework can be developed for trade-off, valid for groups of similar systems, such as administration systems, systems for governmental organizations etc. • Building a framework for writing an architecture document, in which the various stakeholders and their concerns are recognized and supported. If an architect then sticks to this framework when writing his architecture document, the document is guaranteed to support the various stakeholders and concerns. When developing such a framework, special care must be taken to avoid a situation in which the framework is too much of a pattern, which the architect then simply has to fill in. The framework has to provide the architect with guidelines. It must not give him a 'pool' of statements out of which he should choose a subset. This is not possible, since writing an architecture document is not a programmable matter. When developing such a framework, evaluation techniques must be considered as well, in order to guarantee a high quality architecture. 8. Acknowledgements I would like to thank my instructors, Hans van Vliet and Hans de Bruin for their assistance in writing this paper. I am very grateful to the BAC, Belastingdienst Automatiseringscentrum, for enabling me to do this survey. 9. References 1. [BAC1] - Aangifte Uitvoer, applicatiearchitectuur detailniveau, versie 0.2 concept RV, dated November 29th 2000. 2. [BAC2] - Release 3 Aangifte Uitvoer, systeemconcept en applicatiearchitectuur niveau-0, versie 1.4 definitief, dated December 4th 2000. 3. [Bass+ 1998] - Len bass, Paul Clements and Rick Kazman, Software Architecture in Practice, 1998, ISBN 0-201-19930-0. 4. [Bennett 1997] - Douglas W. Bennett; Designing Hard Software : the essential tasks; Manning Publications Co.; Greenwich Connecticut; 1997; ISBN 188477721-X. 5. [Clements+ 1995] - Paul C. Clements, Len Bass, Rick Kazman and Gregory Abowd; Predicting Software Quality by Architecture-Level Evaluation; Fifth International Conference on Software Quality; Austin, Texas; 1995. Available from: http://www.sei.cmu.edu/architecture/projects.html 6. [Dolan+ 1998] - Tom Dolan, Ruud Weterings and Prof. J.C. Wortmann, Stakeholders in Software-System Family Architectures; proceedings of the Second International ESPRIT ARES Workshop, Las Palmas de Gran Canaria, Spain, February 26-27 1998, published in Development and Evolution of Software 15 Architecture for Product Families, edited by Frank van der Linden, ISBN 3-54064916-6, ISSN 0302-9743. 7. [Gacek+ 1995] - Cristina Gacek, Ahmed Abd-Allah, Bradford Clark, Barry Boehm; "On the Definition of Software System Architecture"; ICSE 17 software Architecture Workshop; April 1995. 8. [Kazman+ 1994] - R. Kazman, G. Abowd, L. Bass, M. Webb; SAAM: A Method for Analyzing the Properties of Software Architectures, in Proceedings of the 16th International Conference on Software Engineering, (Sorrento, Italy), May 1994, pp. 81-90. Available from: http://www.cgl.uwaterloo.ca/~rnkazman/ 9. [Laudon+ 2000] - Kenneth C. Laudon and Jane P. Laudon, Management Information Systems: Organization and Technology In The Networked Enterprise, sixth edition, ISBN 0-13-015682-5. 10. [Shaw+ 1996] - Mary Shaw and David Garlan, Software Architecture: Perspectives on an Emerging Discipline; 1996, ISBN 0-13-182957-2. 11. [Sommerville 2001] - Ian Sommerville, Software Engineering, 6th Edition, 2001, ISBN 0-201-39815-X. 16