Difference between revisions of "Architecture Antipatterns"
From Suhrid.net Wiki
Jump to navigationJump to search (→Jumble) |
(→Jumble) |
||
Line 28: | Line 28: | ||
** Vertical elements as extensions for specialized functionality and performance. | ** Vertical elements as extensions for specialized functionality and performance. | ||
** Incorporate metadata into the architecture. | ** Incorporate metadata into the architecture. | ||
+ | |||
+ | = Architecture by implication = | ||
+ | |||
+ | * Symptoms: | ||
+ | ** Lack of architecture specifications for a system under development. Usually, the architects responsible for the project have experience with previous system construction, and therefore assume that documentation is unnecessary. | ||
+ | ** Hidden risks caused by scale, domain knowledge, technology, and complexity, all of which emerge as the project progresses. | ||
+ | ** Ignorance of new technologies. | ||
+ | ** Absence of technical backup and contingency plans. | ||
+ | * Causes: | ||
+ | ** Overconfidence of managers, architects, and/or developers. | ||
+ | ** No risk management. | ||
+ | ** Reliance on previous experience. | ||
+ | * Fix: | ||
+ | ** Adopt SEI architecture based process steps. |
Revision as of 03:57, 14 April 2012
Intro
- Arch. antipatterns are common problems and mistakes in the creation, implementation and management of the architecture.
Vendor Lock-in
- Symptoms:
- Commercial component upgrades drive the application software maintenance cycle.
- Commercial component does not subscribe to any open systems standard.
- Causes:
- No technical approach to isolating application software from direct dependency on the product version.
- Fix:
- Introduce an isolation layer
- Hardware abstraction layer
- Adoption of open systems standard and carefully choose components that meet this standard.
Jumble
- Vertical design elements are those dependent on specific software application and individual implementation.
- Horizontal elements are those that are common among applications.
- Symptoms:
- Both the horizontal and vertical design elements get mixed up.
- This makes design less stable and less reusable. Wide change impact.
- Causes:
- No special effort involved, programmers just focused on getting job done.
- Fix:
- Identify the horizontal elements and delegate them to a separate architectural layer.
- Vertical elements as extensions for specialized functionality and performance.
- Incorporate metadata into the architecture.
Architecture by implication
- Symptoms:
- Lack of architecture specifications for a system under development. Usually, the architects responsible for the project have experience with previous system construction, and therefore assume that documentation is unnecessary.
- Hidden risks caused by scale, domain knowledge, technology, and complexity, all of which emerge as the project progresses.
- Ignorance of new technologies.
- Absence of technical backup and contingency plans.
- Causes:
- Overconfidence of managers, architects, and/or developers.
- No risk management.
- Reliance on previous experience.
- Fix:
- Adopt SEI architecture based process steps.