Towards a Catalogue of Enterprise Architecture Smells
Code Smells are well known in the domain of Technical Debt. They hint at common bad habits that may impair the future quality of the software system. By detecting those Code Smells it is possible to suggest a better solution or, at least, make the developers aware of possible drawbacks. Appropriate tools can check the software automatically and improve the quality assessment accordingly.
However, in terms of Enterprise Architecture (EA), which is a more holistic view of an enterprise including Technical Debt, there does not exist such a concept of Enterprise Architecture Smells.
Since the ideas of Technical Debt and Code Smells have not been transformed appropriately to EA yet, one could develop corresponding concepts. Thus, certain bad habits in EA, namely EA Smells, should be categorized and collected in a catalogue. Furthermore, EA Debt can be established as a counterpart of Technical Debt for the overall enterprise with its architecture. Then again, EA Smells can be a component of EA Debt, working like a metric to rate the quality of data and estimate parts of the EA Debt in an EA Repository.
When this catalogue is maintained and enlarged regularly, a framework could assist in detecting those EA Smells that actually are measurable in such an automated process, like it is done nowadays with Code Smells in Technical Debt.
The main goal of this bachelor thesis is to start the development of such a catalogue to facilitate future design and development of EAs. This catalogue should be expanded and serve as food for thought to also create a corresponding tool for the detection of smells.
Moreover, designers for EAs can rely on the catalogue of known issues and common mistakes to improve their own quality. Once the tools are sophisticated enough, automated detection supports the design process and ongoing change of EAs. This includes the strategic development of EAs with the corresponding roadmaps, as well as design assurance and performance monitoring to assess the quality of data in EA repositories and the compliance with certain standards defined by EA Smells.
Additionally, it represents a valuable usage of the EA Debt concept, even though EA Smells are just a subset of the overall EA Debt. Those benefits motivate the development of the described catalogue.
In order to formulate EA Smells, I will take a look mainly at Code Smells form Technical Debt and their catalogues. Since EA Smells address the architecture of an enterprise and not only software, there are some Code Smells that are suitable for the purpose of transforming them to a more holistic cause.
After choosing some appropriate and maybe more frequently occurring Code Smells, they must be adapted to the domain of EA, resulting in a first, but small, catalogue of EA Smells. Of course, one has to figure out a way to detect those smells in order to draft a program that can identify them.
Said program should serve as a first prototype recognizing smells of the catalogue concerning EA models in a given EA Repository and making suggestions on how to improve the quality of certain elements and eventually the overall repository.
Due to the limited scope of a bachelor thesis, the catalogue and the prototype should be seen as a starting point for further development, as EA smells, for example, can be derived from many other domains as well. Thus, the main focus lies on creating a first catalogue, which has to be expanded in the future. The program should be a small demonstration of how to make use of this catalogue.