Logo en.artbmxmagazine.com

Planning and scheduling in software projects

Anonim

Software management encompasses planning, scheduling, risk management, personnel management, estimating software costs, and quality management.

This article covers planning and scheduling software projects. There are many causes for the failure of software projects, they can be mentioned: late delivery, unreliable, cost higher than estimated, poor execution characteristics. Many times the flaw was in the management approach used.

The need to manage is an important distinction between professional software development and non-professional programming. Software project management is necessary because professional software engineering is always subject to budget and scheduling restrictions; to which the organization developing the software must conform. The job of the software project manager is to ensure that the projects meet these constraints and deliver software that contributes to business goals. Good management does not guarantee the success of the project, however bad management always ensures its failure.

The features of the software make its administration particularly difficult, these features are:

  • - The product is intangible, the manager of a boat construction project can see the product while it is being developed. If there is a time lag, the effect on the product is visible. This software is intangible, it cannot be seen or touched. Managers cannot see progress, they rely on others to produce the necessary documentation to review progress.– There are no standard software processes, it is not possible to predict with certainty when a particular process tends to develop problems– Often large projects software are "unique", usually large software projects are different from previous projects. Consequently, managers even when they have extensive experience that can be used to reduce planning uncertainty, it is not enough to anticipate problems.

Rapid changes in computers and communications make previous experience seem obsolete. Lessons learned from those experiences may not be transferable to new projects.

Due to these problems, it is not surprising that some software projects are late, over budget, and out of time. Software systems are often new and technologically innovative. Innovative engineering projects often have scheduling problems as well. Given the mix of difficulties, it is notable that many software products are delivered on time and on budget.

It is impossible to write a standard job description for a software administrator. The work differs enormously depending on the organization and the software product to be developed. However, at some point, many administrators are responsible for some or all of the following activities:

  • Drafting of the proposal. Planning and scheduling of the project. Project costing Project supervision and review Personnel selection and evaluation Drafting and reporting

The first stage of a software project involves writing a proposal for that project. The proposal describes the objectives of the project and how it will be carried out. It includes a cost estimate and schedule. Justify why the project contract should be given to a particular organization or team. Project planning refers to the identification of activities, milestones, and deliverables produced by a project. Therefore a plan should be outlined to guide development towards the project goals. Cost estimation is a related activity that refers to estimating the resources required to carry out the project plan.

Project supervision is an ongoing activity. The manager must be aware of the progress of the project, and compare the actual progress and costs with those planned. Although many organizations have formal mechanisms for monitoring, a skilled manager could form a clear picture of what is going on by conducting an informal interview with project staff. Informal supervision often predicts major project problems and reveals difficulties in due course. For example, daily interviews with project staff can reveal a problem in a software failure. Rather than waiting for a project backlog report, the software administrator could assign an expert to solve the problem or could say if this problem is rescheduled.

During the project, it is normal to have several formal reviews of your administration. A complete review of the progress and technical developments of the project is made, and the status of the project is taken into account along with the purposes of the organization in charge of the software. The development time for a large software project can be several years. During that time the organizational objectives obviously tend to change.

These changes may mean that the software is no longer required or that the original project requirements are inappropriate. Management may decide to stop software development or change the project to accommodate changes in the organization's goals.

The methodology of the Unified Development Process (RUP) outlines very specific guidelines for the development of a software project, defined in a highly collaborative, evolutionary and flexible approach to assimilate changes in software requirements in a dynamic business environment. Similarly, it clearly defines the milestones where formal project reviews are necessary, which include approval by the client. The life cycle of a RUP-based software project can be seen in the diagram below:

Its evolutionary approach comprises an iterative and incremental development. The iterative nature is present in the activities located on the left side of the diagram (requirements, analysis, design, etc.); while incremental development is the creation of prototypes over time, developed through the life cycle, once for each prototype. During the Development Phase, a prototype is developed with the architecture that involves the use cases with the highest technical risk. In turn, software is also produced at the end of each iteration in the Construction Phase, in the same way as in the Development Phase, it can be used for testing purposes or demonstration software for the client. Each time an iteration ends, it marks a milestone where a review with the client is necessary,where compliance with requirements, project progress, analysis of actual and planned costs are analyzed. In the case of the last iteration corresponding to each phase of the project, the approval certificate must be created by the client, in which the client raises its agreement with the developments achieved by the project, thus accepting the financial and technical meaning of the software. that unfolds.

Project managers generally have to select people to work on their project. Ideally, staff with appropriate skills and experience will be available to work on the project. However in many cases, managers have to establish a minimum ideal team for the project. The reasons for this are:

  • - The project budget does not cover the hiring of high-paid staff. You have to hire staff with less experience and less salary but better utilized. - Staff with appropriate experience is not available inside or outside the organization. It is impossible to recruit new personnel for the project. Within the organization, the best people have already been assigned to other projects. - The organization wants to develop the skills of its employees. Inexperienced staff can be assigned to the project to learn and gain experience.

The software administrator has to work with these restrictions when selecting project personnel. However, these problems are likely unless there is a project member with some experience in the type of system to be developed. Without this experience, many small mistakes will likely be made.

The project manager is generally responsible for reporting on the project to both the client and the contracting organizations. These managers must write concise and consistent documents that summarize critical information from detailed project reports. Consequently, communicating effectively both orally and in writing is an essential skill that a project manager must have.

Effective management of a software project depends on completely rethinking the progress of the project. The manager must anticipate problems that may arise, as well as propose tentative solutions to those problems. A plan prepared at the beginning of the project should be used as a driver for the project. This plan will evolve as the project progresses and the information available becomes better. A structure that this project plan may have is proposed below:

  • Objectives: a brief description of the purpose of the project plan Scope: a brief description on what this plan will be applied Phase Plan: based on the phased development proposed by RUP, it shows the time of each phase and that it is intended to be achieved by end of each one. Economic Analysis. Operations and Support: the personnel who will be in charge of the operations and the personnel who will be in charge of the support. As well as the necessary resources to carry out the project and once it is finished, make it functional. Continuous Improvement: strategy to collect new requirements for future versions, once the project is finished. Risk Analysis.

Scheduling a project involves separating all work into complementary activities and considering the time required to complete those activities. Some of these are generally carried out in parallel, so the work schedule must organize them so that the labor is used optimally. As a rule of thumb, for predicted problems you should always add 30 percent to the original estimate and another 20 percent to cover some unforeseen things. Software management tools, such as Microsoft Project, are used to automate the scheduling and resource allocation process. If software projects want to run on time and on budget, good management is essential.

Bibliography

- Ian Sommerville, "Software Engineering", 6th Edition. Pearson Education, 2002.

- I. Archer Pupo, “Phases of the Unified Development Process”.

Planning and scheduling in software projects