1# OpenBMC Anti-patterns 2 3From [Wikipedia](https://en.wikipedia.org/wiki/Anti-pattern): 4 5 6"An anti-pattern is a common response to a recurring problem that is usually 7ineffective and risks being highly counterproductive." 8 9 10The developers of OpenBMC do not get 100% of decisions right 100% of the time. 11That, combined with the fact that software development is often an exercise in 12copying and pasting, results in mistakes happening over and over again. 13 14 15This page aims to document some of the anti-patterns that exist in OpenBMC to 16ease the job of those reviewing code. If an anti-pattern is spotted, rather 17that repeating the same explanations over and over, a link to this document can 18be provided. 19 20 21<!-- begin copy/paste on next line --> 22 23## Anti-pattern template [one line description] 24 25### Identification 26(1 paragraph) Describe how to spot the anti-pattern. 27 28### Description 29(1 paragraph) Describe the negative effects of the anti-pattern. 30 31### Background 32(1 paragraph) Describe why the anti-pattern exists. If you don't know, try 33running git blame and look at who wrote the code originally, and ask them on the 34mailing list or in IRC what their original intent was, so it can be documented 35here (and you may possibly discover it isn't as much of an anti-pattern as you 36thought). If you are unable to determine why the anti-pattern exists, put: 37"Unknown" here. 38 39### Resolution 40(1 paragraph) Describe the preferred way to solve the problem solved by the 41anti-pattern and the positive effects of solving it in the manner described. 42 43<!-- end copy/paste on previous line --> 44