-
1。There are very few cases where the requirements are determined, because the customer's needs are always changing, and even if they are determined, new problems will be raised during acceptance, which depends on the communication of the project manager, and the user's current problems are solved in this version or the next contract to do. Therefore, after the requirements are roughly determined, the component module of the subsystem --- the subsystem is disassembled, which is relatively coarse-grained, and then you have to consider the development and implementation ability of the subdivision module of the team at hand, and you will generally know the workload.
2。To evaluate the workload of members, we must first understand the composition of the team, who has a clear planning process, who is better at technical research ability, who is suitable for testing, who is fast coding, who is proficient in databases, who is better at interface layout, and who is better at communication while having technology. Therefore, it is usually the team leader who is better at communication, telling the team members the process clearly in time, giving feedback on the work progress of each team member, collaborating with the team members' progress and deciding when to do technical problems and when to organize tests.
3。After the completion of the project, it is good to count, the number of lines of each group, the number of functional modules realized, the modules for other groups to call, how many days, how many fields are involved, etc., in fact, this statistics can not say that Group A completes 40% of the project, Group B 60% So, it is more reasonable to be in a certain aspect, the proportion of each group, and then there is a summary of the group's work is more appropriate. As ** statistics, group A 2w row, accounting for 40%, group B 3w, accounting for 60%.
Number of modules: 6 in Group A, accounting for 60%, 4 in Group B, accounting for 40%, with a description of the module structure. Of course, the management of each company is different, the statistical method is different, anyway, a principle is to try to say more good things to the brothers, because a software is made, every link can not be bad, no matter how good the car, if there is no very ordinary small iron plate as a brake pedal, do you dare to drive.
-
First of all, we need to know what the software development workload consists of. The workload of a software project is the total amount of work required to complete the project or system development, including the developer's requirements, design, build (including coding and integration), testing, implementation, and related project management and support activities from the beginning of the project to the completion and acceptance of the project.
For assessing the workload, I think the first step is to conduct a risk assessment of the project, such as: changes in requirements, external collaboration, time or cost constraints, human resources, system architecture, etc. The next step is to evaluate the degree of reusability of the functions to be implemented by the software, listing the functions that can be reused and the degree to which they can be reused.
Then, based on our experience, we identify the main factors influencing the workload and evaluate them. For example: the scale of the software, the field of application, the requirements for quality, what technology to use, the ability of the development team, etc.
Finally, it is necessary to choose the appropriate method for workload assessment. Commonly used methods are analogy, analogy, and equations. If you don't know much about these methods, I suggest you find a book on them.
For example, the new national standard "Software R&D Cost Measurement Specification" is not very different from its content. If you feel that this looks too systematic, you can also directly read the second edition of the "Interpretation of Software R&D Cost Measurement Specifications". Hope the above can help you.
-
The amount of 8 hours of work for 1 person is 1 person-day. 100 person-days equals 1 person doing 100 days or 100 people doing one day.
-
Fundamentally speaking, it is necessary to figure out the requirements first, if the requirements are constantly changing, the workload can not be accurately assessed, and the development cannot be carried out according to the plan, in order to make the development as controllable as possible and reduce the workload of later maintenance, the following needs to be done:
1. The demander and the designer can have good communication.
This is actually the most difficult, because usually the demand side may be finance, procurement, sales, warehouse management, all of which are not from a development background, and the system designer must not be finance, procurement, sales, warehouse management, and they are not familiar with each other's work content and methods, and everyone's way of thinking may be completely different.
2. Designers have strong learning ability.
In the requirements analysis stage, the designer needs to understand every detail of the requirement in a short time, in other words, if the requirement is finance, then the designer will become a finance, and if the demand is a procurement, the designer will become a procurement. It is not a general understanding of the work, but to know every detail, which requires the designer to have a strong learning ability, to be able to quickly understand the business that he has never been exposed to, which is not a technical problem, nor is it something that a new developer can do, and requires enough experience.
3. Data analysis ability.
Corresponding to the courses in the university, it should be to learn data structures and mathematical modeling, convert specific business into pure mathematical things, and be as simple as possible, this is not something that everyone can do, if the design is not appropriate, it will cause the later unmaintainable, and the whole system may have to be overturned and restarted, of course, the designer must be a programmer, but must not be just a programmer, you need to have enough experience.
4. Find a boss who pays enough attention to informatization.
If you can't be the boss yourself, you have to find a boss who pays enough attention to informatization, otherwise most of your energy may be spent convincing the boss to realize informatization.
-
In order to make the development as controllable as possible and reduce the workload of later maintenance, the following needs to be done:1The demander and the designer can have good communication This is actually the most difficult, because usually the demander may be finance, procurement, sales, warehouse management...
None of them are from a development background, and the system designers must not be finance, procurement, sales, warehouse management, and they are not familiar with each other's work content and methods, and everyone's way of thinking may be completely different2Designers have a strong ability to learn In the requirements analysis stage, designers need to understand every detail of the requirements in a short period of time, in other words, if the requirements are financial, then the designer will become a finance, if the demand is procurement, the designer will become a procurement... It is not a general understanding of the work, but to know every detail, which requires the designer to have a strong learning ability and be able to quickly understand the business that he has never been exposed to, which is not a technical problem, nor is it something that a new developer can do, and requires sufficient experience3
Data analysis ability corresponding to the courses in the university, I think it should be to learn data structures and mathematical modeling, although I have not formally studied these two courses, but it seems that I am still very talented in this area, to convert specific business into pure mathematical things, and to be as simple as possible, this is not something that everyone can do, if the design is not appropriate, it will cause the later unmaintainable, the whole system may have to be overturned, of course, this designer must be a programmer, but must not be just a programmer, Sufficient experience is required4Find a boss who pays enough attention to informatization If you can't be the boss, you have to find a boss who attaches enough importance to informatization, otherwise most of your energy may have to be consumed to persuade the boss to realize informatization, and even if you can convince the other party, the first of the above may be difficult to achieve, if this boss is from a technical background, then you are lucky, and the communication cost will be reduced a lot, if this boss is the most ordinary programmer, then you have won the jackpot, However, usually people with pure technical backgrounds need to have no distractions and cannot take into account the overall situation, and such people are not suitable to be bosses.
-
There is good communication between the demander and the designer.
Designers have a strong ability to learn.
Data analysis capabilities.
Find a boss who pays enough attention to informatization.
Development refers to the use of natural resources such as wasteland, mines, forests, and water power to achieve the purpose of utilization; Exploit; Discover or unearth talents, technologies, etc. for utilization.
-
When it comes to estimating software effort, I think you should first understand what are the main methods for estimating software project effort. There are three commonly used methods: equation method, analogy method and analogy method.
In general, estimating the software project workload is based on the results of estimating the software size as input, and then using the equation method to estimate it. However, there are some special cases, such as when the requirements are very vague and cannot be sized, and the software workload can be estimated directly by analogy or analogy.
In my personal experience, when estimating the workload of a software project, it is easy to choose the right one if you know enough about the use of the three methods mentioned above. For a detailed introduction to these 3 methods, I think you should learn more, or systematically understand the knowledge of software cost estimation, after all, workload estimation is only a small part of software cost estimation. I can recommend a book to you, the 2nd edition of "Interpretation of Software R&D Cost Measurement Specification" published by Beijing Software Cost Evaluation Technology Innovation Alliance and published by Machinery Industry Press.
Or you can also purchase the recently released national standard "GB T 36964-2018 Software Engineering Software Development Cost Measurement Specification" to learn about the relevant knowledge.
-
The ability to read programs A lot of software development work does not necessarily start from scratch, which requires developers to have a good ability to read programs, to understand the overall architecture of the software in the shortest possible time, to understand the initial development ideas of the software, and to quickly and effectively participate in the project development. 2.
Coding skills This relates to the developer's proficiency in the language used, as well as the developer's programming style. Whether the developer has good programming habits, can follow common programming specifications, and make good comments has a great impact on the readability and maintainability of the ** developed by the developer. 3.
Debugging and testing capabilities In the modern software industry, the debugging and testing time is not shorter than the coding time, or even exceeding, of course, a lot of debugging and testing work is not done by coders, but testing work is the only way for many software developers. 4.
Software Maintenance It seems that maintenance doesn't require much competence, because it requires more patience on the part of the developer. I remember reading something like this (to the effect): Your program is your child, and after you produce them, you still need your care to grow and mature The previous discussion is about practical hands-on ability, which is the basic skill of a software developer.
To evaluate a developer's software development ability, in addition to evaluating his programming ability, other important abilities should also be considered, such as 1
Ability of requirements analysis A project needs to do a requirements analysis at the beginning, understand the purpose of the project, the requirements for the system, and the requirements for the functions, and analyze them, and make a good project plan and description 2
Ability to build a software framework Building a good software framework is a guarantee for the success of this project, and the consistency and integrity of the entire software need to be considered. 3
Management and control capabilities throughout the project In the process of project development, it is inevitable that there will be new requirements, target corrections, or personnel changes, etc., and effective management and control is a higher requirement for developers Because up to now, in terms of software, I am still only modifying and modifying other people's programs, doing additional and subtracting functions, debugging and troubleshooting, etc., so I can only talk about so much, and I hope that everyone will give advice and make progress together 0 From a basic point of view, the following points should be involved:
Software development is all about: requirements, design, programming, and testing! >>>More
There is a Huarui school in Changsha that specializes in software, and I graduated from that school, and now the salary is not bad, and there are more than 10,000 yuan.
The failure of the design solution will lead to the failure of the entire system and eventually the loss of everything. >>>More
There is nothing good or bad about Android software development, it mainly depends on whether it meets your own requirements, choose the right one, different Android software development companies are good at developing software in different industries, and choosing that one also depends on what industry you are. Based on our experience in Android software development, let's introduce you how to choose. >>>More
Reasonable arrangement of manpower, powerless. Things are used, people are used.