Comments
Description
Transcript
IBM WebSphere Platform User Roles
IBM WebSphere Platform User Roles Birgit Schmidt-Wesche IBM WebSphere Platform User Centered Design Architect [email protected] Note: Before using this information and the product it supports, read the information in “Notices” on page 41. © Copyright International Business Machines Corporation 2003. All rights reserved. Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. ii Table of Contents Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv Chapter 1. Introducing the WebSphere Platform user roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Defining the scope of the WebSphere Platform user roles . . . . . . . . . . . . . . . 1 The benefits of working with user roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Chapter 2. Defining the WebSphere Platform user roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 What is a user role? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The defining elements of the user roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The distinguishing characteristics of the user roles . . . . . . . . . . . . . . . . . . . . Examining the definition of a user role . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 6 6 7 Chapter 3. WebSphere Platform technical user roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Organizing and describing the user roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Business Analyst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Product Installer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Solution Architect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Security Architect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Application Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 User Interface Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Information Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Internal Tools Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Solution Integrator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Solution Tester . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Solution Deployer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 System Administrator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Secondary user roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Appendix A. Other perspectives on the concept of user roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Actors in software engineering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Goals and personas in interaction software design . . . . . . . . . . . . . . . . . . . . 42 Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 iii Abstract The purpose of software is to improve the life of users by facilitating the tasks that they perform. Therefore, to build successful software, it is essential to understand our users and their tasks and focus on them throughout the development process. IBM® WebSphere® lead architects and human factors specialists met with customers, and together they defined a set of 12 technical user roles: ! ! ! ! ! ! ! ! ! ! ! ! Business Analyst Product Installer Solution Architect Security Architect Application Developer User Interface Developer Information Developer Internal Tools Developer Solution Integrator Solution Tester Solution Deployer Systems Administrator These user roles best characterize the user roles found in solution development that WebSphere Platform products support. Understanding these user roles benefits both IBM development teams and customers. IBM development teams can design and implement software that supports the tasks of these specific users. Customers can plan and deploy new solutions based on the users and tasks involved in solution development. Both teams can use the set of user roles as a common basis for communicating requirements or potential design changes. This paper describes each user role with their essential set of tasks, their associated skills, and their most closely related roles. It also discusses how the user roles were defined, and finally, it presents a set of secondary roles that are not directly targeted by IBM WebSphere Platform products, but that are nevertheless important to the overall solution development process. Who should read this white paper? This paper is intended for the following people: ! WebSphere Platform development team members, including architects, lead developers, human factors specialists, information developers, and management ! Customers’ development team members, including executives, business analysts, solution architects, application developers, user interface developers, and information developers iv Chapter 1. Introducing the WebSphere Platform user roles This paper introduces the set of WebSphere Platform technical user roles that are most typically encountered in developing a business solution using WebSphere products. These user roles were developed based on the insights gained from frequent visits to WebSphere customers to discuss how they organize their solution development and who is involved in the process. After introducing the scope and benefits of the user roles in this chapter, Chapter 2 defines the key elements and distinguishing characteristics of the WebSphere Platform user roles, as well as the different types of user roles. Then, Chapter 3 defines each of the WebSphere Platform technical user roles in detail, including a typical use case for each role. Readers who are more familiar with user roles might want to skip directly to Chapter 3. Defining the scope of the WebSphere Platform user roles The initial set of relevant user roles was quite large, with only minute differences between the roles, which made it difficult to map the user roles to a particular development environment. Customers continuously reviewed the consolidated and reorganized set of user roles using surveys, teleconferences, and interviews during customer visits. After all these reviews, the final 12 WebSphere Platform technical user roles described in this paper best represent the current environment at the WebSphere Platform customer sites. The current set of WebSphere Platform user roles is based predominantly on solution development in large enterprises. In smaller companies we may see the same type of user roles or a subset of them, including the merging of user roles. Further customer contacts will provide more profound evidence for the user roles encountered in small and medium size businesses. WebSphere Platform products support the development of business solutions by providing the appropriate infrastructure software. Accordingly, the set of user roles for the WebSphere Platform products consists of technical user roles. The set of user roles does not extend to the business user roles of a business solution. The WebSphere Platform products rely heavily upon Data Management, Tivoli®, and Lotus® products to provide data storage, solution management, and collaboration within the solution development environment. To ensure that the WebSphere Platform technical user roles aligned with these other product areas, these user roles were reviewed for their similarities and differences to these other products. 1 Leveraging Know-how Leveraging Reach Reach Business Business & Information & User User Process Process Experience Experience Management Management WebSphere Platform Foundation Foundation and and Tools Tools Managing and Securing Figure 1. Scope of user roles: The WebSphere Platform The benefits of working with user roles The set of typical user tasks are the core element of each user role. The better IBM development understands these user tasks, the better the WebSphere Platform products can support our users. By organizing the typical tasks into a common set of user roles, IBM development teams and customers can more readily share experiences throughout the solution development process. For users, the user roles provide a vehicle for communicating their requirements and specific business needs for certain tasks and user roles. For IBM development teams, the user roles aid in understanding cross-product tasks encountered in solution development and aid in mapping requirements from multiple products into their own products. For customer enterprises that are planning to develop a new business solution, the set of user roles can help customers understand the extent of tasks involved in developing business solutions. Having a complete understanding of the user roles and their tasks, customers can effectively plan workloads, resources, and staff for their future e-business development projects. 2 The WebSphere Platform technical user roles are intended to be valid across arbitrary solution development environments. Because this list of user roles is a generic set of user roles, they do not always map directly to a given business solution involving IBM WebSphere Platform products. In an actual development environment, these user roles will be modified and used in one of the following ways: ! ! ! Directly applying the generic set of user roles Creating a more comprehensive, higher-level set of user roles from the generic set of user roles Creating more specific, detailed user roles from the generic set of user roles Thus, for specific solution development environments, the number of applied user roles can vary. A difference in type, however, like for example the inclusion of a Database Administrator, suggests leaving the scope of solution infrastructure and entering the realm of data management. Data Management products have their own set of generic user roles, which is adjoining to but distinct from the set of WebSphere Platform user roles. 3 Chapter 2. Defining the WebSphere Platform user roles User roles enable both IBM development teams and customer development teams to design and implement products that support their business needs. User roles come in many shapes and sizes, but are always clearly distinguished by their tasks, in the case of the WebSphere Platform by the tasks of a solution development process. The 12 key user roles in solution development environments of WebSphere Platform product customers are as follows: ! ! ! ! ! ! ! ! ! ! ! ! Business Analyst Product Installer Solution Architect Security Architect Application Developer User Interface Developer Information Developer Internal Tools Developer Solution Integrator Solution Tester Solution Deployer Systems Administrator In addition to the primary roles listed above, the following set of secondary user roles (which is not an exhaustive list) are indirectly or partially involved in the solution development process: ! ! ! ! ! ! ! ! CTO and CIO and CEO Project Manager Enterprise Information System Developer Translator System Operator Network Administrator Database Administrator Customer Support Representative Before describing each of these primary and secondary user roles in Chapter 3, this chapter explains how the IBM WebSphere Platform development team defines and distinguishes user roles. What is a user role? A user role is not a real person. ‘A user role is an abstract collection of needs, interests, expectations, behaviors, and responsibilities characterizing a relationship between a class or kind of user and a system’ [Constantine and Lockwood, 1998]. When users assume a particular relationship to a system at a given point during the development process, they assume a certain user role. This relationship can be quite diverse. During a solution’s life cycle, one person might 4 perform multiple roles, even during the course of one day. Likewise, one role might be performed by several people, such as instead of one person acting in the role of Product Installer, an entire installation department is required. (Throughout this paper, the names of user roles are capitalized.) From a WebSphere Platform perspective, user roles are centered around user tasks. Further attributes of the user roles pertain to skills, in terms of particular knowledge of a business solution, and specify the user roles that are most closely related to them. From other perspectives, user roles might be associated with goals, which then translate into tasks. For more information about actors, goals, and personas, see Appendix A. Business user roles versus technical user roles The two types of user roles are business user roles and technical user roles. Business user roles refer to the tasks of the end-users of a particular business solution. Technical user roles refer to the tasks of the people that create that business solution. WebSphere Platform products support these solution developers, and thus the WebSphere Platform set of user roles consists of technical user roles. For example, consider a financial services company that strives to provide a consistent customer treatment across all of its channels, which include the World Wide Web, the telephone, and personal appointments. In this company, the two business user roles are Financial Services Customer and Financial Services Advisor, who might be engaging in a dialogue about a private loan. Within this same company, the employees who develop and maintain the financial applications that support this business assume the technical user roles of Application Developer or System Administrator, among other technical user roles like Solution Architects, Security Architects, or Solution Deployers. Or, consider an insurance company where Claims Handlers work with their customers, the Claims Submitters, where Claims Handlers and Claims Submitters represent the business user roles. The technical user roles involved in developing the insurance claim application are likely to be the same as in the financial services company. These two sample companies illustrate a key difference between business user roles and technical user roles. While the technical user roles are similar across solution development environments, the business user roles are highly specific to the particular business environment. In addition to the technical staff involved in creating a business solution there are the company’s non-technical staff, such as project managers and executives. They, too, are considered to be business users. Also, because of their vital role in overall solution development, they are listed as secondary roles (see the end of Chapter 3 for more information about secondary user roles). 5 Roles in large versus small and medium size businesses The size of a business affects the definition of user roles. The WebSphere Platform technical user roles are based on solution development within large enterprises. The solution developers at the large enterprises adopted many of the WebSphere Platform technical user roles. In smaller companies, the same type of roles, or a subset of them, might be present. However, the smaller the company, the more likely that the user roles will be merged. This does not necessarily mean that fewer and fewer people will have to perform more and more tasks. Instead, it might mean that in smaller companies the scope of the tasks might not be as extensive as in larger companies and some of the tasks might not be relevant. Accordingly, a subset of tasks from one user role might be merged with similar subsets of tasks from other user roles to form a more appropriate user role in the context of smaller companies. The type of user roles is also determined by the type of company. For example, independent software vendors are likely to have an elaborate set of Application Developer user roles, while they might not have a separate System Administrator user role. Instead, the few necessary tasks in that user role would be associated with the Application Developer user roles. Or, perhaps those tasks would not be associated with a user role at all, but be automated and covered by the system. The defining elements of the user roles Based on numerous discussions with customers who use the WebSphere Platform products in their solution development, the WebSphere Platform user roles contain the following three key elements: ! ! ! Typical tasks Skills (in terms of expected solution competency) Most closely related roles Because the user tasks are the core element of a user role, each user task is assigned to only one user role. Because of this association, the user roles more adequately capture the variety of user roles and more accurately differentiate one user role from another user role. The skills are not associated with a certain level of education, but with the knowledge required during particular development stages of a business solution. Finally, because people do not work in isolation, but work closely in teams, each user role also lists the most closely related roles to create a network of user roles upon which to rely. 6 The distinguishing characteristics of the user roles When is a user role a user role? Although it is possible to define one user role for each task, the WebSphere Platform development team did not follow this extreme definition. To reasonably limit the scope of a user role, the WebSphere Platform technical user roles adhere to the following two main criteria: 1. Each user role includes a sufficiently large set of user tasks The “sufficiently large” set of tasks is the set of tasks performed by one person as their primary responsibility. However, the same person might perform other tasks, most likely the tasks of closely related user roles. For example, because the tasks that a Samples Programmer performs overlap with those of an Application Developer, and they do not require a full-time person, the list of WebSphere Platform technical user roles only includes the Application Developer user role. 2. Each user role has direct technical involvement with the development of a business solution using IBM WebSphere Platform products. For example, the WebSphere Platform technical user roles include a Solution Deployer but do not include a Database Administrator, because that user role is addressed in the context of developing data management products, such as IBM DB2® Universal Database. Similarly, the WebSphere Platform technical user roles do not include Network Administrators or Enterprise Information System Developers, because those roles are outside the context of WebSphere Platform products. The primary set of technical user roles adhere to these two characteristics. Nevertheless, some roles excluded from the primary set of WebSphere Platform technical user roles are still tangentially important to the development of a business solution. For more information about these secondary user roles, see the end of Chapter 3. Examining the definition of a user role To fully appreciate and understand how the WebSphere Platform development team defines user roles, consider the Solution Architect user role in a large enterprise. The Solution Architect is responsible for the design of the business services to be developed and needs to continuously communicate with both an enterprise’s business representatives and its development community. The business representatives instruct the Solution Architect on the business requirements, and the developers need to understand the planned development steps. The Solution Architect user role meets the two distinguishing characteristics. First, the Solution Architect is directly involved in the solution development process, and therefore it is a primary user role. Second, the amount of tasks that the Solution Architect performs is sufficiently large 7 such that one person would predominantly act in this role. (In smaller companies, a lead Application Developer might perform a core set of these tasks.) The following list shows the set of tasks most typically associated with the Solution Architect role: ! ! ! ! ! ! ! ! ! ! Designs an enterprise or line-of-business level of a new solution, application, or function based on the specified functional and non-functional business requirements Writes application design specifications, including clear specifications of functional and non-functional requirements for the solution Modifies existing services to react to new requirements Designs the optimum IT infrastructure for a given business solution Plans system upgrades and roll out of new capabilities (applications and products) Defines expected behavior of services in terms of performance, service levels, and so on Analyzes the behavior of the IT infrastructure over periods of time to highlight any trends or variations in system performance Defines the task flows for enabling the business service Interacts with business people to understand a particular business process or business requirement Interacts with application developers to convey business requirements in technical terms In addition to these tasks, a Solution Architect needs the following skills or knowledge with respect to the intended software solution: ! ! ! ! ! Has a sufficient understanding of the business goals of the business services to be developed Understands industry patterns and approaches related to the business solution Might have special knowledge of particular aspects of the business (for example, billing, manufacturing, and so on) Has sufficient technical skills and understanding of the IT infrastructure in order to architect the mapping of business goals to technical solutions compatible with the current IT infrastructure Has the ability to communicate the requirements of a solution in terms of non-technical business aspects as well as in terms of technical development aspects Finally, a Solution Architect works closely with the people who adopt the following closely related user roles: ! ! ! Business Analyst Security Architect All main solution development & deployment roles: ! Application Developer ! User Interface Developer ! Information Developer ! Internal Tools Developer ! Solution Integrator ! Solutions Tester 8 These tasks, skills, and colleagues appear very realistic, but remember that a user role is ‘an abstraction, not a real person, not a job title, not a position, not a function. It is not even a real group of people, but rather an abstract class defined by a particular kind of relationship to the system’ [Constantine and Lockwood, 1998]. 9 Chapter 3. WebSphere Platform technical user roles This chapter describes how the user roles are organized and presents the detailed descriptions of the WebSphere Platform technical user roles, which includes their essential set of tasks, the associated skills in terms of solution competency, the closely related roles, and a typical technical use case for the user role. Organizing and describing the user roles To more fully define and refine the WebSphere Platform technical user roles, the user roles have been organized by task domain, compared to the Java™ 2 Platform, Enterprise Edition (J2EE) roles, and considered within the context of technical use cases— all of which helps organize and describe these technical user roles. Organization of user roles into task domains The WebSphere Platform technical user roles are organized into four task domains, which represent the linear (though oversimplified) order of integrating a business solution into a customer’s environment: 1. 2. 3. 4. Business analysis (including decision making) Up and running - unpack, install, configure Solution development and deployment System administration and operation The primary technical user roles are organized as follows in the task domains: 1. Business analysis ! Business Analyst 2. Up and running ! Product Installer 3. Solution development and deployment ! Solution Architect ! Security Architect ! Application Developer ! User Interface Developer ! Information Developer ! Internal Tools Developer ! Solution Integrator ! Solution Tester ! Solution Deployer 4. System administration and operation ! System Administrator 9 By organizing the user roles into task domains, the user roles are more coherent and consistent within and across each user role. For example, Solution Deployers are distinct from System Administrators in that they deploy and manage the solution, not the system or environment in which it operates. Other categorizations are possible, especially in other product areas, such as the Data Management products, which categorize their user roles into the following less linear set of task domains: operations, application programming, integration, architecture, and solutions. The task domains help to create the distinctions between the user roles, while making the descriptions of the user roles more cohesive. Because the WebSphere Platform technical user roles are mapped according to the stages of solution development, it is easy to determine if a task or a user role is missing when going from one stage to the next. The relationships between the roles The following diagram maps the 12 technical user roles across the task domains and shows the interaction and collaboration between the closely related user roles. Security Architect System Admin. Product Installer Solution Deployer Solution Architect Business Analyst Internal Tools Developer Business Analysis Up & Running Application Developer User Interface Developer Solution Tester Solution Integrator Information Developer Solution Development & Deployment Systems Administration Figure 2. Interaction and collaboration between the WebSphere Platform user roles across the task domains 10 Just because one user role interacts directly with another user role for one set of tasks, the reverse condition is not necessarily true. For example, a Business Analyst might work closely with an Application Developer in modifying dynamic business rules. However, the Application Developer will not necessarily work directly with the Business Analyst with specific development questions, but instead work through the Solution Architect, who might consult with the Business Analyst, if necessary. To understand how the user roles collaborate individually, see the related roles section in the user role descriptions. Relationship to J2EE user roles The set of WebSphere Platform user roles take into account the set of user roles provided by Sun in Java 2 Platform, Enterprise Edition (J2EE), version 1.4, [Nov. 2002]. When defining their user roles, Sun states that ‘in an actual instance, an organization may divide role functionality differently to match that organization’s application development and deployment workflow’. The following table shows how the J2EE user roles compare with the WebSphere Platform technical user roles: J2EE user role Application Component Provider Application Assembler Deployer System Administrator WebSphere Platform user role Application Developer Solution Integrator Solution Deployer System Administrator Other J2EE user roles address the systems and tools necessary for the solution development environment: ! ! ! J2EE Product Provider Tool Provider System Component Provider The IBM WebSphere product teams that provide the necessary infrastructure software for business solution development could function in these roles. Illustrating user roles with technical use cases To ensure the usefulness of the technical user roles, a technical use case has been associated with each user role definition. The technical use cases are taken from a repository of use cases designed by the WebSphere Platform product teams. These use cases help to ensure a cross-platform solution focus by identifying, architecting, and designing business scenarios that customers are implementing to run their businesses. These business scenarios are then built and tested at the solution level by simulating the various customer environments. The generic set of user roles as defined in this paper were used in developing the scenarios and use cases. 11 Three prototypical business scenarios were investigated: ! Private exchange A retail application that features supply chain exchanges providing a one-stop shopping focal point for a set of suppliers and buyers. Suppliers make their products available to the exchange. Buyers shop at the exchange, using it as a source for product information that they make available in turn to their customers. ! Mergers and acquisitions A business application that is based on the merging of two companies and the consolidation of their currently disparate customer records. In this particular case homeowners and auto insurance policy records; however, relevant industries could also be banking, telecommunications, financial services, insurance, and manufacturing. ! Customer loyalty A business application that concentrates on enabling a company to provide a consistent customer treatment over all possible channels (which include the World Wide Web, the telephone, personal appointments, and so on). It could apply to many different industries such as banking, financial services, retail, telecommunications, or insurance. The focus is on the financial and banking aspects. The teams design business use cases (involving business users), as well as technical use cases, which are associated with the set of technical user roles affected by this technical use case. A technical use case is translated into a specific test case, and testing is conducted according to user roles. 12 Business Analyst A Business Analyst is actively and fully involved in the solution development process, from designing the business aspects of a new business solution to monitoring the running solutions and checking their performance according to business needs. Business Analysts are also likely to be performing minor technical tasks, such as creating or updating the content of, for example, a Web site (posting notices or new articles, changing the configuration of a portlet, and so on). Or, the Business Analyst, in close cooperation with the person acting as the Application Developer, might define or modify dynamic business rules within an existing application. Though the majority of the Business Analyst’s tasks focus on pure business tasks, their involvement in technical tasks and their explicit interaction with the technical development community justifies that Business Analysts be classified as technical user roles along with the other solution development roles. In contrast to other members of an executive board, such as the CEO, Business Analysts are fully involved in the solution development process, and the list of tasks assigned to them is sufficiently large to justify the distinct user role of a Business Analyst. Related user roles of Business Analyst The following diagram shows the related user roles that Business Analysts are most likely to interact with in the course of a solution development life cycle and the major tasks on which they would collaborate: [Designing new solutions] Solution Architect [Validating test plans / certifying solution] Business Analyst Solution Tester [Defining / modifying dynamic business rules] Application Developer [Designing mock-up / solution UI] User Interface Developer Figure 3. Collaboration pattern of Business Analysts 13 Typical tasks and skills of Business Analyst The typical tasks and particular skills for a Business Analyst are as follows: Tasks " Advises on the current status and future " " " " " " " directions of business transactions in relation to the business goals Participates in purchasing decisions Works closely with the Solution Architect in designing new solutions Advises the development team throughout the solution development phase, writing detailed requirements or business tradeoffs for the solution Works closely with the Solution Tester to develop a plan to validate the solution after delivery and establish test scenarios If necessary, participates in the certification of sufficiently tested solutions to ensure that they meet the expected business goals and that they are ready for production In close cooperation with the Application Developer, defines or modifies dynamic business rules within an existing application Creates or updates the content of, for example, a Web site (posting notices or new articles, changing the configuration of a portlet, and so on) Skills " Is the specialist in the company's particular business domain (finance, insurance, and so on) and knows the particular business or line-of-business extremely well " Has basic technical skills to understand the specific functions of the business to be able to make and manage adjustments Technical use case example for Business Analyst The following technical use case is excerpted from the Private Exchange business scenario. It shows how the Business Analyst and the Application Developer collaborate on the design and development of a new shopping application, where a new catalog schema has to be created and the enterprise’s information system data has to be aggregated and loaded into this new catalog. The particular steps involved in this use case are as follows: User Role Business Analyst Business Analyst / Application Developer ! ! Application Developer ! 14 Use Case Step Define catalog schema Define the mapping between the catalog schema and the definitions of the enterprise information systems and the global repository Populate the catalog repository with data from the enterprise information systems and the global repository Product Installer The Product Installer user role is a critical role for getting the products and components of the solution up and running, from unpacking the files, to checking the prerequisites, to the actual installation process, and often configuring the system with default values. This phase is considered the customers’ ‘out-of-the-box experience’. The Product Installer collaborates closely with the System Administrator and the Security Architect to ensure the installation and default configuration are completed in accordance with the requirements of the enterprise’s current IT environment settings and security policies. Then, if the solution’s products need to be upgraded or migrated to new or different products, the Product Installer works closely with the Solution Deployer to install the new product or component versions within the running business solutions. Related user roles of Product Installer The following diagram shows the related user roles that Product Installers are most likely to interact with in the course of a solution development life cycle and the major tasks on which they would collaborate: [Installing security specific aspects] Product Installer Security Architect [Cooperate on product install, update & migration] System Admin. [Cooperate on solution upgrade & migration] Solution Deployer Figure 4. Collaboration pattern of Product Installers 15 Typical tasks and skills of Product Installer The typical tasks and particular skills for a Product Installer are as follows: Tasks " Checks for and installs prerequisite products " Installs required products of the solution on appropriate machines " Runs installation verification tests " Configures the products with default values " Administers the WebSphere Application Skills " Has a thorough understanding of hardware and software components and their distribution within the IT infrastructure " Is familiar with the specific installation procedures Server, such as starting and stopping it Technical use case example for Product Installer The following technical use case presents a classical set of installation tasks, in which the products need to be easily installed into a running environment, requiring minimal downtime. It is assumed that the same hardware and network is used for both the existing and the new solutions. The particular steps involved in this use case are as follows: User Role Product Installer / System Administrator Product Installer ! ! Product Installer ! Product Installer ! 16 Use Case Step Set up the admin user ID for the resources Install the products, or ensure that they are installed, in the proper order based on product prerequisites or corequisites Run a verification test or sample to ensure that the installation was successful If the installation was not successful or adversely affects other solutions, roll back to the previous installation base if this is an upgrade, or uninstall the products if this is a new installation Solution Architect The Solution Architect user role is the key role within the solution development process. Out of the set of 12 user roles defined in this paper, the Solution Architect collaborates with eight of the user roles during the development life cycle of the solution. This role is the bridge between the business experts of the enterprise and the enterprise’s development community. The design of a new solution, or the modification of an existing solution, has to adequately account for both the business and the IT infrastructure requirements. In the context of solution development, the role of Solution Architect has replaced previously known user roles like the Systems Analyst. The analysis and planning tasks formerly performed by a Systems Analysts have mostly been taken over by the Solution Architect. Related user roles of Solution Architect The following diagram shows the related user roles that Solution Architects are most likely to interact with in the course of a solution development life cycle and the major tasks on which they would collaborate: Security Architect Solution Deployer [Verify solution's deployment] [Design solution's security aspects] Solution Tester [Design solution's business aspects] Solution Architect Business Analyst [Instruct on tools to develop] Internal Tools Developer [Instruct on required interfaces] [Verify solution test environment] [Instruct on required solution components] Application Developer User Interface Developer [Verify appropriate solution integration] Solution Integrator [Instruct on required interfaces] Information Developer Figure 5. Collaboration pattern of Solution Architects 17 Typical tasks and skills of Solution Architect The typical tasks and particular skills for a Solution Architect are as follows: Tasks Skills " Designs a new solution, application, or " Has an understanding of industry patterns and function at the enterprise or line-of-business level, based on the specified functional and non-functional business requirements " Defines the interface of new business services approaches related to the solution " Has a sufficient understanding of the business goals of the business services to be developed " Might have special knowledge of particular aspects of the business (for example, billing, accounts payable, manufacturing, and so on) " Has a sufficient understanding of the IT infrastructure in order to architect the mapping of business goals to technical solutions compatible with current IT infrastructure " Writes application design specifications, " " " " " " " " including clear specifications of functional and non-functional requirements for the solution Modifies existing services to react to new requirements Designs the optimum IT infrastructure for a given business solution Plans system upgrades and rollouts of new capabilities (applications and products) Defines expected behaviors of service in terms of performance, service levels, and so on Analyzes the behavior of the IT infrastructure over periods of time to highlight any trends or variations in system performance Defines the task flows for enabling the business service Interacts with business people to understand a particular business process or business requirement Interacts with application developers to convey business requirements in technical terms 18 Technical use case example for Solution Architect The following use case shows how the Solution Architect translates the business scenarios into an application architecture. The Solution Architect creates a document that describes the business problem being solved, any of the constraints and issues that affect the architecture, and a high-level, graphical design of the solution. The particular steps involved in this use case are as follows: User Role Solution Architect ! Solution Architect ! Solution Architect ! 19 Use Case Step Describe the business problem, the existing IT infrastructure, and any corporate or cultural aspects that might affect the solution, such as the performance, reliability, and extensibility requirements Use a graphical tool (for example, Freelance Graphics, CorelDraw, Visio, or Rational Rose) to describe the business processes in a way that they can be translated (automatically, if possible) into IT resources Ensure the appropriate mapping from the customers’ development tools into the relevant development repositories Security Architect Because business solutions usually are comprised of a large collection of products and components, the security of the system demands careful planning, which is completed by the Security Architect. The set of tasks for establishing adequate security for a solution is often sufficiently large enough to justify the introduction of a separate Security Architect user role. Among others, the Security architect closely collaborates with the System Administrator to configure and administer the security aspects required for the given IT infrastructure. Related user roles of Security Architect The following diagram shows the related user roles that Security Architects are most likely to interact with in the course of a solution development life cycle and the major tasks on which they would collaborate: [Instruct on installing security related aspects] Security Architect [Instruct on appropriate security administration] System Admin. Product Installer [Co-design security related aspects] Solution Architect Figure 6. Collaboration pattern of Security Architects Typical tasks and skills of Security Architect The typical tasks and particular skills for a Solution Architect are as follows: Tasks " Works with the CIO or CEO, or both, to define the general policies for protecting information assets for the enterprise " Establishes and manages the policies and mechanisms that control the privacy of the access and distribution of information assets " Conducts occasional or periodic compliance reviews, including performing audits, responding to external (legal) requests for information, and reviewing system logs and traces to detect anomalies Skills " Has thorough and current knowledge of computer security technologies, current issues, products, and so on, in order to apply them to the particular IT infrastructure of the enterprise " Has a sufficient understanding of the entire IT infrastructure in order to judge which components need to be secured and how to secure those components 20 " Participates in product purchasing decisions, as they pertain to security issues " Participates in architecture discussions and reviews, as they pertain to security issues " Revises security policies after intrusion attempts into the system Technical use case example for Security Architect The following use case assumes that the Security Architect has completed the design of the security infrastructure for the solution. The use case encompasses all the tasks associated with the setup and configuration of the various products that are instrumental in implementing an effective security infrastructure for the environment as well the products that need to interact with the security technology the solution enables (such as Tivoli Access Manager, LDAP SecureWay, Tivoli WebSeal, WebSphere Portal Server, and so on). User Role Security Architect / System Administrator ! Security Architect / Systems Administrator ! ! ! Security Architect / Systems Administrator Security Architect / Systems Administrator ! ! ! 21 Use Case Step Set up Tivoli Access Manager for operation with the shared LDAP user repository Set up Tivoli Access Manager for authentication of WebSphere Portal Server users, including single signon to all applications Set up the necessary components in the DMZ if any (for example, plug-ins, Tivoli WebSeal, and so on) Set up and integrate all the relevant components (that is, WebSphere Portal Server, Lotus and Siebel products, business applications, and so on) Set up the inner and outer firewalls Set up the authorization for various system resources Resolve how much authorization is delegated to Tivoli Access Manager versus how much is performed locally within each resource manager Application Developer After the Solution Architect, the Application Developer is the second most prominent role in the context of solution development. The Application Developer interacts with seven other roles on a regular basis. In some companies, they might also act as the Solution Architect, in which case you would rather find the role of a Lead Application Developer instead of an explicit Solution Architect role. The Application Developer user role is the most likely user role to be customized for a particular business solution. For example, the J2EE specifications suggest possible refinements of their corresponding Application Component Provider role into the roles of HTML document designers and programmers and enterprise bean developers [Nov. 2002]. Related user roles of Application Developer The following diagram shows the related user roles that Application Developers are most likely to interact with in the course of a solution development life cycle, and the major tasks on which they would collaborate: Solution Architect [Translate design into component implementation] [Implement changes to dynamic business rules] Business Analyst Application Developer [Synchronize tools with component development] Internal Tools Developer [Provide application components for integration] [Synchronize UI with functional development] User Interface Developer Solution Integrator [Synchronize information with functional development] Information Developer Figure 7. Collaboration pattern of Application Developers 22 Typical tasks and skills of Application Developer The typical tasks and particular skills for an Application Developer are as follows: Tasks " Develops the business services according to " " " " the Solution Architect’s model Decides on the specific implementation of required task flows (workflows, message flows, and so on) Writes EJBs to wrap internal and external resources Unit tests each application component to ensure it works according to the specifications; that is, tests the validity and basic performance of the developed application components In some cases, develops user interfaces, EJBs, or servlet frameworks to contribute to shared services for reuse within other solutions Skills " Understands parsers, editors, and generators " Has a thorough understanding of the business components involved in the proposed solution and is able to program them as required, for example: - J2EE (new applications) - Cobol (working with existing data) Technical use case example for Application Developer The following use case focuses on creating a new portlet using WebSphere Studio Application Developer, possibly WebSphere Portal Server, and its Web Content Publisher component. User Role Application Developer ! Application Developer ! Application Developer ! Application Developer ! 23 Use Case Step Author the portlet in WebSphere Studio Application Developer Unit test and debug with WebSphere Studio Application Developer to test the environment or the external WebSphere Portal server Where necessary, associate the versioned portlets with other artifacts in the Web Content Publisher component Publish the portlet and other artifacts to make them available for solution integration and deployment User Interface Developer The tasks associated with the User Interface Developer user role are sometimes covered by the Application Developer user role, especially with smaller business solutions like some Web-based applications. For larger enterprises, though, it is necessary to distinguish between the system-oriented aspects of an application or solution and the user-facing aspects. Obviously, the User Interface Developer closely collaborates with the Application Developer during the implementation of the business solution. Related user roles of User Interface Developer The following diagram shows the related user roles that User Interface Developers are most likely to interact with in the course of a solution development life cycle and the major tasks on which they would collaborate: [Translate solution's functions and flow into UI elements] Solution Architect [Translate system functions into UI elements] User Interface Developer Application Developer [Synchronize UI artifacts and flow with information] Information Developer Figure 8. Collaboration pattern of User Interface Developers 24 Typical tasks and skills of User Interface Developer The typical tasks and particular skills for a User Interface Developer are as follows: Tasks Skills " Defines and creates task flow within the " Has basic understanding of the business goals front-end of the application " Designs the windows to have a consistent look and feel and exhibit ease of use, in accordance with globalization and accessibility standards of the solution " Has sufficient understanding of the users and their tasks " Has expertise in various user interface design and development mechanisms and knows which best to apply for which user task Technical use case example for User Interface Developer The following use case involves creating a solution management dashboard, which shows how the user roles of the Application Developer and the User Interface Developer blend, because the application is driven by visual cues. User Role User Interface Developer User Interface Developer ! ! User Interface Developer ! User Interface Developer ! User Interface Developer ! 25 Use Case Step Create and code the JSP for the logon screen Use existing widgets (for example, a bar graph and meter) for the duration graph and the per day graph Create widget for the "top 5" table based on the widget infrastructure Create the dashboard JSP, which calls all the widgets (graph, meter, and table) and feeds the data from event infrastructure Unit test the code Information Developer WebSphere Platform products should make it easier for the Information Developer to develop user assistance components in a most synchronized way and even to directly derive usable information units from the solution components for creating error messages, help texts, user guides, or solution specifications. The Information Developer user role does not include the translator of information, which is considered one of the secondary roles for the WebSphere Platform products. Related user roles of Information Developer The following diagram shows the related user roles that Information Developers are most likely to interact with in the course of a solution development life cycle and the major tasks on which they would collaborate: [Translate solution objectives into appropriate information] Solution Architect [Translate system functions into appropriate information] Information Developer Application Developer [Translate UI artifacts into appropriate information] User Interface Developer Figure 9. Collaboration pattern of Information Developers 26 Typical tasks and skills of Information Developer The typical tasks and particular skills for an Information Developer are as follows: Tasks Skills " Architects and implements information " Has basic understanding of the business goals deliverables " Defines which information component is most appropriate for each solution component, for example, books, information centers, wizards, and so on " Writes required text such that it can be translated into multiple languages of the solution " Has sufficient understanding of the users and their tasks " Has expertise in various user assistance mechanisms (help text, books, tutorials, and so on) and knows which best to apply for which user task Technical use case example for Information Developer The technical use case for the Information Developer can be seen in conjunction with the use case for the Solution Architect who is working on the architecture design. The Information Developer assists with the documentation of the solution architecture, and continues to create the solution specifications, making use of system generated information units (such as Javadoc) where possible. User Role Information Developer Information Developer ! ! Information Developer ! ! 27 Use Case Step Edit the solution architecture Write the solution specifications for a new solution Update the specs when design issues arise that affect the architecture, including Checking out the specs, making the changes and checking it in with the appropriate version of the solution. Internal Tools Developer Internal Tools Developers are not directly involved in creating the business solution, but are instead involved in developing the software and tools that support the business solution stages, from design to development to deployment to administration, tailored to the company’s specific needs. Sometimes, Internal Tools Developers maintain artifacts that are used across multiple solutions. This role is increasingly more important as companies develop more and more business solutions. Related user roles of Internal Tools Developer The following diagram shows the related user roles that Internal Tools Developers are most likely to interact with in the course of a solution development life cycle and the major tasks on which they would collaborate: Solution Architect [Translate solution design into implementation of required tools] Internal Tools Developer [Synchronize development of application components with tools] Application Developer Figure 10. Collaboration pattern of Internal Tools Developers 28 Typical tasks and skills of Internal Tools Developer The typical tasks and particular skills for an Internal Tools Developer are as follows: Tasks Skills " Implements tools that help with the " Has a thorough understanding of the tools application development, unit testing, and deployment life cycle in the corporate environment " Implements tools that provide higher-level editors for generation of corporate patterns on top of the base programming model " Possibly enables for production some of the tools for external use by some corporate customers " Maintains user interfaces, EJBs, or servlet frameworks for reuse within other solutions workbench for implementing plug-ins " Understands parsers, editors, and generators " Has basic user interface development skills " Can code the corporate programming model into a tool for development or deployment automation Technical use case example for the Internal Tools Developer The following use case is a typical example of the responsibilities of an Internal Tools Developer whose main task is to provide the adequate bridge software between given solution development products and a company’s particular IT environment. The use case features the development of a tool for transforming any foreign coding style into a company’s specific one, including indenting lines of code, placement of comment blocks, capitalization conventions, and so on. User Role Information Developer / Solution Architect Internal Tools Developer ! ! Internal Tools Developer ! Internal Tools Developer ! Internal Tools Developer ! Internal Tools Developer ! 29 Use Case Step Define corporate coding standard Launches workbench and opens plug-in development environment perspective Designs new transformation plug-in and generates the corresponding skeleton Fills in details into skeleton code to read Java source structure and reformat it into corporate style Unit tests new transformation plug-in in plug-in development Exports plug-in and makes it available to development community Solution Integrator The tasks associated with the Solution Integrator user role involve the assembly of application components into a complete solution and the preparation of this solution for thorough testing and subsequent deployment. Currently, these tasks are distributed across a number of other user roles, such as Application Developer and System Administrator, but based on the customer interviews and feedback, the Solution Integrator user role is seen as an emerging role that WebSphere Platform development teams need to recognize and support. Related user roles of Solution Integrator The following diagram shows the related user roles that Solution Integrators are most likely to interact with in the course of a solution development life cycle and the major tasks on which they would collaborate: System Admin. [Verify run-time requirements during assembly] Solution Architect [Verify assembly of solution components according to design] Solution Integrator [Create required collateral (scripts, etc.) for deployment] Solution Deployer [Assemble components according to design] Application Developer [Verify functioning of assembled solution] Solution Tester Figure 11. Collaboration pattern of Solution Integrators 30 Typical tasks and skills of Solution Integrator The typical tasks and particular skills for a Solution Integrator are as follows: Tasks " Assembles application components into a " " " " " complete solution Resolves interdependencies between solution-specific artifacts (EJBs, workflows, Web pages, and so on) Executes a simple path through the solution to validate it Creates a complete version of the entire solution Creates required scripts, tools, or templates to set up the environment for deployment Supervises the version control on solution code Skills " Understands the business solution and the business environment " Has extensive knowledge of the solution and the related application components and their artifacts in order to enable their efficient collaboration at run time Technical use case example for Solution Integrator The following use case describes how the Solution Integrator assembles the application components into a coherent solution, customizes the code slightly before handing it off to the Solution Tester, and adjusts how the solution is deployed. User Role Solution Integrator Solution Integrator ! ! Solution Tester Solution Integrator ! ! 31 Use Case Step Customize the adapters Customize the solution and adjust the deployment descriptors Test the customized solution Produce an installable image of the customized solution (in a setup.exe file) Solution Tester While Application Developers are responsible for unit testing the application components they developed, a Solution Tester thoroughly tests the flow and interaction between these components when assembled together into the business solution. Often Solution Testers are also involved with certifying a new solution, where they would closely collaborate with the Business Analysts to ensure the business goals are met. Related user roles of Solution Tester The following diagram shows the related user roles that Solution Integrators are most likely to interact with in the course of a solution development life cycle and the major tasks on which they would collaborate: Solution Architect Business Analyst [Report whether solution works & performs as designed] [Inform on aspects relevant for solution deployment] [Certify solution after successful test] Solution Tester Solution Deployer [Report assembly related issues] Solution Integrator Figure 12. Collaboration pattern of Solution Testers 32 Typical tasks and skills of Solution Tester The typical tasks and particular skills for a Solution Tester are as follows: Tasks Skills " Tests the functional correctness of the " Has thorough understanding of designed solution by verifying the proper functioning of the application components according to their role in the scenario " Tests the non-functional characteristics of the solution, verifying that aspects such as performance, scalability, and availability are satisfied " Thoroughly tests the flow and collaboration of components of a newly developed business solution before returning it to the Business Analyst for certification of attained business goals solution, and the involved application components and their role within the solution, in order to test the mapping of the solution to relevant scenarios Technical use case example for Solution Tester The following use case involves setting up the solution test environment. Often, this requires creating replicas of some of the environments to enable simultaneous testing of components, and in some cases, these replicated environments need to share some of the same resources. User Role Solution Tester ! Solution Tester ! Solution Tester ! 33 Use Case Step Determine which components will be installed on which machines, to determine where the various runtimes will be installed Install the products (or components), or ensure that they are installed, in the order based on product prerequisites or corequisites Run a verification test or sample to ensure installation is successful Solution Deployer The set of tasks associated with the Solution Deployer are focused on the deployment of the solution on the one hand and the management of a given solution on the other. Once launched, the solution deployment needs to be continuously monitored and analyzed and where necessary the deployment strategy needs to be modified in order to meet the required business needs. Solution Deployers closely cooperate with System Administrators in guaranteeing a smoothly running solution. The Solution Deployer overlooks solution-specific aspects and artifacts, such as enterprise Java beans or workflows, while System Administrators handle system-related aspects, such as resolving system failures or performing the fine tuned configuration of the IT infrastructure. Related user roles of Solution Deployer The following diagram shows the related user roles that Solution Deployers are most likely to interact with in the course of a solution development life cycle and the major tasks on which they would collaborate: Product Installer [Cooperate on solution update & migration] [Synchronize solution management & system administration aspects] Solution Deployer [Discuss re-configuration due to short- or long-term QoS requirements] System Admin. [Align deployment with test results] Solution Architect Solution Tester [Report assembly related issues] Solution Integrator Figure 13. Collaboration pattern of Solution Deployers 34 Typical tasks and skills of Solution Deployer The typical tasks and particular skills for a Solution Deployer are as follows: Tasks " Develops deployment strategy " Deploys newly developed business solutions into the existing IT infrastructure " When necessary, manages the removal of partial or entire solutions and the rollback to previous versions " Monitors and analyzes the deployment of the solution with an understanding of business effects and ensures the solution meets the required business needs " Revises the deployment strategy according to changes in the short-term or long-term Quality of Service requirements of the deployment Skills " Has a basic understanding of the business solution " Has in-depth knowledge of the IT infrastructure and can judge the impact of the new solution on the existing IT infrastructure and deploy it accordingly " Understands the impacts on the deployment because of temporary scenarios, such as quarterly catalogs, holiday rushes, fiscal year ends, and so on that might require that the solution be reconfigured Technical use case example for Solution Deployer The following use case explains how the Solution Deployer deploys a certified solution into the production environment. The Solution Deployer must protect the production environment, such that the solution can be removed quickly if they cause any adverse impact on existing products or solutions. User Role Solution Deployer Solution Deployer, Systems Administrator ! ! Solution Deployer Solution Deployer ! ! Solution Deployer Solution Deployer ! ! 35 Use Case Step Back up existing software and data Review hardware and software levels across the entire production environment Apply prerequisites and test them Deploy solutions into the production environment Apply any urgent fixes and test them Prepare to back out to previous level if problems occur System Administrator The scope of the System Administrator role for the WebSphere Platform products includes only those tasks for administering the relevant security, networking, and operational aspects of the solution that is being deployed. Further, in-depth administration is carried out by Security Administrators, Network Administrators, or System Operators, if those user roles exist within the enterprise. Additionally, in some WebSphere Platform customer environments, a specialized System Administrator, called a Server Administrator, might exist to administer just the WebSphere Application Server. In the current list of WebSphere Platform user roles these server administration tasks are associated with the Product Installer. Related user roles of System Administrator The following diagram shows the related user roles that System Administrator are most likely to interact with in the course of a solution development life cycle and the major tasks on which they would collaborate: Security Architect Product Installer [Configure security aspects of IT infrastructure] [Co-operate on product install, update & migration] [Negotiate performance related re-configuration] Solution Integrator Solution Deployer System Admin. [Synchronize solution management & system administration aspects] Figure 14. Collaboration pattern of System Administrators 36 Typical tasks and skills of System Administrator The typical tasks and particular skills for a System Administrator are as follows: Tasks " Assists the Product Installer in installing, " " " " " " " " " " " " upgrading, and migrating to the new solutions Performs the fine-tuned configuration of the IT infrastructure (operating system, and so on), including the corresponding networking aspects of the solution Deals with real time problems in the environment Manages the change control process Authorizes users, assigns user IDs and passwords, and manages these resources (for example, deleting accounts, changing account information, and so on) Uses system performance information to monitor compliance with Service Level Agreements and Quality of Service requirements Determines the cause and impact of problems that occur Resolves system failures, working with product support teams (both in the company and the product vendors) Plans how to react to peaks and valleys in solution performance within the IT infrastructure Potentially negotiates with the server farms to use capacity for short peaks Configures the security aspects of all the components of the IT infrastructure (for example, allocates and manages certificates for Web servers, sets up security plug-ins, and so on) Manages all the access control lists (ACLs) for all the resources within the IT infrastructure (for example, changes the ACL, reviews the ACL, determines the access currently in effect for a given resource, and so on) Detects and responds to intrusion attempts into the system Skills " Has a thorough understanding of the entire IT infrastructure (hardware and software) " Is able to judge the impact of system changes " Has expertise in various operating systems " Has system programming skills (script languages, command line programming, and so on) 37 Technical use case example for System Administrator The following use case portrays a typical configuration activity that the System Administrator handles. User Role System Administrator System Administrator ! ! System Administrator System Administrator ! ! System Administrator ! 38 Use Case Step Log on to the central administrative console Configure the display to monitor a specific set of hardware, software, and application components related to the solution Store the configuration Display the complete solution showing the hardware and software dependencies Show that each part of the system is up and running Secondary user roles The WebSphere Platform development team identified a set of secondary user roles that are distinct from the 12 primary user roles, but are indirectly or partially involved in developing a business solution with WebSphere Platform products. The following list shows the most important secondary user roles, although others are likely to exist: ! CTO, CIO, and CEO As coordinators and facilitators of the development of integration software, these executives are vital in the distributed development process, but they are not primary users of the infrastructure software for business solutions provided by the WebSphere Platform. They are vital decision makers from a solution development perspective, although their tasks and responsibilities go much beyond this vital task. ! Project Manager Like the executives, project managers function as vital coordinators and facilitators in the development of integration software. They stay with a particular solution development project throughout its entire life cycle, but do not get involved as solution developers. Hence, they have been excluded from the list of WebSphere platform technical user roles. ! Enterprise Information System (EIS) Developer Most likely a company will have their own enterprise information system for their internal transactions. A particular enterprise information system can be created in various forms and formats, such as Cobol (for example, for an IBM CICS system) or ABAP (for a SAP R/3 system). An Enterprise Information System Developer will need to have profound knowledge in the appropriate programming language and is responsible for maintaining and updating the business rules in the enterprise information system. This user role is addressed in detail in the context of developing the particular enterprise information and transaction system, for example, IBM CICS or SAP R/3. ! Translator The Translator will translate those text units that were selected for translation into other languages than the solution’s original presentation language. This might include error messages, user interface panels, help information, user guides, and so on. They do not use IBM WebSphere Platform products for this task, but instead use tools that are specifically tailored for translation. ! System Operator The System Operator continuously monitors the system transactions, creates system backups, and starts and stops the system when necessary. These are necessary operational tasks for a running business solution, but might not necessarily justify a separate user role. In the present list of WebSphere Platform user roles, these tasks have been associated with the System Administrator. 39 ! Network Administrator The Network Administrator installs network equipment and sets up network information, such as routing tables, and monitors network performance. WebSphere Platform software does not explicitly support the tasks of a Network Administrator. The networking tasks relevant in the context of developing business solutions have been merged with the System Administrator tasks. ! Database Administrator A Database Administrator creates databases, business views, and database objects. They grant authority to other users of the database, and tune and maintain the database. Storing and managing data is an essential aspect of business solutions. However, the role of the Database Administrator is not targeted by WebSphere software. It falls into the area of data management and data storage software. ! Customer Support Representative A Customer Support Representative will support the customer by answering questions and respond to customer requirements. They utilize the customers’ product and technology to identify problems related to product installation, configuration, operations, or performance. For resolving problems, very often a Customer Support Representative will have access to the same support mechanisms as the customer. Any improvements in these areas therefore will be of benefit to both. Since the set of generic user roles is meant to represent the roles found at the customer sites, the Customer Support Representative is not included into the list of WebSphere Platform technical user roles. 40 Summary This paper presented the set of technical user roles developed in cooperation with various WebSphere Platform customers who develop business solutions using WebSphere products. This set of user roles is a generic set, representing the user roles involved in the development of business solutions. However, for the development of any particular business solution, certain user roles can be made more general or more specific. The user roles are based on the typical user tasks. Each user role has a sufficiently large set of tasks, and shows a direct involvement with the development of the business solution using WebSphere Platform products. After describing the 12 primary technical user roles in detail, the secondary user roles were summarized. The list of WebSphere Platform technical user roles is not static, as a number of extensions are conceivable. From an overall solution development perspective, the next step is to establish a set of user roles that also covers the related areas of data storage, solution management, and collaboration that are addressed by Data Management, Tivoli, and Lotus products, respectively. Although, the current list of user roles is based on enterprise type customers, this list could be mapped to development environments with independent software vendors or with small and medium businesses. Perhaps the same set of technical user roles would exist, or perhaps a subset or superset of user roles would exist. And finally, when WebSphere Platform software directly addresses the needs of end-users of business solutions, the set of WebSphere Platform user roles will be extended accordingly to cover both technical and business user roles. Comments and questions are welcome on this paper: <[email protected]>. 41 Appendix A. Other perspectives on the concept of user roles There are various ways for adopting a user-centered perspective in software development. These perspectives largely depend on the area of development (software engineering versus user engineering) and the type of development (global design versus specific applications and solutions). The WebSphere Platform user role concept is based on user tasks and is briefly compared here to the other user-centered concepts used in the context of software development. Actors in software engineering In object-oriented software engineering, user roles are described as actors, whose scope is defined slightly more broadly than the user roles. In its original definition, an actor could be any external user of a system, which could be a human being as well as a non-human system that interacted with the system in question [Jacobson et al. 1992]. Most notably, the Unified Modeling Language (UML) is a language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system, specifying that ‘an actor represents a role that a human, a hardware device, or even another system plays with a system.’ An actor represents a coherent set of roles that users of use cases play when interacting with these use cases, but it needs to be kept in mind that actors, as defined here, are viewed as not actually part of the system. ‘They live outside the system.’ [Booch et al. 1999]. Goals and personas in interaction software design Instead of focusing on the essential tasks, user-centered design can focus on the accomplishments reached through performing these tasks, often called goals. Goals constitute the base element within the IBM User Engineering approach for software design and development [Dec. 2002]. Roles are associated with goals, where goals are a desired state to be in, independent of what a user needs to do in order to reach this goal. The concept of a persona, too, is defined by its goals. As with user roles, personas are abstract, representing real people throughout the process of design. ‘They are hypothetical archetypes of actual users’ [Cooper, 1999]. The definitions of personas are quite precise and personal, although imaginary. These pretend users are given a name, a particular work environment, a job title, and even hobbies, if they are of any relevance to the design. Also, a persona is likely to act in more than one user role during the course of a day. They apply any arbitrary combination of tasks to reach their desired goal and therefore assume all the corresponding user roles necessary. The particular combination of performed tasks might not be unique, since they might choose a different set of tasks the next time. 42 In addition to the WebSphere Platform technical user roles, the IBM WebSphere Platform development team could create a series of personas. In designing the interaction with a particular IBM WebSphere Platform product, it would be quite helpful to determine the goals of the various technical user roles and then derive the tasks that are necessary to reach these goals. Because the WebSphere Platform technical user roles were generalized across the solution development process using the WebSphere Platform products, generating a set of goals based on personas did not prove as insightful as concentrating on the user tasks directly. 43 Acknowledgements First and foremost I would like to thank the participants of the WebSphere Platform Beta program who filled out our survey, attended a round table teleconference, and volunteered for interviews on the user roles, giving us the most valuable feedback. In particular I would like to thank Joe Korchmar from Wachovia Corporation, who spent much time discussing the roles with us and was always available for yet another question! I’d also like to thank my colleagues from the WebSphere development teams who continuously discussed with me which tasks needed to be done and who would perform them - most notably Mike Starkey whose constant input and advice helped shape the set of WebSphere Platform user roles significantly. The WebSphere Platform is closely linked to DB2, Tivoli, and Lotus in the realm of building business solutions, and I want to thank Debbie Mayhew, Paige O’Neal, and Sandra Kogan respectively, for sharing their sets of user roles in order to appropriately align the WebSphere Platform ones. The WebSphere Application Server is often called the engine of the WebSphere Platform products. My thanks go to its entire Human Factors team who were just as much a driving force in detailing the user roles presented in this paper. For their extensive and constructive feedback on a draft version of this paper I want to thank Rosanne deVries, Eileen Jones, Mark Hunsinger, Hira Advani, Terry Borden, and Julie King from IBM, and again Joe Korchmar from Wachovia Corporation. And finally, my sincere thanks go to our editor Michelle Corbin who added that essential bit of flow and cohesiveness that transforms a paper from an aggregation of information into the most pleasant reading experience from front to back! 44 Notices This information was developed for products and services offered in the U.S.A. IBM may not offer the products, services, or features discussed in this document in other countries. Consult your local IBM representative for information on the products and services currently available in your area. Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM product, program, or service may be used. Any functionally equivalent product, program, or service that does not infringe any IBM intellectual property right may be used instead. However, it is the user's responsibility to evaluate and verify the operation of any non-IBM product, program, or service. IBM may have patents or pending patent applications covering subject matter described in this document. The furnishing of this document does not give you any license to these patents. You can send license inquiries, in writing, to: IBM Director of Licensing IBM Corporation North Castle Drive Armonk, NY 10504-1785 U.S.A. For license inquiries regarding double-byte (DBCS) information, contact the IBM Intellectual Property Department in your country or send inquiries, in writing, to: IBM World Trade Asia Corporation Licensing 2-31 Roppongi 3-chome, Minato-ku Tokyo 106, Japan The following paragraph does not apply to the United Kingdom or any other country where such provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or implied warranties in certain transactions, therefore, this statement may not apply to you. This information could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein; these changes will be incorporated in new editions of the publication. IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time without notice. 45 Any references in this information to non-IBM Web sites are provided for convenience only and do not in any manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of the materials for this IBM product and use of those Web sites is at your own risk. IBM may use or distribute any of the information you supply in any way it believes appropriate without incurring any obligation to you. Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. All statements regarding IBM's future direction or intent are subject to change or withdrawal without notice, and represent goals and objectives only. This information is for planning purposes only. The information herein is subject to change before the products described become available. If you are viewing this information softcopy, the photographs and color illustrations may not appear. Trademarks IBM, DB2, Freelance Graphics, Lotus, Tivoli, and WebSphere are trademarks of International Business Machines Corporation in the United States, other countries, or both. Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. Other company, product or service names may be trademarks or service marks of others. 46 Bibliography Booch, Grady, James Rumbaugh, and Ivar Jacobson. 1999. The Unified Modeling Language User Guide. Reading, Mass.: Addison-Wesley. Constantine, Larry L. and Lucy A.D. Lockwood. 1998. Software for Use. A Practical Guide to the Models and Methods of Usage-Centered Design. New York: ACM Press. Cooper, Alan. 1999. The Inmates are Running the Asylum.Why High-Tech Products Drive Us Crazy and How to Restore the Sanity. Indianopolis, Indiana: SAMS - A Division of Macmillan Computer Publishing. Jacobson, Ivar, Magnus Christerson, Patrik Jonsson, and Gunnar Oestergaard. 1992. Object-Oriented Software Engineering: A Use Case Driven Approach. Reading, Massachusetts: Addison-Wesley. J2EE 1.4 Platform Specification. Proposed Final Draft 2. November 2002. http://java.sun.com/j2ee User Engineering. December 2002. A description of the IBM approach. http://www.ibm.com/easy 47