Wikimedia Engineering Architecture Principles

MediaWiki Platform Architecture Principles
The Wikimedia Technical Committee believes the following goals and principles should guide the Platform Evolution Program and other Wikimedia engineering endeavors.

Engineering Process Considerations
Beyond the above principles governing engineering and product decisions, here are some complementary considerations for the engineering process. They are mentioned here for reference, but should be covered in an exhaustive and prescriptive manner elsewhere:


 * Document the rationale of engineering decisions, make explicit the trade-off considerations.
 * Features and non-functional requirements are constantly traded off against engineering constraints and the estimated cost of overcoming such constraints. This requires constant iteration of the decision making process between product owners and engineers, and should involve the respective communities when appropriate.
 * Failures on all levels should be followed by a post-mortem analysis and documentation.
 * Engineering solution should be "eventually consistent": we should allow for experiments and make breaking changes where needed, but aim for convergence, not insular solutions.