- Dedicated WebSphere Application Server Engineering Support Organization
- LOB-Based Support Model
- WebSphere Organization with Separate Engineering and Service Delivery Functions
- Building a Global WebSphere Workforce
- Engineering Support with a Three-Level Approach
- Technical Support for Very Large IT Projects with Multigenerational Plans
- WebSphere Center of Excellence
WebSphere Organization with Separate Engineering and Service Delivery Functions
For a large WebSphere organization, it is essential to have further specializations. There are natural groupings of talent in the WebSphere organization. Some engineers have the aptitude and gravitate to planning engineering and process engineering work. You can extract planning engineering and process engineering from the actual service delivery. Thus, you have an engineering team and a service delivery team. For these two teams, there are further choices to make.
WebSphere Engineering Team
For a WebSphere engineering team responsible for product strategy and process excellence, you have to decide if this team also works on the engineering work of other middleware products (for example, WebLogic Application Server). There is always pressure to do more with less. Given a limited budget for engineering work, do you want one middleware engineering team that takes on WebLogic, JBOSS, and so on, along with WebSphere technologies? The second question is whether to have a single engineering team that works on both planning engineering and process engineering, or have two separate teams.
Pros and Cons of One Team
The primary benefit of using one team to engineer multiple middleware products clearly is the cost savings. The possible disadvantages of this arrangement can be the lack of focus, competition for resources, and likely delays of key engineering deliverables.
WebSphere product strategy and process engineering are sometimes perceived as “soft” jobs. For example, building product road maps and WebSphere Application Server standards may not be considered as critical or as solid as WebSphere Application Server build or production support. This perception is incorrect. Without top-notch WebSphere talents focusing on an upgrade strategy, WebSphere Application Server standards, and process engineering, your WebSphere organization suffers.
For example, if your WebSphere planning engineer fails to deliver a product road map for your company in a timely fashion, there is no effective guidance in managing a WebSphere Application Server product upgrade. As a result, your product currency program fails. WebSphere Application Server system configuration automation is another example testifying to the importance of WebSphere process engineering. The WebSphere Application Server system configuration is a resource-intensive and error-prone job if done manually because of the existence of many WebSphere configurable items. However, if the process engineers provide the service engineers with a good configuration automation program, the WebSphere configuration work that could have taken days to do can be accomplished in a few hours, if not minutes. For the planners to do the best job possible, a feedback system needs to be built in to the WebSphere organization. Thus, the WebSphere planning engineers aren’t working in a vacuum, but working shoulder to shoulder with service engineers who deliver on the plan.
The best way to organize a WebSphere engineering team is to have one team dedicated to WebSphere technologies. If this is impossible and your engineering team must support multiple middleware products, encourage your engineering team to build virtual teams with members from the service engineering teams of various middleware products.
This serves two purposes. First, your engineering team has more resources to work on the engineering work for many middleware products. Secondly, it is more likely that the service engineers are more enthusiastic to adopt the standards and processes delivered because they have been part of the work and consider these the results of their own work. Actually, the virtual team approach may be a good idea even if you have one engineering team dedicated to only WebSphere Application Server technology.
One Engineering Team
Conceptually, WebSphere planning engineering and the WebSphere process engineering need to be considered separately. In engineering practice, it makes sense to have one WebSphere engineering team that do both. This team needs to have no direct production support responsibilities, but it is in charge of WebSphere planning and process engineering deliverables.
WebSphere Service Engineering Team
For the WebSphere service engineering team, you have to deal with whether you want to have separate technical teams to manage system design and system build. At the same time, do you want many parallel service teams responsible for production operations and project work for different LOBs? The project work for these service teams includes planning a build, managing changes, scheduling application code releases, and supporting testing and development environments. Therefore, you can divide WebSphere service engineering function into three teams:
- Design team. Responsible for working with the application architect and infrastructure architect to deliver WebSphere topology and configuration design documents.
- System team. Responsible for building the WebSphere system and performing system changes and upgrades.
- Project support team. Works with the project directly and takes charge of planning, change control, coordination, and WebSphere technical support for production, testing, and development environments.
It is possible to have one WebSphere design team and one WebSphere system team, but multiple parallel WebSphere project support teams for different LOBs.
Should you choose one WebSphere service engineering team that is responsible for the full life cycle of WebSphere product and service delivery? Or will you be better off having separate design, build, project support, and operations functions? When should you have a separate system team and when should you not? The following discussion answers these questions.
Separate WebSphere System Design Team
Having a separate system design team is a great gain for system consistency. It is easier to consistently deliver WebSphere topology and configuration design documents conforming to the WebSphere standards of your company. In addition, a dedicated system design team helps by steadily recommending and influencing best practices in WebSphere systems and JEE application. For example, the system design team may consistently recommend and produce a WebSphere topology that supports redundancy and failover for a critical WebSphere Application Server infrastructure in order to achieve high resiliency.
A possible problem of this team structure is that the system design team does not have to “eat its own dog food.” This team designs a WebSphere system, but it does not have to live with it. In WebSphere engineering, it is mandatory to strive for a balance between conceptual elegance and technical practicality. When the design team does not have to bear the consequences of design flaws, engineering feasibility may become a secondary consideration. Therefore, a separate system design team may deliver something that looks terrific on paper, but is hard to implement in the real world and difficult to support in production operation. A separate system design team may deliver seemingly brilliant WebSphere designs burdened with excessive complexity that is not only difficult to build and support, but is also fragile. In the most devastating cases, the WebSphere system architecture delivered by a dedicated system design team may work so badly in production operation that it has to be replaced by a working WebSphere system via rebuild. This situation becomes worse when the responsibilities of the team are not clear, accountability is not enforced, and feedback between teams is not consistently done.
One of the ways to overcome this disadvantage is to devise the right incentive plan for the system design team to encourage the right behavior. The incentive plan must be linked to the performance of the design. The design team performance could be linked to the following:
- Feedback from the WebSphere system team and the service teams
- Metrics of unscheduled system outages caused by WebSphere system design flaws
- Evaluation of the WebSphere system performance and resilience features against design objectives and requirements
However, having one team provide performance feedback for another team is tricky because it involves the job of managing the sensitive peer work relationship, arguably one of the most challenging relationships in the corporate workplace. In addition, it is not easy to determine that a WebSphere Application Server outage is purely an issue of system design flaws. Often, WebSphere Application Server problems are complex with many contributing factors. Finally, evaluating performance against design goals is easy to say, but it is difficult to do because some of the major WebSphere Application Server design objectives and requirements are not easy to quantify. For example, it is difficult to provide the criteria of WebSphere system stability as a quantitative and measurable design goal. When the designers are not directly involved in fixing the resulting problems, it is hard for them to clearly understand the design issues and the resulting difficulties that the service engineers have to overcome.
Separate WebSphere System Team for Large Shared WebSphere Environments
By and large, it is good to have a separate WebSphere system team for large shared WebSphere environments. This team needs to take all of the system work, including system build, configuration change, system documentation, server security, and server recycling. This approach is especially appropriate for mainframe WebSphere system work because high system consistency is important for the stability and availability of these large enterprise servers. Yes, there are sophisticated problem insulation and dynamic system resource management capabilities available on the mainframe (for example, logical partition [LPAR] and workload manager [WLM]). However, serious WebSphere Application Server problems can still cause wide spread stability and availability issues and affect a large number of applications sharing mainframe system resources. Therefore, centralized WebSphere Application Server system work is necessary to enhance accountability, minimize operation errors, and achieve high system consistency for the mainframe.
The process is easy to follow. The WebSphere project team plans system changes and system upgrades and manages the change-control process. However, the project team won’t directly make system changes. Instead, The WebSphere engineers from the project team request system changes through the system team. The WebSphere system team reviews, documents, executes, and certifies the system change. Thus, only one WebSphere team, the WebSphere system team, makes changes to the large shared WebSphere environments and is held responsible for the changes made. This is infinitely safer from a system stability perspective than having multiple WebSphere technical teams work on the same large shared WebSphere environments.
For large shared environments, it is critical that, at any given time, one WebSphere team has a comprehensive view of the entire WebSphere systems and is accountable for system consistency. Without such a centralized authority in WebSphere system work for large shared environments, it is difficult to maintain system consistency. As a result, your system is not stable. This is especially true for large WebSphere systems hosted on enterprise servers, such as mainframe servers.
Mainframe technical training and technical skill considerations support the arrangement of a separate WebSphere system team. You could have a small group of mainframe system experts to form a WebSphere system team. Meanwhile, many WebSphere engineers with JEE exposure and project management capabilities could comprise WebSphere project teams. This organization model makes your teams more effective and technical training easier.
Sure enough, there will be communication, cooperation, and collaboration issues between the WebSphere system team and the WebSphere project teams. From time to time, there will be a need for all the WebSphere teams to focus on improving teamwork and learn how to better work together on these large shared WebSphere environments. However, this is a necessary price to pay. Considering the system consistency and the stability advantage of this organization model, this is a balanced approach for these important large shared environments.
However, for large WebSphere environments built on a distributed platform that is dedicated to a single large and complex IT project, it is altogether a different issue.
Separate WebSphere System Team for Dedicated Environment on Distributed Platforms
A separate system team can be a good organization choice for a large shared environment, such as mainframe WebSphere Application Server systems. For WebSphere systems built on distributed platforms for large and complex IT projects belonging to one LOB, a separate WebSphere system team may not be necessary. For example, for the mainframe, the WebSphere Application Server build requires specific system knowledge of the mainframe that takes years to learn. Therefore, a dedicated team that has the right staff can do a better job at a system build. For distributed platforms, a system build is a straightforward job that an average WebSphere engineer can perform.
This separation of system work may add an extra layer of service delivery dependency for the WebSphere service team. Your project team now has to take on the extra coordination with the system team to deliver any system work without extra benefits:
- The WebSphere project team is completely able to build servers.
- This is not a large shared environment where tight control of the system is necessary to provide system stability for many applications, but a dedicated environment.
- There is only one WebSphere team working in this environment.
Assigning a separate WebSphere system team to do system work on the distributed platform, you may have to deal with some issues.
The lack of clear division of labor may become the first troublesome area. Division of labor can easily become an issue between your WebSphere system team and your WebSphere project teams. They all belong to your WebSphere organization with a shared budget, workload, and human resource distribution across teams, but which team should be responsible for what tasks? Should the system team deliver a completely functional WebSphere Application Server to the service team? If there are any system issues during a major upgrade, should the system team be held accountable to fix the problems? It is critical that the division of labor between teams be one of the first decisions made so that everyone is on the same page.
Delays in system work are not uncommon. This is because there is one WebSphere system team with many WebSphere project teams competing for its resources and priority, as well as the resulting scheduling and coordinating challenges. Chapter 10, “System Upgrade and Product Maintenance Management,” provides detailed discussion on the difficulties in competing for resources and scheduling for system work.
For distributed platforms, this model of separating system work from the project teams may cause problems between the WebSphere teams involved. This type of relationship issue within the same WebSphere organization is typically tough to deal with, even for experienced WebSphere managers and senior consultants.
Is this a core organization issue or a challenge to the management of technical teams? Will the benefit of centralized system control, consistent system build, and a high level of system consistency that typically comes from a separate system team justify the extra overhead, coordination, and organizational issues? Can a separate system achieve a higher level of automation? Different WebSphere professionals with different experiences and backgrounds may have different opinions. This book does not advocate one organization model against another. Rather, it is an experienced observation coming from long years of hands-on WebSphere engineering practice. Even for experienced practitioners, it is important to keep an open mind, be ready to adapt to the changes of business drivers, embrace positive changes, and design and implement technical organization according to the business actuality of your company.
Of course, nowadays, any discussion of building a high quality WebSphere organization is not complete without figuring out integration strategies and the support models of global deployment.