Friday, May 20, 2022

Setting tasks at the software development project

 In fact, it is extremely difficult to determine the exact direction for a project due to the significant degree of uncertainty that exists at the very beginning of a project. Therefore, instead of a narrow vector, in practice, a kind of “cone” is obtained with an axis coinciding with the expected vector of the project development. During the development process, the project will deviate from the given direction, and the wider the cone of uncertainty of the goal, the more the project will “dangle” in this cone. If the goal is not clear, then the project may deviate from the intended vector very far, and as a result, the developed system may not be applicable to solving the real problems assigned to it.

To achieve the goal, the work of more than one performer may be required. For example, to create a system, it may be necessary to develop special hardware or refine some third-party software. Therefore, the setting of tasks that need to be performed by a specific contractor within the framework of the project is as important as the formulation of the goal. The contractor must understand his role in the project, the boundaries of interaction with the customer and other contractors, and other important nuances for the project.

When setting tasks, a special place should be given to formulating the criteria by which the acceptance of work will be carried out. System quality indicators can only be set by the customer, and they are important in assessing the feasibility of the project. Key performance indicators, both functional and non-functional, should be specified. For example, you should specify how many users can work with the system at the same time, for what maximum time the calculated data should be calculated, whether the user interface should be in the corporate style of the customer, etc.

In some cases, the customer prescribes the procedure for accepting work, as well as the possibility of attracting an independent auditor.

Choosing the goal for software development project!

 With the subject area, everything is simple: the customer and the contractor will not be able to understand each other until the customer talks about the terms and business processes that are relevant to the work ahead. I strongly recommend taking the matter formally. Remember that defining a domain is one of the easiest activities in a project, but it sets the foundation for the project. If the programmer misunderstands the customer's business process, he can make an incorrect implementation of the function, and it will be impossible to establish a discrepancy until the customer starts using this function. But by that time, more than one layer of application code will be written over the function, and fixing an error that could have been simply avoided will turn into a very costly business.

The description of the subject area for orders of the same customer often wanders from the documentation of one tender to the documentation of another. This is due to documentation rules. If work is being done on projects of an internal customer or on investment software, sometimes the description of the subject area is displayed in a separate document. In one of the investment projects, we were simultaneously working on three versions of our product. One was under maintenance, the other was in development, and the third was just entering the preparatory stage. Since this was our own project, we had the privilege to independently determine the goals of its development, based on the priorities of our development strategy. Since the team members changed from time to time, it was important that the description of the subject area was constantly available to everyone. And since the subject area changed little from version to version, we separated its description into a separate document common to all versions, and, if necessary, supplemented it.

The goal of the project sets the direction for the development of the project. It should briefly and clearly indicate the effect that the system being created or upgraded will have on the customer's business processes. If the goal is inaccurate, the project will develop in the wrong direction. It is very difficult to deploy the project in another direction, and the more work is done within the framework of the project, the more difficult it will be to correct the direction of its development. Very soon, the project reaches a state where it will be impossible to correct the mistake in setting the goal, and then it will have to start all over again, or completely abandon the project.

Setting tasks at the software development project

 In fact, it is extremely difficult to determine the exact direction for a project due to the significant degree of uncertainty that exists ...