The company is quite dispersed. The operations of the company are based on independent teams. The teams differ in many ways. They have different organizational backgrounds, different technologies in use, different products and customers and also very different compositions. Each of these teams is responsible for their own software development, production and sales. In addition to this, they can be quite separated from each other even physically. This makes it difficult to know what others in the organization are doing. Even the team leaders do not mostly know what the others, on an equal level in the organization, are working on. Due to this, the teams are making the software from scratch fairly often. This also leads to a problem that too often the teams do overlapping programming and software development work. This unnecessary overlap in the software development process naturally causes extra costs for the company.