Today, I have just conducted a workload evaluation for small software. I always feel that the evaluation is not accurate enough and difficult to clarify. I will briefly talk about the troubles with the practices actually used,
In workload evaluation, the main problems that plague me are as follows:
1. unclear requirements and changes
2. The workload evaluation needs to be carried out at the same time as the Requirement Specification Description is prepared. Generally, no detailed requirement research will be conducted if no project is established, but a workload evaluation is required at this time.
3. the system architecture and design have not yet begun. Workload evaluation is often inaccurate at this time. For example, you can use an existing component or reuse someCodeBut it is difficult to determine how much time can be saved and the transformation cost when no detailed design is defined.
4. I don't know what kind of development team I will face. It may take one day or ten days for someone to finish it, but it's hard for you to have a team you know.
Although I have also learned a variety of workload evaluation methods, it is hard to use (it should not be used)
Your practice is as follows:
1. determine the number of modules and the number of pages under each module, and list the requirements, design, development, testing, and deployment time for each module.
2. How many public classes are required?
3. In addition to the project management time, a team of about five people needs a dedicated, non-coding management to do something similar to functional check and code review.
4. Add a certain proportion of change time (depending on the user's historical situation or the user's mind definition)
5. Multiply the final number by a value of 1.5-3 to get the final time. The value 1.5-3 is based on the review history. For example, the workload I evaluated in the past year is probably multiplied by 2, which is the final reality. In this case, when the new project is evaluated (unconditionally multiplied by 2), the time will always be used by users, (Here, I'm ashamed of myself. I don't know where to go for a lot of time in the development process. For example, the user says why there are no pictures on the button, or if it looks nice on the left, these times are gone, and every time they are unpredictable, or what software is installed on the server, I don't know what's wrong, there are a few days of unhappiness, low efficiency, and so on)
Although I have been doing this in the above way, I always think it is not very good, mainly including the following aspects:
1. Poor accuracy. We can see that the accuracy is only about 50%.
2. It's hard to explain why this page takes so long. Why is this function so long? It's just like having a few buttons in your mind and how much code to write, hard to repeat
3. The evaluation workload is difficult to match with the actual design workload. After the design, some parts may be more common than the expected workload, and some may be public and reduced.
It is hard to understand how the workload evaluation with a truly high accuracy is done.
In my opinion, after the design is complete, the workload can be accurately evaluated. However, why is workload evaluation always necessary to get to know some of the requirements in the early stage. Why? How?
It is particularly worth mentioning that it is difficult for me to evaluate Based on the approximate number of code lines generated. Someone can estimate the number of lines of code after hearing the customer say a day's demand, really amazing.
Let me know your workload evaluation method.