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:
- Define the Practice, Technique, or Decision: Clearly define what is being evaluated, along with its context and how it relates to the
AMMERSE values.
- 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.
- 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.
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.).
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.
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)
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.
X | AGILE | MINIMAL | MAINTAINABLE | ENVIRONMENTAL | REACHABLE | SOLVABLE | EXTENSIBLE |
---|
AGILE | 0 | -0.5 | 0.25 | 0 | -0.75 | 0.5 | 0.5 |
MINIMAL | -0.5 | 0 | 0.75 | 0.5 | 0.75 | 0.75 | -0.75 |
MAINTAINABLE | 0.25 | 0.75 | 0 | 0.25 | 0.5 | 0.5 | 0.75 |
ENVIRONMENTAL | 0 | 0.5 | 0.25 | 0 | 0 | 0.25 | 0 |
REACHABLE | -0.75 | 0.75 | 0.5 | 0 | 0 | 0.75 | -0.75 |
SOLVABLE | 0.5 | 0.75 | 0.5 | 0.25 | 0.75 | 0 | 0.5 |
EXTENSIBLE | 0.5 | -0.75 | -0.75 | 0 | -0.75 | 0.5 | 0 |
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.
X | AGILE | MINIMAL | MAINTAINABLE | ENVIRONMENTAL | REACHABLE | SOLVABLE | EXTENSIBLE |
---|
AGILE | 0 | -0.875 | 0.4375 | 0.1875 | -1.3125 | 0.875 | 0.75 |
MINIMAL | -0.875 | 0 | 1.125 | 0.875 | 1.25 | 1.5 | -1.25 |
MAINTAINABLE | 0.4375 | 1.125 | 0 | 0.5625 | 1 | 1.25 | 0.875 |
ENVIRONMENTAL | 0.1875 | 0.875 | 0.5625 | 0 | 0.5625 | 0.625 | 0.3125 |
REACHABLE | -1.3125 | 1.25 | 1 | 0.5625 | 0 | 1.5 | -1.25 |
SOLVABLE | 0.875 | 1.5 | 1.25 | 0.625 | 1.5 | 0 | 1 |
EXTENSIBLE | 0.75 | -1.25 | 0.875 | 0.3125 | -1.25 | 1 | 0 |
Normalizing this table, gives us:
X | AGILE | MINIMAL | MAINTAINABLE | ENVIRONMENTAL | REACHABLE | SOLVABLE | EXTENSIBLE |
---|
AGILE | 0 | -0.69 | 0.25 | 0.05 | -1 | 0.82 | 0.56 |
MINIMAL | -0.69 | 0 | 0.75 | 0.56 | 0.82 | 1 | -0.95 |
MAINTAINABLE | 0.25 | 0.74 | 0 | 0.33 | 0.64 | 0.82 | 0.56 |
ENVIRONMENTAL | 0.05 | 0.56 | 0.33 | 0 | 0.33 | 0.38 | 0.15 |
REACHABLE | -1 | 0.82 | 0.64 | 0.33 | 0 | 1 | -0.95 |
SOLVABLE | 0.82 | 1 | 0.82 | 0.38 | 1 | 0 | 0.64 |
EXTENSIBLE | 0.56 | -0.95 | 0.56 | 0.15 | -0.95 | 0.64 | 0 |
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
Value | Impact Value | Rationale |
---|
Agile (A) | 0.3 | The 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.7 | The pattern promotes simplicity and avoids over-engineering, effectively reducing unnecessary complexity. |
Maintainable (Ma) | 0.3 | Improves code readability and maintainability by avoiding unnecessary features but may introduce technical debt if future requirements are not considered. |
Environmental (E) | 0 | Aligns with cost-sensitive and efficiency-focused environments but may conflict with cultures prioritizing long-term planning. The overall impact is negligible. |
Reachable (R) | 0.45 | Sets practical, attainable goals by focusing on immediate needs, with minimal downsides. |
Solvable (S) | 0.35 | Encourages solving current problems effectively without over-engineering but future problems might require significant refactoring. |
Extensible (Ex) | -0.8 | The pattern may hinder future extensibility, necessitating significant rework. |
Impact Summary
Value | Impact |
---|
Agile | Positive impact on adaptability and flexibility, but potential for future refactoring. |
Minimal | Strong positive impact on simplicity, with minimal risk of under-design. |
Maintainable | Positive impact on readability and maintainability, with some risk of technical debt. |
Environmental | Negligible overall impact. |
Reachable | Positive impact on setting practical, attainable goals. |
Solvable | Positive impact on effective problem-solving, but potential for future refactoring. |
Extensible | Significant negative impact on future extensibility. |
Considerations
Value | Consideration |
---|
Agile | Initial benefits may be offset by future refactoring needs. Ensure interviewers are well-trained to maintain agility. |
Minimal | Strongly supports simplicity, but future-proofing should be considered. |
Maintainable | May lead to technical debt if future needs are overlooked. |
Environmental | Minimal impact overall. |
Reachable | Practical goals are beneficial, but frequent updates may be needed. |
Solvable | Effective for current issues, but future requirements could necessitate significant changes. |
Extensible | Lack 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.