- Inner-platform effect
The Inner-Platform Effect is the tendency of software architects to create a system so customizable as to become a poor replica of the software development platform they are using. This is generally inefficient and an example of an
anti-pattern .It is normal for software developers to create a library of custom functions that relate to their specific project. The inner-platform effect occurs when this library expands to include general purpose functions that duplicate functionality already available as part of the programming language or platform. Since each of these new functions will generally call a number of the original functions, they tend to be slower and less reliable.
In the
database world, developers are sometimes tempted to bypass the RDBMS, for example by storing everything in one big table with two columns labeled "key" and "value". While this allows the developer to break out from the rigid structure imposed by a relational database, it loses out on all the benefits, since all of the work that could be done efficiently by the RDBMS is forced onto the application instead. Queries become much more convoluted, the indexes and query optimizer can no longer work effectively, and data validity constraints are not enforced.A similar temptation exists for XML, where developers sometimes favor generic element names and use attributes to store meaningful information. For example, every element might be named "item" and have attributes "type" and "value". This practice requires joins across multiple attributes in order to extract meaning. As a result, XPath expressions are more convoluted, evaluation is less efficient, and structural validation provides little benefit.
ee also
*
Second-system effect
*Not Invented Here
*Greenspun's Tenth Rule References
* [http://thedailywtf.com/Articles/The_Inner-Platform_Effect.aspx Original definition and example]
* [http://thedailywtf.com/Articles/The_Enterprise_Rules_Engine.aspx Example: The Enterprise Rules Engine]
* [http://thedailywtf.com/Articles/I_Think_I_0x27_ll_Call_Them__0x26_quot_0x3b_Transactions_0x26_quot_0x3b_.aspx Example: I Think I'll Call Them "Transactions"]
Wikimedia Foundation. 2010.