In our work, we try to find a balance between customer requirements and the capabilities of our developers. For the customer it is ideal if the resulting software and hardware has the highest possible quality, usability, reliability, intuitiveness, performance, excellent documentation and many other attributes. At the same time, software development and maintenance should not be excessively expensive. From the developers’ point of view, it is ideal if stresses with deadlines for development and fixes are reduced, developers have as much time flexibility and freedom as possible, and cooperation with the customer is friendly, efficient and at the same time well paid. Putting all these requirements together is a non-trivial optimization task :-).