English | Русский

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:

  1. A designer creates a site design in the form of design layout
  2. Front-end developer create static HTML/CSS pages based on the design layout
  3. Programmer creates templates from these static pages and then writes some JavaScript

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:

  1. Design of the website can change at any time, we must be ready for this
  2. HTML/CSS code is developing together with the design, ready to its changes
  3. Programmer and front-end developers are working together on the website codebase, contributing to the each other code

The conditions of the methodology emergence

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.

Read more