Feature Focus: Custom Portfolio Segmentation

Similar to the recent Portfolio Advisors for Cloud and Open Source, this capability allows portfolio managers to create their own custom portfolio segmentations based on a combination of Software Intelligence insights available in CAST Highlight. This article describes how it works and how to use this capability.

8954

How the custom portfolio segmentation works

This new customizable segmentation capability allows Portfolio Managers to create and display results of their own segmentation configuration for better prioritizing actions and decisions on their application portfolio, extending the product to new possible use cases.

How application segments are calculated
For each application having scan results, CAST Highlight blends relevant Software Intelligence insights, weights, and benchmarks together to determine a recommended segment. The segment calculation is quite simple. For a given application, CAST Highlight evaluates each segment criteria separately and gives points to these segments. These segment points accumulate and the one with the highest point count will be the recommended segment.

After reading this article, you will be able to produce new segmentation dashboards like the one below.

9189
Where to start for creating your segment configuration

As a Portfolio Manager, navigate to MANAGE PORTFOLIO > Manage Segmentation page from the menu, then click on the “Customize” tab.

To start your segmentation configuration from an existing configuration, select one of the available segmentation configurations from the drop-down list at the top of the page. Now, under the “Template Generator” section, type a Segment Group Tag (this will be the identifier for the new segmentation configuration you’re creating) and click on “Download”. This identifier will be automatically embedded in the generated segmentation configuration so that it is unique within your portfolio.

Once downloaded, open this .json file. You’re ready to start configuring your custom segmentation!

Alternatively, you can download a JSON configuration from our extensions marketplace.

 

Structure of a segmentation configuration file

A segmentation configuration file is a JSON file that is structured with the following elements:

  • segmentationGroupRef: the unique identifier of your segmentation configuration
  • name: short name of your segmentation configuration as it will be displayed in the dashboards
  • description: long description of your segmentation configuration as it will be displayed in the dashboards
  • segments (1 to n elements in segments)
    • segmentRef: the unique identifier of the segment
    • name: short name of the segment (will be displayed in the dashboards)
    • description: description of the segment (will be displayed in the dashboards)
    • color: hexadecimal color of the segment (e.g., #ffc600 for yellow)
    • matchingRules (1 to n elements in matchingRules)
      • description: description of a segment criterion
      • formula: formula to evaluate a segment
      • points: points allocated to a segment if the formula is verified for an application
  • segmentationStatus: status of the segmentation configuration (“draft” status won’t expose the segmentation results in the dashboards / ”production” status will expose the segmentation results).

{
  "segmentationGroupRef" : "CustomSegments",
  "name" : "Name of your segmentation configuration (e.g. Portfolio Segments for Cost Optimization)",
  "description" : "Description of your segmentation configuration which will be displayed in the custom segmentation dashboard.",
  "segments" : [ {
    "segmentRef" : "CustomSegments_seg_1",
    "name" : "A first segment name",
    "description" : "A description for this first segment.",
    "color" : "#03CEA4",
    "matchingRules" : [ {
      "description" : "Low Business Impact",
      "formula" : "BI < 30 and BI =is= notnull",
      "points" : 10
    } ]
    }, 
  {
    "segmentRef" : "CustomSegments_seg_2",
    "name" : "A description for a second segment",
    "description" : "Description of your second segment.",
    "color" : "#345995",
    "matchingRules" : [ {
      "description" : "Low or Medium Business Impact",
      "formula" : "BI > 0 and BI < 50 and BI =is= notnull",
      "points" : 20
  } ]
} ],
"segmentationStatus" : "draft"
}

Available metrics for segmentation configurations
For defining segment matching rules, you will need to define the CAST Highlight metrics to be evaluated in segment formulas. Below is the list of the metrics and their corresponding identifiers that you can currently include in the configuration:

 

Metric name Identifier
Lines of code LOC
Business Impact BI
Full-Time Equivalent FTE
Software Health Health
Software Resiliency score Resiliency
Software Agility score Agility
Software Elegance score Elegance
Cloud Maturity score CloudMaturity
Cloud Maturity Scan score CloudScan
Cloud Maturity Survey score CloudSurvey
Cloud Maturity Blocker score CloudBlocker
Cloud Maturity Booster score CloudBooster
Cloud Maturity Estimated Effort CloudEstEffort
Cloud Maturity total roadblocks CloudRoadblock
Cloud Maturity occurrences by Impact level Examples:
cloudRuleImpact:CODING == 0
cloudRuleImpact:FRAMEWORK > 0
cloudRuleImpact:ARCHITECTURE < 50
Cloud Maturity Containerization occurrences by Impact level containerizationRuleImpact:CODING == 0
containerizationRuleImpact:FRAMEWORK == 0
containerizationRuleImpact:ARCHITECTURE == 0
containerizationRuleImpact:CONTAINER == 0
Open Source Safety score OSS
Open Source Safety License Compliance score OSS_license
Open Source Safety Security score OSS_cve
Open Source Safety Obsolescence score OSS_obsolescence
Count of Critical CVEs CriticalCVE
Count of High CVEs HighCVE
Count of Medium CVEs MediumCVE
Count of Low CVEs LowCVE
Count of Advisories Advisories
Count of KEV CVEs KevCVE
Green Impact score GreenImpact
Green Impact Scan score GreenScan
Green Impact Survey score GreenSurvey
Green Effort GreenEffort
Custom Indicator scores CID:{CustomIndicatorId} (gotten when custom indicator is created from the UI)
Survey answer If it is a CAST standard question:
QUESTION_REF_{questionRef} =in= ({questionRef}-{answerRef})
Example: QUESTION_REF_CAST_BI_NBRELEASE =in= (CAST_BI_NBRELEASE:LT3,CAST_BI_NBRELEASE:4TO6)If it is a custom survey question:
QUESTION_ID_{questionId} =in= ({questionId}-{answerId})
Example: QUESTION_ID_1000006 =in= (1000452, 1000453)
Technologies technologies =in= (JAVA, COBOL)

Available technologies: ABAP, ADA, APEX, ASPDOTNET, ASSEMBLY, CCPP, CICS, CLOJURE, COBOL, COFFEESCRIPT, COLDFUSION, CSHARP, DART, DB2, DELPHI, ERLANG, FORTRAN, FS, GO, GROOVY, IMSDB, IMSDC, JAVA, JCL, JS, JSP, KOTLIN, KSH, LISP, LUA, MARIADB, MATLAB, MYSQL, NATURAL, NSDK, OBJCCPP, PERL, PHP, PL1, PLSQL, POSTGRES, POWERBUILDER, PYTHON, R, REXX, RUBY, RUST, SCALA, SMALLTALK, SWIFT, TSQL, TYPESCRIPT, VB.

Segments Segment:Cloud5R =in= (Cloud5R_Seg2, Cloud5R_Seg1)

You can use result of other segmentations in a formula. However, you cannot use a segment which is defined in the current segmentation (cyclic dependency).

 

Formula operators

To configure your custom segments and define how their criteria (matchingRules elements) will be evaluated, you can combine CAST Highlight metrics above in a formula by using the following operators:

Operator Example
and BI > 0 and BI < 50
or Health > 50 or OSS < 30
=is= null FTE =is= null
=is= notnull OSS =is= notnull
> OSS_license > 90
< CloudRoadblock < 500
>= CloudSurvey >= 80
<= CloudScan <= 80
( ) BI > 50 and (CloudSurvey =is= notnull or CloudScan > 50)
=in= QUESTION_REF_CAST_MAINT_DEVSKILL =in= (CAST_MAINT_DEVSKILL:LESS2MONTH,CAST_MAINT_DEVSKILL:6MONTH,CAST_MAINT_DEVSKILL:1YEAR)
=out= QUESTION_REF_CAST_MAINT_DEVSKILL =out= (CAST_MAINT_DEVSKILL:LESS2MONTH,CAST_MAINT_DEVSKILL:6MONTH,CAST_MAINT_DEVSKILL:1YEAR)

9190
Formula Helper

Prior to uploading your segmentation configuration to the platform, we recommend you to use the Formula Helper which can be opened by clicking on the button on top right of the “Customize” tab. Type the formula of the matchingRules you want to apply to a segment by combining metric identifiers and operators together, then click on “Evaluate”. The result indicates whether the formula is valid or not and provides a preview of applications meeting/not meeting the matching rules.

 

Draft vs. Production Configuration

Segmentation is not an exact science, hence the need to test and visualize results prior to deploying your segmentation configuration to users of your organization. Two statuses are possible:

  • draft: this status will allow only Portfolio Managers to preview segmentation dashboards
  • production: this status will display segmentation dashboards for all users

As you can imagine, we recommend uploading your initial segmentation configuration JSON files in draft status to validate them, then re-upload them in production status once the segments, metrics and formulas are stable.

Enjoy your Custom Segmentation dashboard!

Once segmentation configurations are published, Custom Segmentation dashboards have the same capabilities as CAST’s Portfolio Advisors for Cloud and Open Source.

All you have to do is to click on the “Compute” button as soon as you want to visualize segments for your existing application portfolio, or to refresh this segmentation with new application results.

Portfolio Visualization: The output is a unique dashboard where you can quickly view the relative size of each custom segment. The parliament chart on the left displays the portfolio distribution for each segment. Clicking on a specific segment will drill down, automatically filtering the bubble chart on the right to the applications recommended for the selected segment, enabling further prioritization.

Case-by-case app segmentation: Since the custom segmentation model makes recommendations, a Portfolio Manager can manually change the segment of an application. These changes are maintained by clicking on the “Save” button. At any time, users can roll-back to the original CAST-calculated recommended segments.

Export: from the Portfolio Advisor view, click on the “Export” button to generate an Excel report listing all applications with their corresponding segment recommendations and key metrics used for the segmentation.