Tips of Best Practices for Upgrade

Upgrade Best Practices
In preparing to successfully upgrade, there are multiple considerations to include in your upgrade planning and upgrade execution efforts. Within this paper, Oracle has gathered tips and techniques from hundreds of experienced systems managers, consultants, and partners. These recommendations are intended to help you learn from others and manage a successful upgrade project.
General Recommendations
The following general considerations should form the backbone of your upgrade initiative.
Tip #1—Determine Your Upgrade Path
Refer to the system requirements and supported platforms on the My Oracle Support Web site to determine supported upgrade paths for major releases. Verify whether you can upgrade directly to the latest release or whether you must first upgrade to a previous release before moving to this target release. In addition, evaluate the complexity of your upgrade effort based on the number of modules implemented, number of customizations, number of integration points, number of interfaces, total number of scripts, and number of user interface scripts and whether you intend to incorporate additional languages. Finally, determine the metrics and cost associated with each aspect of the upgrade. Each consideration should be addressed through a thorough upgrade assessment.

Tip #2—Treat Your Upgrade Activity as a Formal Company Project
The single best predictor of upgrade success may be the planning and project management rigor invested. A structured approach for managing the tasks, resolving issues, and measuring progress is absolutely critical. Equally important is a clearly defined and documented project scope. A defined scope is critical to project measurements necessary for time and cost containment. Experience has demonstrated that clear issue definition, strong project management, and executive ownership are critical success factors to a well-performing project effort.
If your organization has good project management expertise in house, you have an important asset to leverage. However, if this expertise is not readily available, it should be acquired early on in the project to ensure proper guidance and controls are in place. In either case, you will need someone with experience managing technical projects who can also help you anticipate and manage the effects of this initiative on other parts of the organization including end users, managers, and executives.
Tip #3—Use Change Management Appropriate for an Upgrade
During an upgrade, it is imperative to freeze metadata and system data in your production environment. With respect to the new release, ensure all relevant patches available are applied appropriately. There are two types of new release patches to manage throughout the upgrade project: ―required for upgrade‖ patches and ―regular product‖ patches. For each upgrade pass, required for upgrade patches only are applied to your upgrade environment. For each user acceptance test rollout or environment, apply regular product patches to the test environment only and never to the upgrade environment. Failure to appropriately manage these different change management requirements can result in upgrade step failures and unexpected user acceptance test results.
Once you have addressed this consideration, you should proactively search for issues throughout your upgrade effort and schedule relevant updates until you reach a go/no-go milestone. At this point, you should enforce a new release content freeze to stabilize the environment.

Tip #4—Build an Upgrade Team with Broad and Complementary Skills
Several different skill sets will be necessary to successfully upgrade your system. The following list details recommended roles that should be staffed within an upgrade project team. Note that a steering committee is critical to success. Creation of an active and interested steering committee is an imperative because critical business decisions must be effectively made and dealt with throughout the project. Furthermore, project failures are often traced to the lack of an effective governance body.
A typical upgrade team should include the following members:

  • Steering committee
  • Business owner of the application (such as the CFO)
  • Application data owner
  • Key user group representatives
  • Dedicated project manager
  • Technical functional lead
  • PeopleSoft administrator
  • Database administrator
  • Technical change management owner/release coordinator
  • Operating system administrator(s)
  • Testers—both technical and functional
  • Technical upgrade specialist(s)
  • Organizational change management/training lead

Tip #5—Utilize Peer and Oracle Resources
Most organizations sponsor upgrade projects infrequently, so it is important to leverage the experiences of others as much as possible.

Tip #6—Decide When to Change or Add Business Processes
In many cases, there should be functionality in the release being evaluated that will help your business improve processes and automate tasks. This can be a small enhancement to business processes you are already using, or larger changes such as the adoption of a new module. One critical decision for your upgrade project is whether you will implement the new functionality as part of the upgrade, or upgrade your current processes without change, and implement new functionality as a follow-on project.
Generally, implementing your existing processes in a new system can be a way to mitigate risk in the upgrade project. However, your business realities may preclude this approach, especially if the updated processes native in the software can markedly improve operations. For example, the business may be driving to take advantage of new capabilities as quickly as possible, or it may be more appropriate to modify processes and engage in a coordinated training effort to increase user adoption of the new solution.
By carefully weighing the pros and cons of these approaches, you can choose the best strategy for your organization.

Tip #7—Plan for Upgrade Tuning
Another critical area that should be considered is the performance tuning of your new system. Tuning your production upgrade scripts can significantly reduce downtime during the final stages of your upgrade. Examples of upgrade tuning include eliminating SQL statements that do not affect any of your data, executing long-running SQL statements in parallel, and creating and altering tables in parallel.
Take advantage of the expertise that SaKaEM, who has experience tuning your new release to ensure you get the most from your infrastructure, even if you have the expertise to execute other areas of the project yourself. SaKaEM  is quite specialized in its field, so it makes sense to have a source identified to prevent last minute scrambling
SaKaEM rigorously tests each supported upgrade path for technical and functional accuracy and for optimized performance. The most productive performance testing is completed on customer data.  Contact Us

Project Initiation Considerations
There are a number of things that you can do as your project begins, or even before it formally kicks off, which will ensure that the project has a proper foundation and is well positioned for success.
Tip #8—Prepare the Organization
As you enter the initial stages of an upgrade project, engage the entire affected organization to help them prepare for the work ahead and the changes they will experience in their jobs. Obtain formal buy-in from the stakeholder organizations and kick off the project in a face-to-face meeting. Formality, visibility to upper management, and team building can be key aids to securing the cooperation and problem solving help you will need as the project progresses.
These discussions should include both the business impact of the change and the associated change schedule. For example, secure agreement on all business blackout periods necessary for system changes.

Tip #9—Ensure the Quality of Your Data
One of the key steps in preparing for a successful upgrade is ensuring that your data is accurate and complete. You should have standard practices to handle duplicate records, verify data integrity, and ensure the overall health of your data. The time before an upgrade is an important time to review what practices are in place or need to be created to ensure that your data is relevant and reliable.In like fashion, it is recommended that you complete a detailed review of your current reporting strategy prior to the upgrade. A clearly stated policy of reporting preference (e.g.; Web versus paper) with a goal toward report reduction or consolidation can improve the efficiency of your operations, promote cost reductions, and minimize report maintenance.
Tip #10—Inventory Your System
All configuration elements of your enterprise system should be inventoried and the current configuration items (versions) should be copied and stored for technical change management control.
Upgrading is analogous to moving; before starting, you have to make sure you identify where all your belongings are and that they are being handled appropriately. Early in your project, be diligent in gathering this information through completing a preliminary upgrade questionnaire. Among the key considerations to include in your inventory process should be: 

  • Customizations, extensions, and modifications
  • Localizations
  • Interfaces, API’s, and integrations
  • Third-party products
  • Hardware
  • Software releases and patches, including operating system, database, and PeopleSoft Enterprise applications

Another important step is to carefully review the application Audit Reports (dddaudit, sysaudit, alteraudit) that are run at the beginning and end of each upgrade pass. Reviewing and resolving issues in these reports helps to prevent problems when processing data through the conversion (see ―Ensure the Quality of Your Data‖ above).

Tip #11—Adopt Most Current Developmental Toolsets
Whenever possible, be sure to adopt the latest available PeopleSoft toolsets, including Application Designer, DataMover, and Change Assistant. PeopleTools should be treated just like a standard upgrade project with the appropriate planning and testing cycles.

Tip #12—Prepare a Go Live Checklist
Once you have completed the initial planning, create a checklist of criteria to guide the ultimate deployment of the upgraded solution. The planning activities should allow you to develop a robust checklist to assess appropriate - go/no-go decision points. Creating this checklist as soon as possible is a good way to organize project goals, validate your plan, and identify your success criteria before the pressure is on to complete the project. This list should be reviewed 30 days before go-live to ensure progress is sufficient to complete in time.
Tip #13-Understand and Mitigate Project Risks
Early in the project a risk analysis should be undertaken to determine project risks such as resource contention, other projects going live at the same time, and so on. For risks that have a high probability of occurring and have a large impact, specific mitigation plans should be developed. These plans describe, in advance, what actions to take if the risk becomes reality. The analysis and plans need to be reviewed on a regular basis throughout the project.
Look for key points of failure, especially in the area of resource loading for your technical and business specialists. If you lack bench strength in any particular areas, develop a plan to supplement and/or back up critical personnel.
Preparing Your Technical Environment
While many of the activities required for a successful upgrade project involve end users and net change for the applications, you must also manage the changes to your technical environment carefully.

Tip #14—Evaluate Your Architecture
There are several key technological decisions to make that will affect your project. Changing any part of the architecture increases the complexity of the upgrade project, and careful planning is required to determine when to make this change as well as account for the technical work required. If you are not planning on changing architecture (although it may be mandatory for you to change your architecture depending on the version of the applications you are on currently), it is important to clarify this throughout your organization and create consensus to minimize disruptions. You should plan to complete a full performance test prior to the go-live date. This action will better allow your team to tune the system, getting all you can from your available resources and minimizing performance related issues at go-live.
It is imperative that these assessments be made early on to remove uncertainty and allow the project team to focus on other upgrade related details.

  • Platform: Most upgrading customers choose to remain on their existing hardware, operating system, and database architecture through the upgrade. However, many customers take advantage of the upgrade timeframe to upgrade hardware and transition to the latest support version of the operating system and other third-party software. If your requirements include considering a change in this area, it is vital that this decision be made early on as the platform often drives most, if not all, of the software utilized.
  • Middleware: One of the key decisions is which middleware platform you will use. PeopleSoft Enterprise supports both the IBM WebSphere products as well as Oracle Fusion Middleware. In choosing your middleware, be sure to understand the licensing requirements early to ensure that contractual issues will not become a barrier as the project moves forward.
  • Nonproduction Hardware: It is important that all of your testing environments are adequate for handling the anticipated testing loads Too often, we only concern ourselves only with the production environment and assume that performance is not important in a test environment. Bad performance during critical phases of testing can not only provide users with a bad experience, but it can also affect the upgrade schedule by hindering completion of testing and delaying system deployment.
  • Unicode: Another key decision is whether or not you will convert your database to Unicode. Most customers have data in a non-Unicode format. There are benefits and costs to each approach. In either case, a clear direction in this area will clarify hardware and project requirements and focus you on planning a successful upgrade.

Tip #15—Calculate New Hardware Sizing
Given the potential changes to your current system configuration, it is absolutely vital to get an accurate sizing for your new architecture. The combination of enhanced PeopleSoft Enterprise product functionality, technological change, anticipated changes in the way you use the applications, and possible implementation of new modules could all impact sizing requirements for the upgraded solution.
Accurate sizing information will help you decide whether you can reuse current hardware, need to increase hardware resources, or should consider upgrading one or more of your servers. Similarly, sizing considerations are important whether or not you intend to upgrade in place (with potential reuse) or switch to a new hardware platform during the upgrade process. Performance and load testing can help determine if the hardware is adequate to support your production requirements.

Tip #16—Identify Custom Code and Scripting
Any custom code integrated with the PeopleSoft application may be impacted during an upgrade. It is important to not only identify any custom code but also track the progress of any retrofit efforts during the project. You need to identify the code, who owns the code and its status. Included in the PeopleSoft Enterprise application upgrade Initial Pass, there are steps to identify your database metadata customizations. Compare reports from these steps can be leveraged to identify customized scripts and processes on your system’s file server.
All interfaces, form customizations, and customized reports will require extensive testing to ensure that they have not been affected by changes to tables or API’s in the upgraded software. Custom responsibilities and menus must be reviewed and potentially updated as well. In some cases, customizations can be removed following an upgrade if new features and functionality satisfy the business requirements previously met with the custom code.
Tip #17—Defragment and Reorganize Your Database
From a general database perspective, there are a few actions that can be completed to assist the upgrade project. To optimize the efficiency of the system as you upgrade, you should defragment and reorganize the database to the greatest extent possible beforehand. Your database administrator should be able to use their existing database management tools to accomplish this goal.
Tip #18—Study and Adhere to Current Minimum Technical Requirements
A critical step in ensuring success is adhering to the technical requirements for your system. This applies to the release currently in production as well as the release to which you are moving. Make sure that you review these requirements early in the project to ensure that you have the right components and understand any updates or changes and how they will affect your upgrade plan.

Tip #19—Follow the Specific Platform Recommendations

Installing Your New Release
Installing the new solution properly is a critical component of the upgrade process.
Tip #20—Install Verification
After installing the new PeopleSoft Enterprise solution, you should complete an inventory check to confirm that all components were installed correctly and are behaving properly.

Tip #21—Get Code Current
In addition to the basic installation steps, it is critical to get ―code current‖ in the new environment before you invest in testing, configuration, and validation associated with going live. This process requires the most current aggregate fixes to be applied, such as Updates and Tools releases. Whether or not you install these fixes to the system early in the project is a significant predictor of project success.

The best run and most successful projects do this right after installation of the new application version. Configure and use Change Assistant to apply these fixes to the new environment. Also ensure that Posted Date Order is adhered to always.
Upgrading Your Data
Once the system is installed, you should turn your attention to data considerations. This step is a critical one in your upgrade success, and often the most time-sensitive.
Tip #22—Identify Data Migration Tasks
After the upgrade, there may be data migration and repository configuration tasks that must be performed manually. These tasks frequently involve customizations made in prior releases. The Upgrade Compare Process will identify and catalogue these needs during the Initial Pass to ensure that the upgrade effort is not compromised.
Tip #23—Minimize Application Data to Upgrade
There are several steps to take to prepare your application data for the conversion. The first step is to minimize the amount of data you need to upgrade. If you have a defined archiving and purge strategy for your data, be sure to apply it before the upgrade. If a defined data strategy does not exist in your organization, strongly consider implementing one.

Tip #24—Test with a Copy of the Production Database
Converting your data accurately and efficiently depends on the quality and makeup of the data itself. Working with a current copy of your production data will give you valuable information about how the testing process should be structured as well as how long it will take to complete. Typically, your first conversion will be the longest and the most difficult.
As you progress through the upgrade project, continue to work with accurate, current data, taking a fresh copy as directed in your upgrade path documentation. This consideration not only ensures the highest data quality, but will provide more accurate upgrade activity time estimates during performance testing.
Tip #25—Complete Parallel Batch Testing Between a Copy of the Old System and an Upgraded Second Copy
Testing investments can be reduced by making two copies of the production database and then upgrading one. Data can then be staged either through limited data entry or through batch input. Batch processes can then be run both in the old and new copies and the data/results analyzed either through query or production reports. The results can be compared electronically using compare utilities.

Tip #26—Leverage Existing Test Scripts and Plans
To prepare test scripts for use during the testing cycles, begin with the test scripts utilized during the original implementation and augment these to include testing of the new features and functionality. Also consider any modifications needed for process flow changes related to the upgrade.
If these materials do not exist from the original implementation or previous upgrade, create them and store them in a library. This material can save significant time in preparing for upgrade testing.
As of PeopleTools 8.51, the PeopleTools Testing Framework tools are available to make use of automated testing. These definitions can be upgraded for future releases to assist with testing of maintenance and future upgrade paths.
Tip #27—Choose a Minimum Number of Test Conversions
An effective testing cycle will involve a minimum number of testing runs. Successful upgrade projects test the data conversion multiple times. Depending on the complexity, volume, and success of the process, you might need to practice less than five times or more than 20. This practice instills confidence in the accuracy of the final conversion timeframe. Testing after your first successful conversion will help you prove repeatability in the process.

Tip #28—Perform Index Management
There are two main considerations regarding indices for accelerating your conversion.

  • First, ensure that the indices that are used by specific conversions, including table conversions, are present during the upgrade process. If you have not deleted any indices on your system, they will be present by default.
  • Second, there are some situations where you may want to limit the amount of indices available during a process. This is an advanced consideration, and most customers will not need to weigh this factor. However, in a complex upgrade, particularly if you are also changing platforms and converting to Unicode, you should consider whether it could help your project.

While many of your team’s existing skills will serve you well in your upgrade project, it is extremely important to provide training on the new features, business processes, and other changes that will help your staff become more efficient and effective with the new version.

Tip #29—Train End Users on the New Solution
When you first implement the system, your end users must be trained from the ground up to use the new application solution. However, during your upgrade, you will likely have experienced users who are already familiar with the basics. This fact can both assist and impede your upgrade project effort. Your end users, most importantly those who will be testing the system, must have good information about how the resulting solution will be different, whether the changes are functional, user interface, or technical in nature. These considerations will prevent issues from being reported that are the result of misunderstandings, and better position overall acceptance of the new solution.

Tip #30—Get Specific Technical Training
The project team and support team must be proficient in the new technologies introduced in the latest release. Team members must also understand the new architecture and performance best practices. An assessment is recommended to reconcile the skills needed to support the development and maintenance of the new release. This consideration is especially critical for a successful upgrade initiative.

Tip #31—Optimize Training Processes
One of the best ways to reduce the number of issues you have to track, research, and resolve is to train your users at an optimal time in the upgrade process. Although many of the core functional and administrative business processes are similar between releases, training will give your users the information they need to distinguish true issues from intended changes. For this reason, the timing of this functional training is important. While you may want key users to be trained early on to give input to the project and assess impact, most users prefer training closer to going live on the new system so they don’t have to remember what they have learned over a long period of time without being able to apply this knowledge.

Post-Upgrade Activities
Once the core technical upgrade has been completed, there are several additional steps to ensure success.
Tip #32—Secure Functional User Buy-In
Functional validation of the system is a key task. Most projects use functional users, away from their main responsibilities to accomplish this objective.
Though it may be self-evident, if you have functional users complete testing, they must see the value of the process and share the project goals to complete the task effectively. Typically, these resources are setting aside important tasks to participate in the upgrade initiative, so take the time to solicit both management and individual cooperation. Once this cooperation is achieved, ensure you are collectively allocating enough time to complete a thorough testing cycle.
Tip #33—Testing Scope
A comprehensive testing effort is one of the key steps to finishing the upgrade and going live on the new release. As such, it is important that you consider the testing element of the upgrade as a major software update. Typically, a full, integrated test is performed that includes user acceptance and performance testing, and exercises all the business processes the organization will use. You may choose to use automated testing tools; in most cases, this automated approach should be augmented with human testing as well.
Tip #34—Deciding to Go Live
Ultimately, the decision to start running the business on the new solution must be made internally, and taken seriously. As you approach the milestone of a new PeopleSoft Enterprise solution, make sure that the team has enough information to enable a defensible go or no go decision to be made. The go live checklist created earlier in the upgrade process should be leveraged to verify that the success criteria have been achieved during the project.
Make sure that all affected groups from both business and IT are represented in this decision. If you have a formal steering committee, this will be the appropriate decision-making body. If for some reason there is no steering committee, call a meeting for this purpose, gathering input from the stakeholders ahead of time and fostering the communication that will allow for an informed and broadly supported decision.

Upgrade Tools
Oracle provides a number of automated tools to assist in the patching, release management and upgrade process. These include Application Designer, DataMover, and Change Assistant. Application Designer and DataMover are tools that allow you to load the database with new and/or changed objects as they are needed for patches, maintenance packs, and upgrades. Change Assistant automates the process of identifying, downloading, and applying your PeopleSoft application maintenance as well as automates your PeopleTools and/or application upgrade.
Keep in mind that you should reside on the latest PeopleTools version and/or patch that is certified for your current application release. This will allow you to utilize the new and improved set of technical features that are available and fix potential problems before they affect your Web site. Upgrading your PeopleTools should be treated just like a standard upgrade project with the appropriate planning and testing cycles. When to upgrade your PeopleTools is usually determined by where you are in the implementation or upgrade process, or if there is a piece of functionality used by your Web site that needs to be fixed. This will vary by Web site, but proper planning and execution will assure that your environments are upgraded at the appropriate time and with the least amount of end-user interruption.