Usually the website development process is based on the assumption that design and technical requirements will not change.
A designer, a front-end developer and a programmer work each in their field, often without interfering each other:
Such an approach works well only in the case if the website design remains the same all the time of his life and the changes only add more content.
But usually that is not happening. The website begins to live its own life being constantly developed. The design of the pages is gradually changing, new pages and new blocks are being added on them.
If the website source code is not following the defined structure, if its development is not based on fixes rules, it gradually becomes more and more difficult to maintain. The website code gets beyond the control of its developers.
In accord to BEM-methodology all the people taking part in the development of the website are working with a single codebase and are using the same terms to communicate, the same language:
BEM-methodology was developed at Yandex while working on a large number of web services, and is aimed to achieve following:
For years we kept looking for solutions to our problems, and at one point they became BEM methodology.