0 votes
2.7k views
in Best Practices by

2 Answers

0 votes
by (21.6k points)
edited by
 
Best answer

Code Review Checklist

1. Is there sufficient documentation of BPD and Service Artifacts is there and color coding by type of tasks
2. Is Javascript indented and commented properly
3. Is reusable javascript function library created at a central server js file
4. Is appropriate usage of caching there
5. Is a Unit Test harness built for each task and integration service
6. Is sufficient Error Handling in place both at service and BPD level
7. What logging mechanism has been used and is sufficient logging there with appropriate logging levels set i.e. info, debug, error, alert
8. Is there direct access to Process DB (Product DB), it should be only when absolutely necessary since upgrades and migrations may not go through with Product DB changes
9. Is Performance DB being leveraged, has sizing of PDW database needs been done 
10. Is NOLOCK being used for SQL calls
11. Is string concatenation used or StringBuffer
12. what is unit tested load time in Development environment per task and integration
13. Is parametrized query for sql statements being used
14. Is every message on UI and BPD and task attributes connected to a central resource bundle so that they can be changed centrally
15. Is there hard coding of Environment specific variables e.g. hostname, port number, webservice endpoint etc. or they are in the environment configuration of the application
16. Is there a maintenance shutdown for the Process Application feature implemented
18. Are there validation errors in the Process Application
19. Is all the static data appropriately cached, and key based caching used for partially cacheable data
20. Are there default values set/accidentally left out for service input and output variables
21. Are all the static resources for the Process App e.g. css, javascript libraries etc minified and bundled in zip files. images should also be optimized for web delivery
22. Are Artifacts appropriately tagged with Company identifier and type of service
23. Are all the naming conventions adhered to
24. Are decision services being used for business decisions and routing where appropriate
25. If copies of existing controls are made they should be placed in a separate toolkit not mixing up with the Process Application code
26. Is the business data and process data appropriately bundled in context variables at BPD level so that minimal modifications to BPD is needed if additional data elements need to be added.

27. Is autotracking turned off in BPDs
28. Is save execution context checked on
29. Is there service exposure appropriately defined e.g. Admin Services vs Portal Services vs Dashboards
30. Is the exposure of services properly governed by teams and no accidental "All Users" exposures are there.
31. Is only minimal necessary Business Data exposed.
32. Are reusable artifacts e.g. Domain Business Objects, Generic Utility Dashboards etc. properly classified in toolkits.

0 votes
by (16.3k points)

We have built a automated code review tool "Dosvak Code Analyzer" which checks for the following items

Product Page with Live Demo

Non-Parametrized queries16Script
Compexity Score Per PO17Application/Model
Recursive Activity Link BPD110BPD
Recursive Component Link110TWProcess
Unconverted BPD to Process18BPD
Unconverted Services18TWProcess
Unconverted HHS to CSHS18TWProcess
Combined too many ajax calls in Load handler17CoachView
Table control heavily loaded with Coach Views17CoachView
Tab / Stack used with too many tabs17CoachView
Deeply nested Coach Views17CoachView
SQL calls in a loop17TWProcess
Java Connector in a loop17TWProcess
Web Service invocation in a loop17TWProcess
Repeated Ajax Services on Coach17CoachView
BPD swimlane assigned to All Users18BPD
System Tasks delete at completion not checked18BPD
Auto-tracking of BPDs turned on18BPD
Large HHS/CSHS Context Size17TWProcess
Large BPD Context Size17BPD
BPD Claim Check Pattern not used17BPD
BPD Envelope Pattern not used17BPD
Too Large Variables17TWClass
Human Service Complexity Score - Too complex Human Service/CSHS17TWProcess
BPD Complexity Score - Too complex BPDs17BPD
Direct access to Product DB18Script
System Activity as first step of Multi-Instance Loop18BPD
Heavily Loaded Coaches17TWProcess
Large Number of Steps before Coach17TWProcess
Decision Services in Loop25TWProcess
Missing Error Handling JavaConnector26TWProcess
All User Exposure BPD26BPD
Too many steps in a BPD24BPD
Script Length > 200025Script
There is no script Content (Empty Script)25Script
No Usage of Resource Bundles24ResourceBundleGroup
Empty Server Definitions ECM/REST/WEB SERVICE25Application/Model
Service Steps with Unknown in Name25TWProcess
Dead Branches and steps in BPD25BPD
Mixed Brazos and OOB controls24TWProcess
Unconnected End Points in BPDs25BPD
Unconnected End Points in Human Services25TWProcess
Unconnected End Points in services25TWProcess
Large Coach Views with too many controls - (Atomic Coach Views)24CoachView
Prototype Event Handler not enabled for multiple usages in a Coach25CoachView
by (16.3k points)
Global Change handler25CoachView
Excessive change handlers24CoachView
Missing JS Null check before method invocation24Script
Unconnected Boundary Events on a Coach26Coach
Coach views without binding26CoachView
Binding and config option usage without NULL check26CoachView
Large number of private variables for service25TWProcess
Large number of private variables for BPD25BPD
Large number of private variables for CSHS/HHS25TWProcess
Service private variables not used24TWProcess
HHS/CSHS private variables not used24TWProcess
Excessive Boundary Events26CoachView
Too many custom HTML in a Coach25Coach
Default System Service in BPD24BPD
Default Human Service in BPD24BPD
Un-used Variables24TWClass
Auto Save Timer25CoachView
Business Data Lookup in a Loop25Script
Depcreated Coaches Toolkit Usage25Application/Model
Deprecated Responsive Coaches Toolkit Usage25Application/Model
Deep Copy in a Loop26Script
Wrong version of system toolkit26Application/Model
EPVs usage in Server Script24TWProcess
Mutually dependent toolkits25ProjectDependency
Sequential system lane activities -(String of pearls)25BPD
Save execution context checked25TWProcess
Level of Business Data Exposure by Application25BPD
Level of Business Data Exposure by BPD25BPD
Hard Coded WSDL Endpoint25TWProcess
TWProcess
by (16.3k points)

All User Exposure Service25TWProcess
Hard Coded JNDI Name25TWProcess
Non-Ending HHS/CSHS24TWProcess
Too many steps in a service flow25TWProcess
String Concatenation33Script
Missing CV Localizations31ResourceBundleGroup
Pre/Post of Start and Exit Points33TWProcess
No Notes in BPD31BPD
Deprecated in Process Label Description32TWProcess
Link Name Untitled1-n31TWProcess
Too Many Pre Post Defined Service33TWProcess
Default Labels for Process Steps32TWProcess
Junk Managed Asset uploaded but not saved33ManagedAsset
Junk CSHS File created but not saved due to WebPD error PO_NAME 64 char33TWProcess
CSHS marked Nested but not used as nested34TWProcess
PO Count Too Large Split into multiple applications/toolkits33Application/Model
Mix of CSHS and HHS33Application/Model
Local floating copies of Controls31CoachView
Mixed usage of dojo, jquery and DOM methods33CoachView
Controls event handlers not leveraged31CoachView
Coaches without validation handlers31Coach
Mixed usage of responsive and non-responsive coach views33CoachView
Coaches used without templates31Coach
Javascript alert messages32CoachView
Wrong type of bound data31Coach
Coach View services defined but not used31CoachView
CSS define after JS (js may be dependent on css)31CoachView
Combine multiple css files31CoachView
Combine multiple JS files31CoachView
Conflicting DOM ids - non-usage of $$viewDOMID$$32CoachView
Usage of lifecycle view() in Load33CoachView
Usage of lifecycle change() as event handler33CoachView
Unused ENV31EnvironmentVariableSet
Unused EPV31EPV
Regular Coach View Defined as a template32CoachView
Not implemented Boundary Event checked31CoachView
Resource Bundle linked but not used33TWProcess
ENV linked but not used33TWProcess
EPV linked but not used33TWProcess
Hard Coded Coach Views labels31CoachView
Coach View without preview HTML/JS Snipped32CoachView
Hidden Coach Views in CSS/HHS31Coach
Duplicate CSS class declaration31CoachView
Ajax calls without Error Handler defined33CoachView
Use of Generics (ANY class)31TWClass
Unused JS Functions31Script
AMD dependencies defined but not used33CoachView
Business objects not needed and not nullified32BPD
Duplicate js/css usage in Coach Views33CoachView
Style coach view (only css)31CoachView
Unwanted artificats (e.g. TODO, 2, "2 2" etc)31Application/Model
Javascript set as AMD module but not used31CoachView
Unused Config Options in Coach Views33CoachView
Serializer Usage32Script
EPV and ENV usage without typecasting31Script
Duplicate environment variables across Toolkits and Process App32Application/Model
Non-standard XML parsing32Script
Unused Toolkits33Application/Model
Not used Resouce Bundles33ResourceBundleGroup
Not used services33TWProcess
Floating static resources31ManagedAsset
Default values set for input variables33TWProcess
Outdated toolkit versions33Application/Model
No usage of Decision Services31Application/Model
Validation Errors31TWProcess
Insufficient Logging31TWProcess
JS Code not indented31Script
Governance Process not used31Application/Model
Missing Error Handling Web Services33TWProcess
Missing Error Handling DB/SQL Calls33TWProcess
General JS Bad Practices31Script
Duplicate Managed Assets32ManagedAsset
Naming Convention Check33ProcessVariable
Polling pattern in Coach33TWProcess
Complicated and Large Validation Logic33TWProcess
JS loaded as server file33ManagedAsset
Dynamic WSDLs instead of static Local Copies33TWProcess
JavaScript Hard Codings32Script
Excessive Logging33Script
Customization of CSS without themes31CoachView
Error Handlers without Human Service33TWProcess
Large Toolkits32ProjectDependency
Too many Toolkits33ProjectDependency
Live Connect Usage32Script
Thread.sleep Usage33Script
Large Managed Assets32ManagedAsset
Repeated JS Functions31Script
Loops within Loops33Script
Image Optimization32ManagedAsset
CSS Minification32ManagedAsset
Javascript Minification32ManagedAsset
Code Quality Score of ApplicationApplication/Model
CSS Minification in zip fileManagedAsset
js minification in zip fileManagedAsset
Too Many Pre Post Defined BPDBPD
Unreachable Service Flow (Dead Code)TWProcess
Non Ending CSHSTWProcess
Validation Errors BPDBPD
Modified System ToolkitsProjectDependency
Wrong version of system toolkits inside attached toolkitsProjectDependency
Unimplemented Service only start and endTWProcess
Unimplemented BPD only start and endTWProcess
No steps service start->End

Related questions

+1 vote
1 answer 1.7k views
–1 vote
1 answer 1.3k views
0 votes
0 answers 291 views
0 votes
1 answer 1.5k views
0 votes
1 answer 1.6k views
0 votes
1 answer 1.6k views
+1 vote
0 answers 1.3k views

635 questions

495 answers

98 comments

2.9k users

Join BPM Community Discord Channel

Welcome to BPM Tips Q&A, Community wiki/forum where you can ask questions and receive answers from other IBM BPM experts and members of the community. Users with 2000 points will automatically be promoted to expert level.
Created by Dosvak LLC
Our Youtube Channel
...