Professional Documents
Culture Documents
LSA Architecure Tips
LSA Architecure Tips
(% of exam)
Enterprise Design (17%) Reporting (8%)
How Pega fits into the technical landscape of the Design appropriate reporting strategy based on
organization business need
Design for architecting Pega for the enterprise Identify need for custom SQL functions
Determine application infrastructure requirements Design reports for performance
Identify when to incorporate other Pega products Identify/solve performance problems in reports
Architect an environment with high availability Background Processing (10%)
Diagnose cause of an issue happening only in one Determine appropriate background processing
environment design option
Diagnose cause of an issue after weeks of Identify proper techniques to handle background
application running processing
Case Design (13%) Design for separate nodes; asynchronous
Design case hierarchy and relationships between processing
cases Optimize standard agents
Evaluate when to use subcase and subflow Asset Design and Reuse (8%)
processing Specialize an application by overriding rulesets
Define case locking strategy Assess need for extending an existing application
Design for case level and assignment level SLAs Identify opportunities for re-using assets
Recommend appropriate data propagation Refactor an application built in Pega Express
approach vs. shared data Deployment and Testing (15%)
Design Get Next Work algorithm Apply Production Deployment best practices,
Evaluate when to use push routing and pull including DevOps
routing Design and automate a Testing strategy
Evaluate when to use activities, APIs, and Assess and monitor application quality
functions Establish quality measures and expectations on
Data Model Design (8%) your team
Design and extend the application data model Customize the rule check-in approval process
Design data reuse layers and identify relevant
records
Define mapping between source systems and Pega
User Experience Design (8%)
Provide thought leadership in the area of UX
Determine where UX fits into the design
architecture
Identify application functionality that can impact
UX
Design the user experience to optimize
performance
Design for mobile and offline usage
Security (13%)
Determine the best authentication strategy
Determine the appropriate authorization model for
a given use
Perform a security assessment; identify and fix
issues
Use security best practices
Identify security risks
General Tips
60 mcq - 120 minutes (30 minutes more non speaking english country)
65% or 39 questions need to be correct to pass
3 times in 12-month period
positive answer is right size
LSA SUMMARY
DEPLOYMENT
1. Deployment Options
a. On Premise
i. Customer DB, App Server and Other Services
b. Cloud
i. Pega Cloud
3 Basic Provisions-> Standard(15)/Large(45)/Production
ii. Customer Managed Cloud
iii. Partner Managed Cloud
2. Deployment Services
a. PCF as topology manager (works only with above 3 cloud solutions)
i. Automate system management tasks
Dynamic Node Allocation/ Load Balancing
b. Using Docker Container to deploy pega
i. Run and Manage Apps side by side in isolated containers
ii. Needs Docker Container and Docker Host System
HIGH AVAILABLITY
Planned Outages
a. Quiesce – Takes the node out from load balancer, save session to shared storage and
activated later once relevant task done
i. Passivation and Activation
ii. Methods from where Node can be quiesced
Slow drain – requires taking node from load balancer before starting
quiesce, All user session activated in another node after passivation
timeout which is default at 5 seconds
Immediate Drain – default and no need to take node out since all users
(new and existing) are passivated immediately and the node can be
removed from the load balancer at the same time
iii. Pega Cloud must use the ImmediateDrain quiesce strategy
iv. HA Roles
PegaRULES:HighAvailabilityQuiesceInvestigator
PegaRULES:HighAvailabilityAdminstrator
b. Upgrades
i. Out of Place(Rolling Upgrade)
Little or no downtime
Create a new schema/Upgrade it/DB Connections updated to point to
new schema/Nodes are quiesced and restarted one at a time in rolling r.
ii. In Place Upgrade
Significant downtime
Stop App/Run preupgrade scripts or processes/Update database
schema using IUA, redploy ear or war and then App restarted
Unplanned Outages
c. Node Crash
i. Load balancer redirects traffic to another node in pool of active servers
ii. Reconstructing UI from UI metadata in shared storage
iii. Clipboard is not preserved, data not committed is lost
iv. SSO as a best practice
d. Browser Crash
i. Connects back to correct server on session affinity
ii. User session recovered without loss of both ui metadata & data on screens
unless***
8. Node Monitoring
a. ADMIN Studio
b. Autonomic Event Services (AES)
c. Mbeans integrated into your Network Operations Center (NOC)
d. HA Cluster Management page
9. Technical
a. Enable the HA dynamic system setting (session/ha/Enabled)
b. PegaRULES:HighAvailabilityAdministrator role - modify cluster settings & quiesce nodes
c. Update the value of the session/ha/quiesce/strategy prconfig setting to be either
"slowDrain" or "immediateDrain" and then restart the server
1. General
a. Offers Customer engagement apps and Industry apps
b. Product gap analayis vs Solution implementation gap analysis vs MLP vs AgileWorkbench
c. SIGA – difference between features pega app provides & the biz requirements for mlp.
d. PGA – determine if pega app is right fit for organization during sales cycle
REUSE
1. Reasons to and not version application
2. COE Responsibilities
a. Manage and promote reusable assets
b. Identify new opportunities in the organization
3. Available on Built on App but not in component
a. PegaUnit test creation
b. Self testable (Components rules can be unit tested but can not test itself)
c. Extendable case types
4. Challenge
a. Shared ruleset we include in a componente and which will be added to both apps so
both can use at once. Hotel and HotelProxy app
5. Federated case management use pega web mashup to link pega app in a federation
ASSIGNING WORK
1. General
a. Push vs Pull
b. Push routing occurs when a pyActivityType=ROUTE activity is used to create either a
worklist or workbasket assignment
c. Pull assignment using 2 ways
i. using Get Next Work by clicking Next Assignment at the top of the portal
ii. by checking Look for an assignment to perform after add
d. Routing to a role makes it clear why it was routed to the person
e. Avoid using hardcoded operator ids
f. If a background process such as a Standard Agent or Advanced Agent move a case
forward to assignment that uses ToCurrentOperator routing, a ProblemFlow could result
g. An assignment using ToCurrentOperator after a Wait shape will route to the requestor
who routed the case to the Wait shape.
h. It may be required to override the default behavior of some aspect of the work parties
such as validation or display. This can be performed either through ruleset specialization
or by extending the work party class and overriding the required rules
i. ToNewWorkParty/ToWorkParty both route assignment to worklist using partyRole para
j. WorkPartyRetrieve activity is significant since it is invoked every time a page is added
k. VOE option to add work parties when a case is created
l. When dynamically setting the work party values, leverage addWorkObjectParty activity.
it also allows you to specify a data transform to initialize the values otherwise use VOE.
2. GetNextWork
a. Ownership of fetched assignment not occur until either
i. MoveToWorklist is called
ii. User submits the fetched assignments flow action
iii. MoveToWorklist Rule System Setting need to set to true to this to be called
b. If multiple workbaskets assigned to operator, it will go top to bottom
c. Lower urgency on looked after all applicable wb assignment with urgency above limit
taken cared off.
d. Assignment can have required and desire skills, only required skills considered in GNW
e. Assing-WorkList.GetNextWork ListView use default getcontent activity to get assignments.
f. Before the assignment returned by the list view is selected, the
Assign-.GetNextWorkCriteria decision tree checks if the assignment is ready to be
worked on and if the assignment was previously worked on by the user today. The
assignment is skipped if it was previously worked on by the user today.
g. Don’t return case that is locked or assingments that has error
3. Customizing GetNextWork
a. change the prioritization of work by adjusting the assignment urgency
b. better long-term solution is to adjust the filter criteria in the Assign-
WorkBasket.GetNextWork and Assign-Worklist.GetNextWork list views, can sort by the
assignment's create date or join the assignment with the case or another object to
leverage other data for prioritization.
c. Modify using getnextworkrules
i. Activity overriding/Rule Circumstancing
d. Modifying without using getnextworkrules
i. Increase case urgency prior to wb routing
ii. List wb in specific order on operators record
e. adjusting the prioritization of work returned by Get Next Work
f. You can create several circumstanced list views if the requirements cannot be done in a
single list view, use this approach for different access group requirements.
g. Use the Assign-.GetNextWorkCriteria decision tree to filter the results returned by
the GetNextWork list view
h. Using the GetNextWorkCriteria decision tree for filtering has performance impacts since
items are iterated and opened one-by-one. Always ensure the GetNextWork list view
performs the main filtering.
i. Besides circumstancing the GetNextWork ListView, it is also possible to circumstance
the GetNextWorkCriteria Decision Tree for a particular WorkGroup
4. Leverage work parties in routing
a. Workparties in case provided dynamic, reusable routing solution
b. Workpartyretrive activity called everytime a page added to pyworkparty (OnChange)
c. Workparties default behavior can be override by rulese or class specialization
5. Configuring Work Party Rules
a. Avoid generic names such as owner and originator
b. Use VOE option to add work parties when case is created or use addworkobjecparty
c. Define routing for every assignment
6. Alternative to find work - a/b/d done without touching GNW
a. pyGetWorkBasket Report Definition behind the D_WorkBasket List Data Page used to
display workbasket assignments could be modified to use an ascending sort
on pxCreateDateTime as opposed to a descending sort on pxUrgencyAssign as it uses by
default.
b. value for pxUrgencyAssign could be derived after the fact, i.e., reverse engineered, by
taking into account @CurrentDateTime() and the time that the workbasket assignment
was created
c. A circumstanced version of the Assign-WorkBaset GetNextWork ListView could perform
an ascending sort on pxDeadlineTime as opposed to
using pxUrgencyAssign descending. A circumstanced version of
the pyGetWorkBasket Report Definition could do the same.
d. pxGoalTime and pxDeadlineTime can be adjusted from their initial value.
The pxAdjustSLATimes API activity would be used
7. Router activities
a. ToLeveledGroup is a valid option because it takes the users current workload into
consideration.
b. We can also create custom router activity
8. P & C of different approaches for customizing getnextwork
a. Circumstancing GNW rules
i. P Mirror the existing implementations /Easier to maintain/ Easier to extend
ii. C Requires additional rules to be used as circumstancing property
b. Custom Button & open assignment action
i. P Not tightly couple to pega rules
ii. C Need to add redundant code and custom error handling
c. Override GNW rules
i. P Fewest rules needed
ii. C affect behavior every user
1. CSP
a.Protects your browser from loading and running content from untrusted sources
b.Including Cross Site Scripting (XSS) and data injection attacks
c.If an attack takes place, the browser reports to your app that a violation has occurred.
d.CSPs are a set of directives that define approved sources of content that the user's
browser may load
e. are instances of the Rule-Access-CSP
2. Rule Security Analyzer Tool
a. tool identifies potential security risks in your applications that may introduce
vulnerabilities to attacks such as cross-site scripting (XSS) or SQL injection
b. vulnerabilities can arise only in non-autogenerated rules such as stream rules HTML, JSP,
XML, or CSS), and custom Java or SQL statements.
c. Use trained security IT staff to review the output of this tool
d. Running the Rule Security Analyzer before locking a ruleset is recommended.
3. Securing an application
a. Lock each ruleset version, except the production ruleset, before promoting an
application from the development environment
b. Ensure that a virus checker is installed to enforce which files can be uploaded. You can
use an extension point in the CallVirusCheck activity to ensure that a virus checker is
installed.
c. Ensure file types are restricted by adding a when rule or decision table to
the SetAttachmentProperties activity to evaluate whether a document type is allowed
d. ensure connectors and services are secured in an appropriate way.
e. Disable any users not used if the platform was not deployed in secure mode.
f. Enable security auditing for changes to operator passwords, access groups, and
application rules.
g. Review the Unauthenticated access group to make sure that it has the minimum
required access to rules.
h. Do not configure the Dynamic System Settings for a development environment, because
they restrict the Tracer tool and other developer tools
i. Rename and deploy prweb.war only on nodes requiring it.
j. Remove any unnecessary resources or servlets from the web.xml. Rename default
servlets where applicable, particularly PRServlet.
k. Rename prhelp.war and deploy it on a single node per environment.
l. Ensure that the system has been set up using a JDBC connection pool approach through
the application server, rather than the database being set up in the prconfig.xml.
4. Security best practices
a. Rule-Access-Role-Object (Access of Role to Objects or ARO) rules are non-versioned. It is
not possible to override an ARO rule within a different ruleset. There can only be one
instance of an ARO rule based on its keys, pyAccessRole and pyAccessToClass.
b. do not to assign permissive access roles, such as WorkMgr4, early on if not completely
certain the user needs
c. The object-oriented way to enforce security is to secure the object that is ultimately
accessed, not every path that can be taken to get to the object
d. The security guidelines are included in the pxApplicationSecurityChecklist Application
Guide rule which can be launched from an Application rule’s Documentation tab
5. Security event logging
a. Custom event logging can be used to facilitate the fulfillment of Client-Based Access
Control (CBAC) auditing requirements. It is possible to log a custom event within an
Activity java step using:
1. General
a. As the amount of application data grows, the report may run more slowly. Poor report
performance can cause memory, CPU, and network issues. These issues can affect all
application users, not just the user running the report
i. Memory - Large result sets can cause out-of-memory issues
ii. CPU - Using complex SQL can also have a CPU impact on the database server –
AES and PDC can help
iii. Network
b. Removing the chart on reports can also result in performance improvement
2. Configuring rules to improve report performance
a. Using data pages when possible - best approach to optimizing your report is to avoid
running the report. Data pages can help you do that.
b. Using pagination in reports if results are more than 50
c. Optimizing properties – for property
d. Utilizing declare indexes – for page list/pr_index_workparty
e. Leveraging a reports database – need same structure (table and cols) of live database
f. Avoiding outer joins
3. Tuning the db to improve report performance
a. Partitioning tables
b. Executing explain plans on your queries
c. Creating table indexes
d. Dropping the pzpvStream column on pr_index tables
e. Purging and archiving data
4. Challenge
a. Removing chart improve report performance
b. Watch browser interaction alerts when running reports
c. If more than 500 records, export that table to data warehouse
QUERY DESIGN
1. General
a. goal of usability testing is to better understand how users interact with the application
b. involves typical users of your application
c. validates the ease of use of the user interface design
d. is done to collect valuable design data in the least amount of time as possible
e. is conducted periodically throughout the software development
2. Conducting Usability Testing
a. a method for determining how easy an application is to use by testing the application
with real users in a controlled setting
b. Work with the product owner to select the tasks to test
3. Steps
a. Select tasks to test
b. Document sequence of testing steps
c. Decide on the testing method
d. Select participants
e. Conduct tests
f. Compile results
1. Queue Processor
a. Pega Platform provides built-in capabilities for error handling, queuing and dequeing,
and commits
b. run in the security context of the ASYNCPROCESSOR
c. configuring the Queue-For-Processing method in an Activity, or the Run in
Background step in a Stage, is it possible to specify an alternate Access Group
d. The AsyncProcessor requestor type is deprecated as of 8.3. The security context to
resolve Queue Processor rules is handled by the System Runtime Context.
e. Queues are multithreading and shared across all nodes
f. Use standard queue processors for simple queue management or dedicated queue
processors for customized or delayed processing of message
g. If we define Queue Processor as delayed then define date and time while calling via
method Queue-For-Processing or a Run in Background smart shape
h. For more advanced tasks that require vertical and horizontal scaling, such as inbound
batch file processing, create dedicated queue processor rules. Select the number of
threads for vertical scaling and the number of nodes for horizontal scaling
2. Standard Agent
a. using standard agents, Pega Platform provides built-in capabilities for error handling,
queuing and dequeing, and commits
b. By default, standard agents run in the security context of person who queued the task
c. The Access Group setting on an Agents rule only applies to Advanced Agents which are
not queued
d. To always run a standard agent in a given security context, you need to switch the
queued Access Group by overriding the System-Default-EstablishContext activity and
invoke the setActiveAccessGroup() java method within that activity
e. example is the agent processing SLAs ServiceLevelEvents in the Pega-ProCom ruleset
3. Job Scheduler
a. Job Scheduler not only must decide which records to process, it also must establish each
record’s step page context before performing work on that record
b. needs to decide whether a record needs to be locked
c. decide whether it needs to commit records that have been updated using Obj-Save
4. Advanced Agent
a. Advanced agents can also be used when there is a need for more complex queue
processing
b. all queuing operations must be handled in the agent activity
c. When running on a multinode configuration, configure agent schedules so that the
advanced agents coordinate their efforts
d. Eg is agent for full text search incremental indexing FTSIncrementalIndexer in the Pega-
SearchEngine
e. The default agent ProcessServiceQueue in the Pega-IntSvcs ruleset is an example of an
advance agent processing queued items
5. Q processor - For more advanced tasks that require vertical and horizontal scaling, such as
inbound batch file processing, create dedicated queue processor rules. Select the number of
threads for vertical scaling and the number of nodes for horizontal scaling. For example, if you
have available resources on a node, increase the number of threads on this node to utilize
resources and get the same throughput. When you select the number of threads, this number is
multiplied by the number of nodes. For example, if you have three nodes for background
processing and you set the number of threads to 3, then you have nine threads for background
processing. If you have a lot of nodes for background processing, distribute the work by
increasing the number of nodes
6. Q processor vs standard agent
a. can select dedicated threads to process only a specific action
b. can control the number of threads and the node types on which the processing runs.
c. provide better performance than agents because you do not have to queue your items
to a database
7. SLA
a. The escalation activity in an SLA provides a method for you to invoke agent functionality
without creating a new agent
b. An SLA must always be initiated in the context of a case
8. Wait
a. can only be applied against a case within a flow in a step, and wait for a single event
(timed or case status) before allowing the case to advance.
9. Asynchronous Integration
a. Commonly used asynchronous approaches include use of the Load-DataPage method
and using the Run-In-Parallel option with the Connect-Wait method.
b. Most connector rules have the capability to run in parallel by invoking the connectors
from an activity using the Connect-* methods with the RunInParallel option selected
c. Grouping several Load-DataPage requestors by specifying a PoolID is possible. Use
the Connect-Wait method to wait for a specified interval, or until all requestors with the
same PoolID have finished loading data.
d. Less commonly used asynchronous integration approaches include asynchronous
service processing and asynchronous connector processing
i. Asynchronous service processing
1. The service types that support asynchronous processing leverage the
standard agent queue
2. a queue item ID that identifies the queued request is returned to the calling
application. This item ID corresponds to the queued item that records the
information and state of the queued request. Once the service request is
queued, the ProcessServiceQueue agent in the Pega-IntSvcs ruleset
processes the item queued and invokes the service
3. In most cases, the calling application calls back later with the queue item ID
to retrieve the results of the queued service request. The standard
activity @baseclass.GetExecutionRequest is used as a service activity by the
service to retrieve the result of the queued service
4. When configuring this option for the service, a service request
processor that determines the queuing and dequeuing options must be
created
ii. Asynchronous connector processing
1. Several connector rules offer an asynchronous execution mode through the
queue functionality similar to asynchronous services
2. connector request is stored in a queued item for
the ProcessConnectQueue agent in the Pega-IntSvcs ruleset to make the call
to the service at a later time.
3. The queued connector operates in a fire-and-forget style
4. A connector request processor must also be configured for the
asynchronous mode of operation
10. Default Agents
a. there are default agents that
i. unnecessary for most applications because the agents implement legacy
ii. Should not run in production
iii. Run at inappropriate times by default
iv. Run more frequently than needed, or not frequently enough
v. Run on all nodes by default, but should only run on one node
1. General
a. DevOps is a collaboration between Development, Quality, and Operations staff to
deliver high- quality software to end users in an automated, agile way
2. Setting up a release pipeline
a. Developer activities
i. Unit testing
ii. Sharing changes with other developers
iii. Ensuring changes do not conflict with other developer's changes
b. Customer activities
i. Testing new features
ii. Making sure existing features still work as expected
iii. Accepting the software and deploying to production
3. DevOps Functions
a. Continuous integration – Continuously integrating into a shared repository
b. Continuous delivery – Always ready to ship
c. Continuous deployment – Continuously deploying (no manual process involved)
4. Devops release pipeline
a. DevOps involves the concept of software delivery pipelines for applications
b. A pipeline is an automated process to quickly move applications from development
through testing to deployment
c. The Continuous Integration portion of the pipeline is dominated by the development
group. The Continuous Delivery portion of the pipeline is dominated by the quality
assurance group
d. The pipeline is managed by some form of orchestration and automation server such as
open source Jenkins. Pega’s version of an automation server is the Deployment
Manager available on the Pega Exchange
e. A pipeline pushes application archives into, and pulls then from, application
repositories. The application repositories are used to store the application archive for
each successful build. There should be both a development repository and a production
repository
f. The term system of record is used in a distributed development environment. Separate
development environments can push branches related to the same application to a
central server known as the system of record. The central server is considered a Pega
repository type. Within the system of record published branches are merged
5. Continuous integration and delivery
a. With continuous integration, application developers frequently check in their changes to
the source environment and use an automated build process to automatically verify
these change
b. The Ready to Share and Integrate Changes steps ensure that all the necessary critical
tests are run before integrating and publishing changes to a development repository.
During continuous integration, maintain these best practices:
c. With continuous delivery, application changes run through rigorous automated
regression testing and are deployed to a staging environment for further testing to
ensure that the application is ready to deploy on the production system
d. In the Ready to Accept step, testing runs to ensure that the acceptance criteria are met.
e. The Ready to Deploy step verifies all the necessary performance, scale, and
compatibility tests necessary to ensure the application is ready for deployment.
f. The Deploy step validates in a preproduction environment, deploys to production, and
runs post-deployment tests with the potential to roll back as needed.
6. Modular development deployment stratagies
a. Advantage of dedicated ruleset for a case
i. Encouraging case-oriented user stories using Agile Studio’s scrum methodology
to manage project software releases
ii. Simplifying the ability to populate the Agile Workbench Work item to
associate field when checking a rule into a branch
b. Branch based development
i. dedicate a branch to a single case type, as seen in the following image, doing so
simplifies the branch review process
c. Application packaging
i. Multiple applications referencing the same ruleset is highly discouraged.
Immediately after saving an application rule to a new name, warnings appear in
both applications
ii. A product rule should contain a single Rule-Application where pyMode =
Application.
iii. Product rules should be defined starting with applications that have the fewest
dependencies, ending with applications that have the greatest number of
dependencies.
iv. Currently, the Deployment Manager only supports pipelines for Rule-
Application instances where pyMode = Application. When an application is
packaged, and that application contains one or more components, those
components should also be packaged.
d. Open/Closed principal applied to packaging deployment
i. The goal of the Open-closed principle is to eliminate ripple effects. A ripple
effect occurs when an object makes changes to its interface as opposed to
defining a new interface and deprecating the existing interface.
7. Creating team-based development best practices\
a. Use branches when multiple teams contribute to a single application.
b. Peer review branches before merging
c. Use Pega Platform developer tools, such as the Rule compare utility, the action
menu Search rule option, and the action menu Preview option to determine how to
best address any rule conflict
d. Hide incomplete or risky work using toggles to facilitate continuously merging of
branches
e. Create PegaUnit test cases to validate application data by comparing expected property
values to the actual values returned by running the rule.
8. Multi team develoipmenet process
a. A Branch Reviewer first requests conflict detection, then executes the appropriate
PegaUnit tests.
b. If the Branch Reviewer detects conflicts or if any of the PegaUnit tests fail, the reviewer
notifies the developer who requests the branch review. The branch reviewer stops the
process to allow the developer to fix the issues.
c. If the review detects no conflicts and the PegaUnit tests execute successfully, the branch
merges into the system of record. Ruleset versions associated to branch are locked.
d. The Booking App team can now perform an on-demand rebase of the SOR application’s
rules into their system.
e. A rebase pulls the most recent commits made to the SOR application into the Booking
App team's system.
9. Challenge
a. Rebase occurs after successful branch merger to SOR
1. Test Automation
a. UI Based functional and scenario test
i. To do end-t-end scenario tests to verify that end-to-end cases work as expected.
ii. most expensive to run
iii. Pega Platform supports automated testing for these types of tests through
the TestID property in user interface rules
b. API based-functional test
i. verify that the integration of underlying components work as expected without
going through the user interface
ii. useful when the user interface changes frequently
iii. can validate case management workflows through the service API layer using
the Pega API
c. Unit Tests
i. smallest unit is the rule. You can unit test rules as you develop them by using
the PegaUnit test framework
ii. least expensive
d. Automation test suite
i. industry test solutions, such as JUnit, RSpec, and SoapUI to build your test
automation suite
ii. When you build your automation test suite, run it on your pipeline
iii. During your continuous integration stage, the best practice is to run your unit
tests, guardrail compliance, and critical integration tests.
iv. During the continuous delivery stage, a best practice is to run all your remaining
automation tests to guarantee that your application is ready to be released.
Such tests include acceptance tests, full regression tests, and nonfunctional
tests such as performance and security tests.
e. Benefits of testing
i. Timely feedback
ii. Effective use of test resources
iii. Reinforcement of testing best practices
2. Establishing Quality Standards in your team
a. The pattern of allowing low-quality features into your production environment results in
technical debt
b. Technical debt means you spend more time fixing bugs than working on new features
that add business value
c. Establishing standard practices for your development team can prevent these type of
issues and allows you to focus on delivering new features to your users, such as
i. Leveraging branch reviews
1. Deployment Manager’s non-optional pxCheckForGuardrails flow will
halt a merge attempt when a Get Branch Guardrails response shows
that the weighted guardrail compliance score is less than the minimum-
allowed guardrail score.
ii. Establishing rule check-in approval process
iii. Addressing guardrail warnings
iv. Creating custom guardrail warnings
v. Monitoring alerts and exception
3. Leveraging application quality landing page
a. Application Quality affects the rate at which the application moves through a Dev Ops
pipeline and affects the rate at which new features can be added to the application
4. Customizing the rule checkin approval process
a. Pega Platform comes with the Work-RuleCheckIn default work type for the approval
process
b. work type contains standard properties and activities and a flow
called ApproveRuleChanges that is designed to control the rule check-in process
c. When the default check-in approval process is in force for a ruleset version, the flow
starts when a developer begins rule check in. The flow creates a work item that is
routed to a workbasket. The standard decision tree named Work-
RuleCheckIn.FindReviewers returns the workbaskets. Rules awaiting approval are moved
to the CheckInCandidates ruleset.
d. Override the Work-RuleCheckIn.FindReviewers decision tree if you want to route to a
different workbasket or route to different workbaskets based on certain criteria.
5. Creating a custom guardrail warning
a. Guardrail warnings identify unexpected and possibly unintended situations, practices
that are not recommended, or variances from best practices
b. To add or modify rule warnings, override the empty activity
called @baseclass.CheckForCustomWarnings
c. You typically want to place the CheckForCustomWarnings activity in the class of the rule
type to which you want to add the warning. For example, if you want to add a custom
guardrail warning to an activity, place CheckForCustomWarnings in the Rule-Obj-
Activity class
d. Configure the logic for checking if a guardrail warning needs to be added in
the CheckForCustomWarnings activity. Add the warning using
the @baseclass.pxAddGuardrailMessage function in the Pega-Desktop ruleset.
e. You can control the warnings that appear on a rule form by overriding the standard
decision tree Embed-Warning.ShowWarningOnForm. The decision tree can be used to
examine information about a warning, such as name, severity, or type to decide whether
to present the warning on the rule form.
6. Challenge
a. AES and PAL helps in determining quality of application
b. ShowWarningOnForm to define which warnings to show on rule form
c. When checkin approval process enables
i. Rule moved to candidate ruleset
ii. Work item is created
1. General
a. Pega Platform can be treated as any web application when performing load testing.
b. The term load testing is often used synonymously with concurrency testing, software
performance testing, reliability testing, and volume testing
c. Load testing allows you the validate that your application meets the performance
acceptance criteria, such as response times, throughput, and maximum user load.
2. Load Testing a pega app
a. can use any web application load-testing tool, such as jMeter or Loadrunner.
b. Before exercising a performance test, the best practice is to exercise the main paths
through the application, including all those to be exercised by the test scripts, and then
take a Performance Analyzer (PAL) reading for each path. Investigate and fix any issues
that are exposed.
c. Ensure that the log files are clean before attempting any load tests
d. Scenairos
i. Test environment baseline - first test to establish that application, environment,
and tools are all working correctly
ii. Application baseline - test run with one user or one batch process creating a
case in a single JVM
iii. Full end to end test - This is the first full test of the application end to end, still in
a single JVM
iv. Failure in one JVM - Test what happens if there is a failure in one of the JVMs
v. Span JVMs based on the peak business and technical metrics/goals
e. Begin testing just with HTTP transactions by disabling agents and listeners. Then, test the
agents and listeners. Finally, test with both foreground and background processing.
f. The performance tests must be designed to mimic the real-world production use. Collect
data on CPU utilization, I/O volume, memory utilization, and network utilization to help
understand the influences on performance.
g. Best practices for load testing
i. Design the load test to validate the business use
ii. Validate performance for each component first
iii. Script user log-in only once
iv. Set realistic think times
v. Switch off virus-checking
vi. Validate your environment first
vii. Prime the application first
viii. Ensure adequate data loads
ix. Measure results appropriately
x. Focus on the right tests
EXTENDING AN APPLICATION
1. General
a. You could also design a solution that uses AI and robotic automation capabilities in
tandem; they are not mutually exclusive technologies
b. Pega AI Capabilities
i. Intelligent Virtual Assistant/Customer Decision Hub
c. Robotics Automation
i. RDA/RPA/Workforce Intelligence
2. AI
a. The Adaptive Decision Manager (ADM) service is an example of adaptive learning
technology.
b. This technology can be a powerful ally in building a customer's profile, preferences, and
attributes.
c. An AI solution can also predict the next action a customer will take. This ability allows an
organization to serve the customer in a far more effective way.
d. AI solution can guide a customer service representative to offer products or services
that the customer actually wants, based on the previous behavior of the
customer. Predictive Analytics provides this capability.
e. The Customer Decision Hub combines both predictive and adaptive analytics to provide
a seamless customer experience and only shows offers relevant to that customer
f. Customer Decision Hub is the centerpiece of the Pega Sales Automation, Pega Customer
Service, and Pega Marketing applications.
g. AI uses a natural language processing (NLP) to detect patterns in text or speech to
determine the intent or sentiment of the question or statement
h. The Intelligent Virtual Assistant is an example of NLP in action.
3. Robotics Automation
a. RDA -- > Usage of RDA is also known as user-assisted robotics
b. RPA you assign a software robot to perform time-consuming, routine tasks with no
interaction with a user. This is also known as unattended robotics
c. WFI - connects desktop activity monitoring to cloud-based analytics to gain insight about
your people, processes, and technology
d. WFI is a technology that can identify where a user is repeatedly copying and pasting,
switching screens, or typing the same information over and over. This allows the
organization to detect areas for process improvement. When you implement changes to
those processes, the organization can realize significant time and money savings.
4. Challenge
a. Robotic automation suitable for tasks that are routine and highly manual.