Changes between Version 33 and Version 34 of DeveloperGuidelines/Quality


Ignore:
Timestamp:
12/29/13 22:39:46 (11 years ago)
Author:
Dominic König
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DeveloperGuidelines/Quality

    v33 v34  
    164164
    165165  Generalization means to modify and/or extend the core patterns/algorithms of the solution in a way that they can be re-used in other solutions which involve the same or similar functional requirements, thereby reducing future development efforts. There is a wide range of quality attributes - "flexible", "customizable", "re-usable", "extensible", just to name a few - all of which involve different degrees of and approaches to generalization.
    166 
    167   Generalization is though not always the right thing to do:
    168 
    169   - Generalization is generally seen as anti-pattern in isolated use-cases
    170   - Generalization can require massively more development effort than the development of the solution itself, and can therefore be inefficient (low value/effort ratio)
    171   - The impact of and the necessary effort to correct defects and especially design flaws in generic solutions get multiplied by the (intended) re-use of the solution
    172   - Parametrization and introspection add additional processing efforts which can reduce efficiency and scalability below acceptable levels
    173   - Generalization can add additional possible points of failure (additional risk)
    174 
    175   Apart from that, generalization can make maintenance more difficult: developers who do not recognize/understand the general case can (and often do) re-introduce use-case specifics into generic code, thereby reducing its efficiency and flexibility, potentially causing side effects on other solution, and complicating maintenance.
    176166=== Standards ===
    177167