upgrade considerations appian platform · implementation lifecycle, from project initiation through...
TRANSCRIPT
UPGRADE CONSIDERATIONS Appian Platform
ArchiTECH Solutions LLC 7700 Leesburg Pike #204
www.architechsolutions.com 703-972-9155
Page 2 of 11
TABLE OF CONTENTS Introduction ...................................................................................................................................................................... 3
Upgrade Overview ........................................................................................................................................................... 5
The Upgrade Process .................................................................................................................................................... 5
Evaluate Upgrade ...................................................................................................................................................... 6
Planning an Upgrade ................................................................................................................................................. 7
Evaluate System Architecture ................................................................................................................................... 8
Execute Upgrade & Perform Functional Test............................................................................................................ 9
Support User Adoption (UAT) ................................................................................................................................. 10
Production (PROD) .................................................................................................................................................. 10
Support and Enhance .............................................................................................................................................. 11
Conclusion ...................................................................................................................................................................... 11
Page 3 of 11
Introduction In a constantly evolving software marketplace, where new product versions with functionality enhancements are
released several times a year, it is essential for companies to stay up to date. Specifically, the Appian platform has
significantly matured over the past few releases, expanding in functionality, scalability, and usability, especially with
the move from Portal to Tempo and the introduction of SAIL forms.
ArchiTECH Solutions is committed to assisting customers in maximizing the value of their current software platforms,
leveraging the benefits of these technological advances to improve the end user experience and to increase the
return on investment.
The following whitepaper is meant to help guide clients through the software upgrade process, as well as provide
some specific information regarding the solution enhancements in the Appian platform. This whitepaper is not
meant to be a comprehensive to-do list or a replacement for the Appian Forum’s technical upgrade information (i.e.
https://forum.appian.com/suite/help/16.1/Upgrade_Guide.html). Rather, it should be used as a supplement to help
broaden knowledge about software upgrades for web based applications like including Appian.
When planning an upgrade, there are many factors to consider: functional changes, infrastructure requirements,
timeline, business needs. Above all, the initial item to consider is the reason for upgrading.
Upgrades are performed for a variety of reasons, including:
❖ Access to new functionality to meet your latest business objectives and grow within your market
❖ Stay compliant with industry regulatory requirements
❖ Improve your existing application, both in performance and usability
❖ Appeal to your current user base and help drive greater operational efficiency
❖ Stay current with the latest product support offered. At the time of this article, Appian no longer supports
versions lower than 7.6 and encourages you to upgrade in order to stay compliant.
Determining the reason for upgrading will help set the foundation to better answer many of the other factors
involved in the upgrade.
ArchiTECH Solutions has a team of experienced consultants ready to help you assess the reason for upgrading,
create a full lifecycle plan, execute the software application upgrade, and perform post-launch support and
enhancements to maximize the application’s utility, scalability, and supportability. ATS consultants treat an upgrade
project with the same diligence and accountability as with a solution implementation. We hope this whitepaper will
provide you the building blocks on which to begin your upgrade analysis, and we encourage you to reach out to our
team with any questions or support requests.
Page 4 of 11
Throughout this whitepaper, pay special attention to the People, Process, Technology framework that influences
each decision:
PEOPLE
All people involved in an upgrade project must be considered, from administrative resources who help facilitate the
funding, to executive stakeholders who support the initiative, to involved business and technical users that can test
and define requirements. To effectively coordinate and manage these people, roles and responsibilities of the
upgrade team should be concretely defined. Typically, this upgrade team consists of a smaller subset of the initial
implementation team, in addition to product specialists who are familiar with the new features of the product and
upgrade best practices. ATS consultants bring the necessary upgrade experience and product knowledge to guide
you through the people decisions, helping define a team and associated responsibilities.
PROCESS
A big part of efficiency within an upgrade is an accurate identification of all policies and processes that govern your
project lifecycle. Awareness of all development processes, code migration procedures, and resource onboarding
schedules is essential for effective process management. If you have ongoing development and code being pushed
to production, ensure that your upgrade project fits within the existing release cycle. Proper management of
business operations and development cycles will keep your software upgrade on schedule and without any
interruptions.
TECHNOLOGY
Finally, technological dependencies need to be met before any upgrade process can begin. Technology leads should
review the upgrade documentation, ensuring that any necessary changes in server, databases, plugins, etc. will be
mitigated prior to beginning an upgrade. Researching any technological dependencies is also important to ensure
the new software version will remain compatible with external systems. In addition to these hardware and software
Page 5 of 11
dependencies, comparing a list of deprecated functionality within the Appian platform to the current application
code is important in ensuring the existing solution will remain fully functional in an upgraded environment.
For an Appian upgrade, the Appian Forum is a good resource to start finding some of these technological answers.
The Release Notes provide a list of enhancements as well as deprecated functionality with each new version. The
Forum will also indicate whether your upgrade requires an intermediary version before upgrading to the latest
version (ie. upgrading from Appian 5.x first requires a migration to 6.0.3 before a higher version).
After compiling a list of all necessary upgrades for supporting systems, it is essential to reevaluate the project scope
and timeline. Additional technical and functional considerations are required when migrating an application from
Appian Portal to Tempo, as the entire user interface will be updated.
Upgrade Overview An upgrade is similar to an implementation project - it involves various stakeholders, it must adhere to a timeline,
and it impacts the end users. Thus, it should be handled with the same level of diligence. The upgrade should
follow a modified software development lifecycle complete with an upgrade process, approach, delivery
milestones, testing phases, end user impact
analysis, solution enhancements, and user
acceptance.
The Upgrade Process A key advantage to the upgrade process over a
new implementation project is that you can
leverage the pieces put in place during the initial
implementation, such as the project team
knowledge base, the migration policies &
procedures, the existing code base, and the
existing infrastructure.
With this backbone of knowledge and work, upgrades can be much more efficient and less time consuming than
implementations. Software upgrades are, therefore, more cost effective as they provide a greater return on
investment once implemented.
With that in mind, the upgrade process should flow through similar high-level phases as a typical project
implementation lifecycle, from project initiation through production. However, this time each phase will be made
easier, leveraging the existing frameworks and knowledge accrued.
Project Lifecycle Phases:
Upgrade Process Summary:
Evaluate Upgrade and Determine Need Plan Upgrade and Coordinate Resources Perform Functional Testing Facilitate User Adoption Move to Production Support & Enhancement
Page 6 of 11
Evaluate Upgrade Step 1 in an upgrade evaluation is to
determine the reason for upgrading. As
mentioned above, an important component of
a responsible upgrade is an evaluation of
whether the reason for upgrading is sufficient
to drive the process through the entire
lifecycle. Any application in production being
actively used by members of your
organization and/or external users represents
an investment in time and money from your
user base (either directly or indirectly). So you
should always consider any change to your
systems carefully and leverage the experience
of change management practices.
The next step in evaluation is a critical
assessment of your organizational readiness:
Does the upgrade have executive buy-in?
Do you have the resources needed to
perform the upgrade?
Does the new release (or desired upgrade release) satisfy the technical and functional requirements
of your business need today and for the next few years?
What are the potential negative impacts of an upgrade and can they be mitigated?
Another key area to consider is platform support for the software application. Often, product companies only
provide platform support for certain newer versions. An important question, then, is, does your application risk
losing support from the product vendor, and what impact would that have on your organization? Appian, in
particular, automatically upgrades its cloud customers to the latest version. However, on-premise customers need to
perform periodic upgrades to stay current with support. Thus, the supportability question is ever important for on-
premise customers.
Whether your company has an internal project evaluation steering committee to help decide the viability of the
upgrade or not, essentially the evaluation process should leave you with a “Go or No-Go” decision before committing
Initiation Elaboration Construction Transition Production
Questions to ask:
What is the scope and upgrade objective? What is the organizational impact? What is the team structure and their roles? Where can I find information about Appian?
Resources regarding Appian products:
Review Appian product documents and interact
with other in the Appian Forums
https://forum.appian.com/
Read Appian Blogs
http://www.appian.com/blog/
Stay current with the latest Appian add ons
developed by the community
http://www.appian.com/appmarket/
Page 7 of 11
resources to the effort. If the decision is to move forward
with the upgrade project, obtain formal buy-in from
stakeholder organizations and kick-off the project in a
face-to-face meeting. Formality, visibility to upper
management, and team building can be important in
securing the cooperation needed throughout the process.
Planning an Upgrade Once you’ve made the decision to upgrade, carefully
planning the project will be crucial to success. As
mentioned above, you should treat an upgrade project
with the same diligence as a new implementation. A
project plan should be created to define a specific scope
and any upgrade objectives. It should include features that you expect to implement, their benefits, and the
potential impact to your organization.
Planning an upgrade gives you a chance to revisit your original application objectives, and research new features or
enhancements to the product that may better fulfill those objectives. Additionally, consider doing a gap analysis of
your As-Is and To-Be upgraded states to ensure that you have accounted for organizational impacts from the
People, Process, Technology framework described above.
A web based application is made up of more than just the platform software; it is always a union of multiple
software and hardware systems. In order to effectively deal with these often complex integrations, you should plan
your upgrade team to reflect the varying complexities of your project. A typical upgrade team could include the
following roles:
❖ Business users
❖ Application owners
❖ Technical Lead (a SME on the Appian product)
❖ Functional Business Lead
❖ Project Manager
❖ Database Administrator
❖ System Administrator
❖ Release coordinator
❖ Application Testers
❖ Application Trainers
❖ Technical Upgrade SME
Finally, when planning an upgrade, it is important to utilize all of the resources and documentation at your disposal.
In addition to the experience of the ArchiTECH Solutions team, you can also leverage product specific information.
Appian, for example, provides the following sites where users can interact and obtain product documentation:
ArchiTECH Solutions has the experience
and capabilities to assist in the system
architecture evaluation process by
recommending appropriate sizing for
various environments. For Appian
upgrades in particular, ATS would walk
the customer through a Sizing Survey to
assess factors such as, complexity of the
application, number of total expected
users, peak system load, etc.
Page 8 of 11
❖ Review Appian product documents and interact with other in the Appian Forums
https://forum.appian.com/
❖ Read Appian Blogs
http://www.appian.com/blog/
❖ Stay current with the latest Appian add-ons developed by the community
http://www.appian.com/appmarket/
Evaluate System Architecture Before executing the software platform upgrade, an
evaluation of the underlying system architecture is
necessary to ensure the upgrade will remain compatible.
Changing any part of the system architecture increases the
complexity of the upgrade project; thus, only after careful
evaluation and planning should any modifications occur. If
the architecture changes are necessary, it is important to
create consensus amongst all stakeholders to minimize
disruptions. Furthermore, you should plan to complete full
performance testing prior to the go-live date to identify
any downstream issues.
It is imperative that these assessments be made prior to
the upgrade execution to remove uncertainty and allow the
project team to focus on other upgrade related details.
❖ Platform: Most upgrading customers choose to remain
on their current hardware, operating system, and database
architecture. However, many customers take advantage of
the upgrade timeframe to upgrade hardware and transition
to the latest supported version of the operating system and
other third-party software. Any decision regarding platform
modifications should be made early on as the platform often
drives most, if not all, of the software utilized.
❖ Middleware: Another key decision is which middleware
platform to use. In making your decision, be sure to
understand any licensing and support considerations from the software product company. Specifically, the
Appian Suite supports many middleware versions, and a closer look at the Appian Forum will provide a detailed
list of those options.
❖ Non-production Hardware: It is important that all testing environments are sized adequately for handling the
anticipated testing loads. Stakeholders are often only concerned with the production environment sizing and
assume that performance is not important in a test environment. Bad performance during critical testing
Things to remember when
executing:
Communicate to all users and
stakeholders the execution of
the upgrade
Back up all engines of data,
database schemas
Document the details of
upgrade steps, procedures and
issue resolutions
Perform Regression, End-to-
End, Quality Assurance, User
Adoption Testing to ensure
upgrade is fully integrated with
existing code and applications
Update training manuals and
application documentation
reflecting the code
modifications in the new release
Schedule a maintenance
window when activity is
typically low, and plan an
outage timeframe based on
your experience with pre-prod
upgrades.
Page 9 of 11
phases, however, can not only provide users with a bad experience, but can also affect the upgrade schedule by
hindering completion of testing and delaying system deployment.
Execute Upgrade & Perform Functional Test Although the execution of an upgrade project is typically a smaller initiative than with a new implementation, the
execution and testing of the upgrade is where most of your time will be spent. The timeline for execution would
become lengthier if there are on-going development and enhancement activities, as there would need to be a code
freeze for a period during the execution of the upgrade.
When executing an upgrade, it is important to identify any risks and “what if” scenarios in order to avoid
downstream issues. Any change to your business comes with inherent risks and you should plan for these risks as
early as possible. An upgrade will impact your organization from a people, process, and technology perspective so
it’s important to ensure that you list your risk scenarios and mitigation strategies to cover all three aspects. In
addition, be prepared to re-asses this list, as new risks may be introduced during initial sandbox execution,
regression testing phases, or even during user acceptance.
A standard upgrade would follow the following path:
Perform Test Iteration
It’s important to familiarize your team with an upgrade before updating any Pre-Production system. Therefore, we
strongly recommend initially performing a test upgrade in a Sandbox environment. This will allow your team to both
gain experience and flush out any issues before you move forward.
1. Freeze code in all environments (depending on circumstances, development may continue, but developers
would have to perform an additional series of code checks once DEV is upgraded)
2. Set up a Sandbox environment to mimic your Production environment
3. Initiate a backup of all engine data and database schemas
4. Copy all Production code and configurations to the Sandbox
5. Upgrade the Sandbox using the application upgrade guide on Appian Forum
6. Create a detailed customized upgrade guide that reflects your specific upgrade steps (It should capture
procedures that are specific to your environment. Document any issues and their resolution. Your customized
upgrade document should include all the lessons learned)
7. Smoke Test the application for basic functionality (ensure that the data sources are set to test data)
Retrofit and Fix
8. Perform Regression and End-to-End Testing on the Sandbox environment
9. Identify and resolve any run-time application issues that may arise due to the upgrade (take note of any areas
where custom code or plugins are used as these may be areas that could break during an upgrade)
10. Add the issues and resolutions to the customized upgrade document, to build a comprehensive lessons
learned list
Page 10 of 11
Perform Pre-Prod Upgrade
11. Freeze development
12. Snapshot environment configuration and backup all code and database schemas
13. Use your customized Internal Upgrade Guide to perform upgrades on all Pre-Prod environments, beginning
with the Test environment
14. Continue to document any issues and their resolutions, expanding upon the Internal Upgrade Guide
Quality Assurance Testing (QA)
Quality Assurance Testing relies on an accurate and descriptive set of test scripts, prepared to validate the latest
production release. Any modifications made to process flow or application code to accommodate the new software
version would need to be incorporated in the QA test scripts. Full testing coverage and thorough script execution is
essential prior to upgrading any higher environment.
With Appian, code migration across development and testing environments is made easy through the use of
applications. An application is a package of all relevant code components that can be easily exported from one
environment and imported into another. Existing objects are updated in the imported environment and new objects
are created.
Support User Adoption (UAT) After sufficiently testing the application in the Pre-Prod environments, the final stage in the upgrade process is to
solicit a larger audience to participate in the testing and sign-off procedures. If any modifications to the end-user
experience were made, a sign-off and verification step is necessary to ensure the customer approves. Once verified
by the customer, training manuals and other application documentation must be updated to reflect the code
modifications in the new release, and supplemental training sessions should be held for key stakeholders.
Finally, user adoption is essential in realizing the benefits of the application upgrade and modifications. The change
management team should identify the leaders/influencers of your end users to discuss user adoption. The most
important part of user adoption is communication; being clear about when/why/how the change will be
implemented, and promising support to help users transition. End-users will be most receptive to proposed changes
if they feel engaged and supported throughout the process.
Production (PROD) Once you have ensured the upgraded application will not cause issues with the existing code, you have received
sign-off from key stakeholders, and you have established a user acceptance plan, it is time to make a decision on
when to release to production.
If your steering committee or primary project stakeholders have given the green light for a production upgrade,
ensure you have a clearly documented step-by-step upgrade document that includes all functional and technical
aspects of the upgrade across all team members. Schedule a maintenance window when activity is typically low,
and plan an outage timeframe based on your experience with pre-prod upgrades. Finally, follow standard operating
procedures of production environment modifications, and rely on your Internal Upgrade Guide when executing.
Page 11 of 11
Support and Enhance Ensuring that your end users are properly supported post launch is critical to success. Therefore, your upgrade plan
should always include a period of support, which extends beyond the release date. The support team should be
comprised of a subsection of the upgrade team with cross-sectional knowledge of the application as a whole. For
projects with existing support processes, follow the same guidelines for your upgrade.
After full adoption by the organization, it is time to consider potential application enhancements to take advantage
of the latest software release. In order to maximize return on investment of the upgrade project, it is important to
modernize the application through full utilization of additional functionality and features. Any new enhancements
should be scheduled and implemented using a separate development lifecycle
Conclusion Software products and their functionality offerings are constantly evolving to provide greater value and new
advantages for your business. Appian, in particular, releases a new product version quarterly. In an effort to
maximize return on your solution investment, it is important to stay current by upgrading your application, and
implementing the new product enhancements to improve the end-user experience.
Each organization must evaluate the costs, risks, and rewards of an upgrade in the same way it would evaluate a
new business proposal. This whitepaper, written by ArchiTECH Solutions, outlines best practice tips to enhance
your upgrade project’s success.
ArchiTECH Solutions has the breadth of knowledge and experience to help you walk you through every step of a
software upgrade. Our consultants will guide you through the upgrade and technical assessments, planning, and
execution your software upgrade, providing continued post-launch support and enablement.
Bridging the gap between People, Process, and
Technology
7700 Leesburg Pike #204 Falls Church, VA 22043 For inquiries: Phone: 703-972-9155 Email: [email protected] Website: www.architechsolutions.com
This document is provided for information purposes only and the contents hereof are subject
to change without notice. This document is not warranted to be error-free, nor subject to any
other warranties or conditions, whether expressed orally or implied in law, including implied
warranties and conditions of merchant ability or fitness for a particular purpose. We specifically
disclaim any liability with respect to this document and no contr actual obligations are formed
either directly or indirectly by this document. This document may not be reproduced or
transmitted in any form or by any means, electronic or mechanical, for any purpose, without
our prior written permission.