The evolution of programming began at a time when most programs were developed by a single developer. As the complexity of the programs increased, the complexity of their development, debugging and the number of participants in the process also increased, which led to the development of automation systems for programming and organization of teamwork, and later to the development of tools and methods for software design (CASE-tools).