Wednesday, May 11, 2022

What is important to decide at the very beginning of a software development project

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.

Formulation of goals and objectives of the project

When formulating the goal and objectives of the project, a document should be created that answers the following questions:

  • How is the subject area for this project determined? What terms are used in the subject area? What business processes affected by the project take place in the subject area?
  • What is the purpose of the project? What effect should the developed system have on the business processes of the subject area?
  • What tasks need to be solved in order to achieve the goal? By what criteria will the quality of the solution of the tasks set be evaluated? What are the functional and non-functional indicators of the quality of the developed system?
  • What time limits, resources, budget are imposed on the implementation of the project?


The answers to these questions should allow the executors to formulate the concept of the project and assess its relevance and feasibility. For the customer, the correctness of the answers to these questions is important, because this information sets the criteria by which the customer can decide whether to entrust the work to one or another contractor.

What is important to decide at the very beginning of a software development project

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 cas...