Method for operating a computer system with a plurality of servers (A, B, C) that execute software services, wherein a controller assigns services to servers (A, B or C) of the plurality, characterized in that the controller periodically records a numerical value of the actual load that services in operation place on the servers (A, B, C), said services including a particular service, and upon receiving a request (REQU) for executing the particular service, the controller estimates an expected load by reading the numerical value for the load recorded for that particular service from record, and assigns the particular service to a particular server that has a capacity greater or equal the expected load, wherein the load of a service (Lo) is a numerical value indicating to what extend a service demands computation from a server (A, B, C), the capacity (Ca) of a server (A, B, C) is a numerical value indicating computation that the server (A, B, C) offers to services, said capacity (Ca) being determined as the maximum capacity (CaMAX) minus the actual load of all services on that server; and said load (Lo) and said capacity (Ca) are measured in any one of operations per time, memory consumption, number of standard-sized services that are performed simultaneously, number of memory accesses per time, central processing unit time and database time; wherein the controller processes said load (Lo) and capacity (Ca) by using categories and the step of assigning a particular service to a particular server comprises assigning the particular service to a particular server that has a capacity category matching the category of the expected load, wherein said processing of load (Lo) and capacity (Ca) includes relating measurement values of said load (Lo) and capacity (Ca) to categories, and wherein said method further comprises: the step of re-categorizing by the controller said load (Lo) and capacity (Ca) as the time progresses, thereby considering changes of load (Lo) and capacity (Ca) over time. the controller periodically records a numerical value of the actual load that services in operation place on the servers (A, B, C), said services including a particular service, and upon receiving a request (REQU) for executing the particular service, the controller estimates an expected load by reading the numerical value for the load recorded for that particular service from record, and assigns the particular service to a particular server that has a capacity greater or equal the expected load, wherein the load of a service (Lo) is a numerical value indicating to what extend a service demands computation from a server (A, B, C), the capacity (Ca) of a server (A, B, C) is a numerical value indicating computation that the server (A, B, C) offers to services, said capacity (Ca) being determined as the maximum capacity (CaMAX) minus the actual load of all services on that server; and said load (Lo) and said capacity (Ca) are measured in any one of operations per time, memory consumption, number of standard-sized services that are performed simultaneously, number of memory accesses per time, central processing unit time and database time; wherein the controller processes said load (Lo) and capacity (Ca) by using categories and the step of assigning a particular service to a particular server comprises assigning the particular service to a particular server that has a capacity category matching the category of the expected load, wherein said processing of load (Lo) and capacity (Ca) includes relating measurement values of said load (Lo) and capacity (Ca) to categories, and wherein said method further comprises: the step of re-categorizing by the controller said load (Lo) and capacity (Ca) as the time progresses, thereby considering changes of load (Lo) and capacity (Ca) over time.