AMMERSE Impact Analysis

AMMERSE Impact Analysis
Author: Stijn Dejongh
Published on: 2024-05-24 00:00:00 +0000 UTC
3 formats available: HTML / XML / JSON
Ammerse Values :
A: Mi: M: E: R: S: Ex:

Problem Statement

You want to ensure balanced and well-informed decision-making that aligns with desired (organizational) core values.

Intent

  • Based on the values of the AMMERSE framework (Agile, Minimal, Maintainable, Environmental, Reachable, Solvable, and Extensible), assess the direct and indirect effects of a decision.
  • Achieve a nuanced understanding of the broader implications of your decisions and actions.
  • Make informed choices that align with your strategic goals.
  • Introduce quantitative reasoning to indicate the impact of decisions on key values.

Solution

The AMMERSE Impact Analysis involves several steps:

  1. Define the Practice, Technique, or Decision: Clearly define what is being evaluated, along with its context and how it relates to the AMMERSE values.
  2. Calculate Impacts: Assign interaction weights (from -1 to 1) for both first-order (direct) and second-order (indirect) impacts. Perform a subjective assessment for each value, providing a rationale for the impact value. Evaluate the positive and negative aspects separately, then combine them into a single impact value.
  3. Aggregate and Summarize: Aggregate the impacts, and summarize the findings. Focusing on any negative, or unexpected, interactions. Provide recommendations based on the comprehensive analysis.

The AMMERSE Impact Analysis is a comprehensive framework assessing the impact of practices, techniques, and decisions on seven AMMERSE values. By examining both direct and indirect effects, this algorithm provides a detailed picture of how changes can influence a system, helping stakeholders make informed decisions. This approach is based on the AMMERSE framework for decision-making.

Key component: AMMERSE VALUES

The AMMERSE decision-making framework defines seven core values that guide decision-making processes:

  • Agile (A): The ability to adapt quickly to changes, incorporate feedback, and maintain flexibility in processes and decision-making.
  • Minimal (Mi): The focus on simplicity and avoiding unnecessary complexity in processes and systems.
  • Maintainable (Ma): The ease of keeping processes and systems in working condition over time.
  • Environmental (E): Considering the broader context, including cultural fit, impact on nature and society, standards, and ethical considerations.
  • Reachable (R): Setting practical goals and ensuring they are achievable within the given constraints.
  • Solvable (S): The ability to effectively solve problems and address challenges that arise.
  • Extensible (Ex): The capacity to extend or scale processes and systems to meet future needs.

Step-by-step: performing the AMMERSE Impact Analysis

  1. Define the Practice, Technique, or Decision

    • Description: Clearly define the practice, technique, or decision being evaluated.
    • Identify Context: Identify the system in which this practice or decision will be applied (organization, software project, personal life, etc.).
  2. Define Base Impacts: Assign subjective value to represent base impact of the practice on each AMMERSE value

    • Interaction weights range from -1 to 1, indicating significantly negative (-1), neutral (0), or significantly positive (1) impacts.
    • Definition: Provide a clear definition of the AMMERSE value being evaluated.
    • Subjective Assessment: For each AMMERSE value, evaluate the impact of applying the pattern in an existing context and whether it would increase or decrease the contextual support of the AMMERSE value.
      • Split Evaluation: Evaluate the positive and negative aspects of the practice separately.
      • Combined Impact: Combine the positive and negative impacts into a single impact value.
    • Describe Rationale: Explain the reasoning behind the impact value assigned to each AMMERSE value.
  3. Apply First-Order and Second order Interaction Impacts

    • Feedback Loop impact: define how much you want to take the feedback loops into account for the final result. A suggested approach is: base value + 0.5 first-order impact + 0.25 second-order impact.
    • Use heuristic Calculation: Use predefined heuristic calculations to determine the first- and second-order impacts.
      • Agile Value: A + 0.5 * ((-0.5 * Mi) + (0.25 * Ma) + (0 * E) + (-0.75 * R) + (0.5 * S) + (0.5 * Ex) / 6) + 0.25 * ( (-0.69 * Mi) + (0.25 * Ma) + (0.05 * E) + (-1 * R) + (0.82 * S) + (0.56 * Ex) / 6)
      • Minimal Value: Mi + 0.5 * ((-0.5 * A) + (0.75 * Ma) + (0.5 * E) + (0.75 * R) + (0.75 * S) + (-0.75 * Ex) / 6) + 0. 25 * ((-0.69 * A) + (0.25 * Ma) + (0.05 * E) + (-1 * R) + (0.82 * S) + (0.56 * Ex) / 6)
      • Maintainable Value: Ma + 0.5 * ((0.6 * A) + (-0.5 * Mi) + (0.4 * E) + (0.7 * R) + (0.5 * S) + (-0.4 * Ex) / 6) + 0. 25 * ((0.25 * A) + (-0.5 * Mi) + (0.05 * E) + (-1 * R) + (0.82 * S) + (0.56 * Ex) / 6)
      • Environmental Value: E + 0.5 * ((0 * A) + (0.5 * Mi) + (0.4 * Ma) + (0 * R) + (0.5 * S) + (0 * Ex) / 6) + 0.25 * ( (0.05 * A) + (0.56 * Mi) + (0.33 * Ma) + (0 * R) + (0.33 * S) + (0.15 * Ex) / 6)
      • Reachable Value: R + 0.5 * ((0.7 * A) + (0.35 * Mi) + (0.35 * Ma) + (0 * E) + (0 * S) + (-0.95 * Ex) / 6) + 0.25 * ( (-1 * A) + (0.82 * Mi) + (0.64 * Ma) + (0.33 * E) + (1 * S) + (-0.95 * Ex) / 6)
      • Solvable Value: S + 0.5 * ((0.5 * A) + (0.35 * Mi) + (0.35 * Ma) + (0.5 * E) + (0.75 * R) + (0.64 * Ex) / 6) + 0.25 ((0.82 * A) + (1 * Mi) + (0.82 * Ma) + (0.38 * E) + (1 * R) + (0.64 * Ex) / 6)
      • Extensible Value: Ex + 0.5 * ((0.56 * A) + (-0.75 * Mi) + (0.56 * Ma) + (0.15 * E) + (-0.95 * R) + 0 * S / 6) + 0. 25 * ((0.56 * A) + (-0.95 * Mi) + (0.56 * Ma) + (0.15 * E) + (-0.95 * R) + 0 * S / 6)
  4. Summarize Findings

    • Rationale: For each AMMERSE value, provide a rationale for the impact assessment.
    • Impact Summary: Summarize the findings from both first- and second-order analyses.
    • Consideration: Reflect on the implications of the practice or decision based on the analysis, focussing on the negative (or unexpected) interactions.
    • Recommendations: Provide recommendations for mitigation or additional thought based on the comprehensive analysis.

Contextual forces

Enablers

The following factors support effective application of the practice:

  • Framework Knowledge: Understanding of trade-offs, systemic thinking, and the AMMERSE framework for value alignment.
  • Alignment: Effective communication within the team, and a shared vision.
  • Desire for structural evaluations: Stakeholder commitment to regular review and adaptation. A need for deep analysis of decisions and practices.
  • Contextual Awareness: Understanding of the context in which the evaluated decision is taken.

Deterrents

The following factors prevent effective application of the practice:

  • Lack of knowledge: Lack of understanding of AMMERSE, or lack of understanding of the concept of trade-offs.
  • Gung Ho Execution: Rushed, or inconsistent application of the analysis.
  • Risk Aversion: Resistance to change from stakeholders.
  • Unknown Situations: Limited knowledge of the context in which the evaluated decision is taken. Lack of even the most basic conceptual model of the system in which the decision will have an impact.

Application

Considerations

  • Apparent Objectivity: Though the analysis looks very objective due to the numbers and lengthy calculations, each step in the analysis is based on subjective assessments and heuristic shortcuts.
  • Heavy-weight Approach: The analysis will hinder adaptability, and introduce delays, by its time-consuming nature and tendency to slow down decision-making processes.

Mitigation strategies

  • Training and Education: Provide training on the AMMERSE framework and the impact analysis algorithm to ensure a shared understanding of its goal, and emphasize how it remains -in essence- an “informed guessing” technique.
  • Reality check: Combine quantitative data with qualitative insights for a holistic view.
  • Simplification: Streamline the analysis process to minimize initial complexity and enhance practical application.
  • Pragmatic Adoption: Use this analysis technique for high-risk, critical decision, or in large, complex, and risk-averse organizations. Most decisions can be made with less analysis, and effort.

Interaction Impact Matrices

To facilitate the AMMERSE Impact Analysis Algorithm and avoid recalculation or overly complex interaction assessments, it is wise to use predefined interaction impact matrices. For this purpose, the following interaction impact matrices are provided:

First-Order Impact Matrix

The values in the matrix are the direct impacts of the row value on the column value. First-order impact reasoning provides a straightforward and immediate understanding of how a change will affect each AMMERSE value, making it ideal for quick assessments and initial evaluations.

XAGILEMINIMALMAINTAINABLEENVIRONMENTALREACHABLESOLVABLEEXTENSIBLE
AGILE0-0.50.250-0.750.50.5
MINIMAL-0.500.750.50.750.75-0.75
MAINTAINABLE0.250.7500.250.50.50.75
ENVIRONMENTAL00.50.25000.250
REACHABLE-0.750.750.5000.75-0.75
SOLVABLE0.50.750.50.250.7500.5
EXTENSIBLE0.5-0.75-0.750-0.750.50

Calculating the first-order impact of the other values on the Agile value, we can use the following formula: modifier * ((-0.5 * Mi) + (0.25 * Ma) + (0 * E) + (-0.75 * R) + (0.5 * S) + (0.5 * Ex) / 6). The modifier is how much the first-order feedback loops should be taken into account for the final result.

Second-Order Impact Matrix

The values in the matrix are the compounded effects of interactions through intermediate values, providing a more comprehensive view. This offers a deeper insight into how changes propagate through the system, revealing indirect and long-term effects, making it valuable for strategic planning and understanding complex system dynamics. The values in this matrix are calculated by multiplying the first-order impact matrix with itself, this simulates applying the feedback loop twice.

XAGILEMINIMALMAINTAINABLEENVIRONMENTALREACHABLESOLVABLEEXTENSIBLE
AGILE0-0.8750.43750.1875-1.31250.8750.75
MINIMAL-0.87501.1250.8751.251.5-1.25
MAINTAINABLE0.43751.12500.562511.250.875
ENVIRONMENTAL0.18750.8750.562500.56250.6250.3125
REACHABLE-1.31251.2510.562501.5-1.25
SOLVABLE0.8751.51.250.6251.501
EXTENSIBLE0.75-1.250.8750.3125-1.2510

Normalizing this table, gives us:

XAGILEMINIMALMAINTAINABLEENVIRONMENTALREACHABLESOLVABLEEXTENSIBLE
AGILE0-0.690.250.05-10.820.56
MINIMAL-0.6900.750.560.821-0.95
MAINTAINABLE0.250.7400.330.640.820.56
ENVIRONMENTAL0.050.560.3300.330.380.15
REACHABLE-10.820.640.3301-0.95
SOLVABLE0.8210.820.38100.64
EXTENSIBLE0.56-0.950.560.15-0.950.640

Calculating the second-order impact of the other values on the Agile value, we can use the following formula: modifier * ((-0.69 * Mi) + (0.25 * Ma) + (0.05 * E) + (-1 * R) + (0.82 * S) + (0.56 * Ex) / 6). The modifier is how much the second-order feedback loops should be taken into account for the final result.

Examples

Applying the AMMERSE Impact Analysis on the “Let’s not make it complicated / Avoid gold plating” pattern

Define the Practice, Technique, or Decision

Description: The “Avoid Gold-Plating” pattern advises developers to avoid over-designing and over-engineering software. The focus is on implementing only what is necessary to meet current requirements and avoiding unnecessary complexity.

Identify Context: This practice can be applied in software development projects, particularly in organizations that prioritize cost-efficiency, readability, and maintainability. It is especially useful in agile environments where iterative development and frequent updates are common.

Define Base Impacts
  • Agile (A)

    • Definition: Agile refers to the ability to adapt quickly to changes, incorporate feedback, and maintain flexibility in processes and decision-making.
    • Subjective Assessment:
      • Positive Aspects: The pattern encourages focusing on current needs, allowing for quicker iterations and adaptations.
      • Negative Aspects: Frequent future changes might require refactoring, which could slow down the process.
    • Combined Impact: +0.6 (focus on current needs and adaptability) - 0.2 (potential future refactoring) = 0.4
    • Rationale: The pattern aligns well with agile principles by promoting flexibility and rapid adaptation but may lead to future refactoring.
  • Minimal (Mi)

    • Definition: Minimal focuses on simplicity and avoiding unnecessary complexity in processes and systems.
    • Subjective Assessment:
      • Positive Aspects: Encourages simplicity and avoids over-engineering, reducing unnecessary complexity.
      • Negative Aspects: While there is a risk of under-designing, this is better captured in Maintainable and Extensible values.
    • Combined Impact: +0.7 (simplicity) - 0.05 (potential under-design) = 0.65
    • Rationale: The pattern promotes simplicity effectively, with minimal risk of under-design.
  • Maintainable (Ma)

    • Definition: Maintainable emphasizes the ease of keeping processes and systems in working condition over time.
    • Subjective Assessment:
      • Positive Aspects: Improves code readability and maintainability by avoiding unnecessary features.
      • Negative Aspects: Potential technical debt if future requirements are not considered.
    • Combined Impact: +0.4 (readability and maintainability) - 0.2 (potential technical debt) = 0.2
    • Rationale: The pattern enhances maintainability in the short term but may create technical debt in the long term.
  • Environmental (E)

    • Definition: Environmental considers the broader context, including cultural fit, standards, and ethical considerations.
    • Subjective Assessment:
      • Positive Aspects: Aligns with cost-sensitive and efficiency-focused environments.
      • Negative Aspects: May conflict with cultures that prioritize long-term planning and future-proofing.
    • Combined Impact:+0.2 (alignment with cost-sensitive environments) - 0.2 (conflict with long-term planning cultures) = 0
    • Rationale: The pattern suits cost-sensitive environments but may not align with long-term planning cultures, resulting in a negligible overall impact.
  • Reachable (R)

    • Definition: Reachable pertains to the practicality and attainability of goals and processes.
    • Subjective Assessment:
      • Positive Aspects: Sets practical, attainable goals by focusing on immediate needs.
      • Negative Aspects: May result in frequent adjustments and updates, but this is mitigated by the practicality of immediate goals.
    • Combined Impact: +0.5 (attainable goals) - 0.1 (frequent updates) = 0.4
    • Rationale: The pattern helps set attainable goals with minimal downsides.
  • Solvable (S)

    • Definition: Solvable involves the ability to address and resolve problems effectively.
    • Subjective Assessment:
      • Positive Aspects: Encourages solving current problems effectively without over-engineering.
      • Negative Aspects: Future problems might require significant refactoring.
    • Combined Impact: +0.5 (effective problem-solving) - 0.2 (potential future refactoring) = 0.3
    • Rationale: The pattern supports effective problem-solving for current issues but might necessitate future refactoring.
  • Extensible (Ex)

    • Definition: Extensible refers to the ability to extend and adapt processes to new requirements and contexts.
    • Subjective Assessment:
      • Positive Aspects: Encourages modularity and iterative enhancement.
      • Negative Aspects: Initial implementations might lack extensibility, requiring significant rework in the future.
    • Combined Impact: +0.1 (modularity) - 0.85 (potential significant rework) = -0.75
    • Rationale: The pattern may hinder future extensibility, necessitating significant rework.
Summary of Base Impact Values
  • Agile (A): 0.4
  • Minimal (Mi): 0.65
  • Maintainable (Ma): 0.2
  • Environmental (E): 0
  • Reachable (R):: 0.4
  • Solvable (S): 0.3
  • Extensible (Ex): -0.75
Step 3: Apply First-Order and Second-Order Interaction Impacts
  • Agile (A)
    • First-Order Impact: -0.1333
    • Second-Order Impact: -0.1621
    • Overall Impact: 0.4 + (0.5 * -0.1333) + (0.25 * -0.1621) = 0.2928
  • Minimal (Mi):
    • First-Order Impact: 0.0849
    • Second-Order Impact: 0.1240
    • Overall Impact: 0.65 + 0.5 * 0.0849 + 0.25 * 0.1240 = 0.7170
  • Maintainable (Ma):
    • First-Order Impact: 0.0497
    • Second-Order Impact: 0.1013
    • Overall Impact: 0.2 + 0.5 * 0.0497 + 0.25 * 0.1013 = 0.2980
  • Environmental (E):
    • First-Order Impact: 0.0100
    • Second-Order Impact: 0.0124
    • Overall Impact: 0 + 0.5 * 0.0100 + 0.25 * 0.0124 = 0.0076
  • Reachable (R):
    • First-Order Impact: 0.0196
    • Second-Order Impact: 0.0415
    • Overall Impact: 0.4 + 0.5 * 0.0196 + 0.25 * 0.0415 = 0.4228
  • Solvable (S):
    • First-Order Impact: 0.0735
    • Second-Order Impact: 0.0953
    • Overall Impact: 0.3 + 0.5 * 0.0735 + 0.25 * 0.0953 = 0.3766
  • Extensible (Ex):
    • First-Order Impact: -0.0366
    • Second-Order Impact: -0.0405
    • Overall Impact: -0.75 + 0.5 * -0.0366 + 0.25 * -0.0405 = -0.7698
Step 4: Summarize Findings
Rationale for Impact Assessments
ValueImpact ValueRationale
Agile (A)0.3The pattern encourages focusing on current needs, which aligns with agile principles of flexibility and rapid iteration. However, it may lead to future refactoring.
Minimal (Mi)0.7The pattern promotes simplicity and avoids over-engineering, effectively reducing unnecessary complexity.
Maintainable (Ma)0.3Improves code readability and maintainability by avoiding unnecessary features but may introduce technical debt if future requirements are not considered.
Environmental (E)0Aligns with cost-sensitive and efficiency-focused environments but may conflict with cultures prioritizing long-term planning. The overall impact is negligible.
Reachable (R)0.45Sets practical, attainable goals by focusing on immediate needs, with minimal downsides.
Solvable (S)0.35Encourages solving current problems effectively without over-engineering but future problems might require significant refactoring.
Extensible (Ex)-0.8The pattern may hinder future extensibility, necessitating significant rework.
Impact Summary
ValueImpact
AgilePositive impact on adaptability and flexibility, but potential for future refactoring.
MinimalStrong positive impact on simplicity, with minimal risk of under-design.
MaintainablePositive impact on readability and maintainability, with some risk of technical debt.
EnvironmentalNegligible overall impact.
ReachablePositive impact on setting practical, attainable goals.
SolvablePositive impact on effective problem-solving, but potential for future refactoring.
ExtensibleSignificant negative impact on future extensibility.
Considerations
ValueConsideration
AgileInitial benefits may be offset by future refactoring needs. Ensure interviewers are well-trained to maintain agility.
MinimalStrongly supports simplicity, but future-proofing should be considered.
MaintainableMay lead to technical debt if future needs are overlooked.
EnvironmentalMinimal impact overall.
ReachablePractical goals are beneficial, but frequent updates may be needed.
SolvableEffective for current issues, but future requirements could necessitate significant changes.
ExtensibleLack of initial extensibility could result in substantial rework later.
Recommendations
  • Regular Reviews: Implement regular code reviews to ensure adherence to simplicity principles while considering future requirements.
  • Refactoring: Encourage refactoring to address technical debt and ensure the codebase remains maintainable.
  • Flexible Design Principles: Encourage the use of design patterns that balance simplicity with flexibility, allowing for future enhancements without major overhauls.
  • Developer Education: Train developers on the importance of simplicity and the risks of over-engineering. Highlight successful case studies where avoiding gold plating led to project success.
  • Future-Proofing Guidelines: Develop guidelines that help developers make informed decisions about when to anticipate future needs and when to focus strictly on current requirements.

By addressing these considerations and implementing the recommendations, the “Avoid Gold-Plating” pattern can be effectively integrated into the software development process, maximizing its positive impacts on the AMMERSE values while mitigating potential downsides.