Eisenhouwer Matrix

Eisenhouwer #

Quiqr version >= 0.18.10

The eisenhouwer field creates a eisenhouwer matrix canvas which allows editors to prioritize tasks by dragging datapoints. The tasks are stored as datapoints which can optinally contain other meta data. Existing metadata will be kept and can be used in the data point label using the dataSetsDataPointLabelTemplate for configuration.

Please also checkout the latest kitchensink template for eisenhouwer examples. This is quite a complex datatype field.

Font Picker

Font Picker

Properties #

propertyvalue typeoptionaldescription
keystringmandatoryKeys are for internal use and must be unique
titlestringoptionalThe title of the element
tipstringoptional (default: null)Text entered here with markdown formatting is displayed as context help in an overlay box
xScaleTitlestringoptional (default: null)X-Axis Title, (cost)
yScaleTitlestringoptional (default: null)Y-Axis Title, (impact)
labelDoNowstringoptional (default: DO NOW)Quadrant top-left title
labelToPlanstringoptional (default: TO PLAN)Quadrant top-right title
labelDelegatestringoptional (default: DELEGATE)Quadrant bottom-left title
labelDeletestringoptional (default: DELETE)Quadrant bottom-right title
dataSetsPathstringoptional (default: null)Path in data where datasets are stored
dataSetsKeyToLabelbooleanoptional (default: false)Source data is a dictionary, convert to array for Chartjs
dataSetsLabelPathstringoptional (default: null)Path in data where dataset-label are stored
dataSetsDataPointsPathstringoptional (default: null)Path in data where datapoints are stored
dataSetsDataPointsKeyToItembooleanoptional (default: false)Source data is a dictionary, convert to array for Chartjs
dataSetsDataPointPosXPathstringmandatoryPath in datapoints where x-position is stored
dataSetsDataPointPosYPathstringmandatoryPath in datapoints where y-position is stored
dataSetsDataPointLabelTemplatestringoptional (default: x=${point.x}, y=${point.y})Template for creating a datapoint label

Sample #

Configuration #

./quiqr/model/base.
     
dataSetsDataPointLabelTemplate: ${point.task}
dataSetsDataPointPosXPath: .x
dataSetsDataPointPosYPath: .y
dataSetsDataPointsKeyToItem: false
dataSetsDataPointsPath: .data
dataSetsKeyToLabel: false
dataSetsLabelPath: .label
dataSetsPath: .datasets
key: garden_tasks
type: eisenhouwer
xScaleTitle: More Sweat
yScaleTitle: Happy Wild Life
dataSetsDataPointLabelTemplate = "${point.task}"
dataSetsDataPointPosXPath = ".x"
dataSetsDataPointPosYPath = ".y"
dataSetsDataPointsKeyToItem = false
dataSetsDataPointsPath = ".data"
dataSetsKeyToLabel = false
dataSetsLabelPath = ".label"
dataSetsPath = ".datasets"
key = "garden_tasks"
type = "eisenhouwer"
xScaleTitle = "More Sweat"
yScaleTitle = "Happy Wild Life"
{
   "dataSetsDataPointLabelTemplate": "${point.task}",
   "dataSetsDataPointPosXPath": ".x",
   "dataSetsDataPointPosYPath": ".y",
   "dataSetsDataPointsKeyToItem": false,
   "dataSetsDataPointsPath": ".data",
   "dataSetsKeyToLabel": false,
   "dataSetsLabelPath": ".label",
   "dataSetsPath": ".datasets",
   "key": "garden_tasks",
   "type": "eisenhouwer",
   "xScaleTitle": "More Sweat",
   "yScaleTitle": "Happy Wild Life"
}

Output #

garden_tasks:
  datasets:
    - label: Garden Tasks
      data:
        - x: 12.0
          'y': 17.6
          task: Paint the barn
        - x: 59.3
          'y': 75.5
          task: Grow strawberries
        - x: 11.2
          'y': 79.9
          task: Dig a pond

Sample 2 #

Configuration #

./quiqr/model/base.
     
dataSetsDataPointLabelTemplate: |-
  ${point.RiskCode}
  ${point.QuestionTitle}  
dataSetsDataPointPosXPath: .REPORT.importance_number_of_100
dataSetsDataPointPosYPath: .REPORT.cost_number_of_100
dataSetsDataPointsKeyToItem: true
dataSetsKeyToLabel: true
key: well_architected_improvements
labelDelegate: DELEGATE
labelDelete: DELETE
labelDoNow: DO NOW
labelToPlan: TO PLAN
type: eisenhouwer
xScaleTitle: Cost of Mitigation
yScaleTitle: Risk Importance
dataSetsDataPointLabelTemplate = "${point.RiskCode}\n${point.QuestionTitle}"
dataSetsDataPointPosXPath = ".REPORT.importance_number_of_100"
dataSetsDataPointPosYPath = ".REPORT.cost_number_of_100"
dataSetsDataPointsKeyToItem = true
dataSetsKeyToLabel = true
key = "well_architected_improvements"
labelDelegate = "DELEGATE"
labelDelete = "DELETE"
labelDoNow = "DO NOW"
labelToPlan = "TO PLAN"
type = "eisenhouwer"
xScaleTitle = "Cost of Mitigation"
yScaleTitle = "Risk Importance"
{
   "dataSetsDataPointLabelTemplate": "${point.RiskCode}\n${point.QuestionTitle}",
   "dataSetsDataPointPosXPath": ".REPORT.importance_number_of_100",
   "dataSetsDataPointPosYPath": ".REPORT.cost_number_of_100",
   "dataSetsDataPointsKeyToItem": true,
   "dataSetsKeyToLabel": true,
   "key": "well_architected_improvements",
   "labelDelegate": "DELEGATE",
   "labelDelete": "DELETE",
   "labelDoNow": "DO NOW",
   "labelToPlan": "TO PLAN",
   "type": "eisenhouwer",
   "xScaleTitle": "Cost of Mitigation",
   "yScaleTitle": "Risk Importance"
}

Output #

well_architected_improvements:
  costOptimization:
    cloud-financial-management:
      ImprovementPlanUrl: >-
                https://wa.aws.amazon.com/wellarchitected/2024-06-27T08-00-00/TypeII/en/wellarchitected/wellarchitected.cloud-financial-management.improvement-plan.en.html
      ImprovementPlans: []
      PillarId: costOptimization
      QuestionId: cloud-financial-management
      QuestionTitle: How do you implement cloud financial management?
      REPORT:
        cost_number_of_100: 76.74060382008626
        importance_number_of_100: 23.400850580624386
        short-med-long: short
        show: true
      Risk: MEDIUM
      RiskCode: COST01
      _label: cloud-financial-management
      x: 23.400850580624386
      'y': 76.74060382008626
    evaluate-cost-effort:
      ImprovementPlanUrl: >-
                https://wa.aws.amazon.com/wellarchitected/2024-06-27T08-00-00/TypeII/en/wellarchitected/wellarchitected.evaluate-cost-effort.improvement-plan.en.html
      ImprovementPlans: []
      PillarId: costOptimization
      QuestionId: evaluate-cost-effort
      QuestionTitle: How do you evaluate the cost of effort?
      REPORT:
        cost_number_of_100: 57.779886148007584
        importance_number_of_100: 25.392970613283993
        short-med-long: long
        show: true
      Risk: MEDIUM
      RiskCode: COST11
      _label: evaluate-cost-effort
      x: 25.392970613283993
      'y': 57.779886148007584
    govern-usage:
      ImprovementPlanUrl: >-
                https://wa.aws.amazon.com/wellarchitected/2024-06-27T08-00-00/TypeII/en/wellarchitected/wellarchitected.govern-usage.improvement-plan.en.html
      ImprovementPlans: []
      PillarId: costOptimization
      QuestionId: govern-usage
      QuestionTitle: How do you govern usage?
      REPORT:
        cost_number_of_100: 11.606578115117017
        importance_number_of_100: 32.231378439747424
        short-med-long: short
        show: true
      Risk: HIGH
      RiskCode: COST02
      _label: govern-usage
      x: 32.231378439747424
      'y': 11.606578115117017
    manage-demand-resources:
      ImprovementPlanUrl: >-
                https://wa.aws.amazon.com/wellarchitected/2024-06-27T08-00-00/TypeII/en/wellarchitected/wellarchitected.manage-demand-resources.improvement-plan.en.html
      ImprovementPlans: []
      PillarId: costOptimization
      QuestionId: manage-demand-resources
      QuestionTitle: How do you manage demand, and supply resources?
      REPORT:
        cost_number_of_100: 89.52556993222429
        importance_number_of_100: 9.406125135072086
        short-med-long: long
        show: true
      Risk: HIGH
      RiskCode: COST09
      _label: manage-demand-resources
      x: 9.406125135072086
      'y': 89.52556993222429
    monitor-usage:
      ImprovementPlanUrl: >-
                https://wa.aws.amazon.com/wellarchitected/2024-06-27T08-00-00/TypeII/en/wellarchitected/wellarchitected.monitor-usage.improvement-plan.en.html
      ImprovementPlans: []
      PillarId: costOptimization
      QuestionId: monitor-usage
      QuestionTitle: How do you monitor your cost and usage?
      REPORT:
        cost_number_of_100: 84.97786211258696
        importance_number_of_100: 58.14894410204381
        short-med-long: short
        show: true
      Risk: HIGH
      RiskCode: COST03
      _label: monitor-usage
      x: 58.14894410204381
      'y': 84.97786211258696
    type-size-number-resources:
      ImprovementPlanUrl: >-
                https://wa.aws.amazon.com/wellarchitected/2024-06-27T08-00-00/TypeII/en/wellarchitected/wellarchitected.type-size-number-resources.improvement-plan.en.html
      ImprovementPlans: []
      PillarId: costOptimization
      QuestionId: type-size-number-resources
      QuestionTitle: >-
        How do you meet cost targets when you select resource type, size and
        number?        
      REPORT:
        cost_number_of_100: 20.517560073937158
        importance_number_of_100: 5.3496829769409855
        short-med-long: long
        show: true
      Risk: MEDIUM
      RiskCode: COST06
      _label: type-size-number-resources
      x: 5.3496829769409855
      'y': 20.517560073937158
  operationalExcellence:
    dev-integ:
      ImprovementPlanUrl: >-
                https://wa.aws.amazon.com/wellarchitected/2024-06-27T08-00-00/TypeII/en/wellarchitected/wellarchitected.dev-integ.improvement-plan.en.html
      ImprovementPlans: []
      PillarId: operationalExcellence
      QuestionId: dev-integ
      QuestionTitle: >-
        How do you reduce defects, ease remediation, and improve flow into
        production?        
      REPORT:
        cost_number_of_100: 69.80899568699938
        importance_number_of_100: 9.473732504374272
        short-med-long: short
        show: true
      Risk: MEDIUM
      RiskCode: OPS05
      _label: dev-integ
      x: 9.473732504374272
      'y': 69.80899568699938