As a rule, it is the customer, as the bearer of the project idea, who formulates the goal and objectives. But in my practice there was a case when this work had to be done by us, the performers. We had a tender to develop one very specific system for a certain government service. Such projects have a feature: the service "from above" is instructed to develop some system and maintain it, but the service itself, as a rule, is not a user of the system. Naturally, the leadership of the service salutes and announces a competition. But no one in the service itself knows for what purpose and how the product under development will be used. And worst of all, no one cares to know. In such conditions, the original vision of the system from the customer (government service) is almost completely absent. The customer cannot formulate the goals or objectives of the project. We had to climb around all the customer's equipment ourselves, find the necessary technical documentation and reach end users in various government departments. In the end, we successfully completed the project, got a profit, good experience and, most importantly, recommendations from the customer. However, this situation is still an exception. The goals and objectives of the project should be formulated by the bearer of the idea.
Goals and objectives for developing software for an external customer often come to the contractor when a tender is announced in the form of a document called "Technical Requirements". It is important to understand, despite the name, that these are not yet requirements for the system, but rather a statement of the vision of the system through the eyes of the customer.