A journey of a thousand miles begins with planning. good project planning is a prerequisite for the success of software projects. budgeting is an important part of project planning. therefore, a reasonable budget is a necessary condition for the success of software projects, and a budget that is too low is not enough to ensure the success of the project, and it is possible that the project will be premature or premature due to lack of resources. excessive budgets may lead to approvals that cannot be approved, stranding projects or waste of resources. so how can we make a reasonable project budget?
first, a reasonable budget is based on an accurate grasp of the overall situation of the project, especially the needs of the project
the focus of software project planning is to make appropriate arrangements for personnel roles, task progress, funds, equipment resources, work results, etc., and to develop a plan so that everyone can act according to the plan and finally successfully achieve the predetermined goal.
to budget, you need to have an estimate of the size of the software project. software requirements and estimates are the basis of software projects. because only by accurately understanding the needs of customers, based on this, using scientific methods to make reasonable estimates of the size, workload and progress of the target software system, we can complete the project smoothly and on time and on time within budget.
The first step is to determine the scope of the software, which is to determine the data and control, functions, performance, constraints, interfaces, and reliability of the target software. this work is very similar to requirements analysis, if the requirements analysis protocol has been reached before, then you can use the useful parts directly from the requirements analysis specification.
If you haven't started a requirements analysis yet, we can use a number of requirements analysis techniques (such as demand induction) to get a specific software scope from the customer in terms of methods for determining the scope of the software. of course, if it is a new software boundary exploration, it should consider the feasibility of the software itself, including whether the team has a reliable guarantee in the upstream of technology, finance, time and resources, and whether the software itself has a reliable competitive advantage in the market.
Next, you need to identify the work resources. resources required for software work include: work environment (hardware and software environment, office environment), reusable software resources (components, middle ware), human resources (including people in different roles: analysts, designers, testers, programmers, project managers,etc.). the composition ratio of these three resources can be seen as a pyramid model, with human resources at the top, reusable software resources at the bottom, and the working environment at the bottom. the top is the smallest proportion of composition, and the bottom is the part with the largest proportion of composition.
Human resources
how many positions and the total number of personnel needed for a project to become the most creative team? this is probably the most headache for project managers. any software project must determine the workload of the software in order to clearly know how much manpower is needed to complete the task with the minimum cost and maximum efficiency.
Reusable software resources
this is an important resource that can easily be overlooked during the planning phase, and many people always enter the coding phase to discover the value and existence of reusable resources. after a long period of project accumulation or purchase, the company's software resource library may have accumulated a large number of reusable resources, but in the current task, only valuable resources can be selected. according to different applications, times, and sources, reusable software resources are divided into the following categories:
ready-to-use components: existing software that can be obtained from third-party vendors or has been developed in previous projects. these artifacts have been validated and validated and can be used directly in the current project.
fully experienced artifacts: existing specifications, designs, code, or test data that have been established for previously similar projects to be developed. members of the current software project team have extensive experience in the application areas represented by these components. therefore, the risk of making the required modifications to such components is relatively small.
partially experienced artifacts: existing specifications, designs, code, or test data that have been established for projects previously related to the project being developed, but subject to substantial modifications. members of the current software project team have limited experience in the application areas represented by these components, so there is considerable risk in making the required modifications to such components.
new artifacts: software artifacts that the software project team must develop specifically to meet the specific needs of the current project.
when using components, it should be used at low cost and low risk. if the application of any beautiful component may pose a potential risk of error or must be modified or inefficient, we should not hesitate to throw it away. we only use components that meet the needs of the project and are ready to use, or those that are fully experienced, or that can be used with slight modifications.
Environmental resources
In order to obtain an efficient development process, it is necessary to provide a good software and hardware environment to the staff, including development tools, development equipment, working environment, and management system. the average manager buys software development tools and hardware platforms that meet their needs, but the work environment and management system are often overlooked.
Employees of companies that provide a more relaxed, quiet and comfortable office environment for their staff tend to be more productive than those who work in cramped cubicles all day. and companies with flexible and humane management systems are more able to retain high-tech talent than companies that work overtime all day. therefore, how to plan a reasonable environment in limited funds is an important thing.
By this point, the project scale estimate has been completed and an engineering development framework has been formed. it's a framework with boundaries that, while not precise enough, is enough for a relatively reasonable budget.
Second, a reasonable budget is based on scientific budgeting methods and tools
Due to the complexity and variability of software projects, it is impossible to rely on history or personal experience to make a reasonable budget. To make a reasonable budget, we must first ensure the relative accuracy of the estimates. In general, methods of estimating the size based on history or personal experience have certain limitations. The reason is that it is difficult to make a relatively accurate estimate of the size of the software at the project analysis and planning stages. Because the estimation relies on the experience of the evaluator, the ability requirements for the evaluator are relatively strong, and it is difficult for a third party to correct the work deviation of the evaluator. In addition, different software projects use different technologies, which also affects the estimation of software scale. For example, the same function, using the Java language and using the Ruby language involves lines of code that differ by tens or even hundreds of lines. Even if it is the same Java language, the lines of code required to use different frameworks are different.
An estimate is a reasonable prediction based on objective facts about what might happen in the future. the uncertainty of the estimate itself determines that it cannot be 100% accurate, but it is obviously much better to make a reasonable estimate according to some method than to guess blindly. there are many software estimation methods, which are roughly divided into two categories: technical decomposition models and empirical models.
At present, the methods based on the technical decomposition model are: function point estimation method, loc estimation method, markii, etc.; methods based on empirical models include: ibm model, putnam model, cocomo model, etc. at present, common methods based on technical decomposition are fp function point estimation method and loc code line estimation method. there are many other estimation methods. different approaches work in different contexts, and some are good but not necessarily appropriate for the task at hand. therefore, it is recommended to use at least two methods for scale estimation, and not rely on either method. only tailor-made and specific analysis of specific problems can we get as reasonable a scale estimate as possible.
Third, a reasonable budget is based on the flexibility and resilience of the budget
A reasonable project budget should be tied to a baseline plan and need to balance both quality and schedule goals. due to the repeated occurrence of demand changes and the actual existence of uncontrollable factors in the project, we must ensure that the budget is feasible and leave a certain amount of flexibility when making the project budget. in addition, the project budget is essentially a constraint control mechanism. project managers or top management can make full use of this adjustment tool in different scopes to control project quality and project progress.
Fourth, a reasonable budget relies on good cost control and process tracking
The project budget emphasizes the selection of the best way to achieve the objectives, that is, the cost-effectiveness analysis of the various possible options. because mistakes in planning cannot be compensated for by subsequent programs and budgets.
The so-called cost-effectiveness analysis is a comprehensive comparative analysis of the effects and costs required for different programs to achieve the goals, and then the best solution is selected according to certain criteria. the criteria for selection may be to achieve a set goal at the least cost, or to achieve maximum results with existing resources. therefore, cost control in the planning phase of the project is very important and almost decisive.
The rationality of the budget depends more on cost control and process tracking during the implementation of the project. no matter how perfect and accurate the budget is made in the early stages of the project, if there is no effective monitoring during the implementation of the project, all the efforts will be ruined. the scope, cost, schedule, resources, quality and risks that need to be monitored during the implementation of the project are not repeated here.
In summary, it can be seen that it is not easy to make a reasonable budget. there must be a deep understanding of the industry and an accurate grasp of technology, and there must be enough project control capabilities to make the most accurate project budget as possible to ensure the efficient success of the project.
No comments:
Post a Comment