Software Project Management Essentials
Software Project Management Essentials
Good software project management does not guarantee project success, however, a bad one
management usually leads to the project's failure. These managers do the same work as
any other manager with the difference that the software is an intangible product, that is, it does not
It can neither be seen nor touched, therefore progress cannot be seen. There are no standard software processes.
applicable to any project since each one varies according to the organization and cannot be
predict with certainty when a particular process may generate problems.
Software managers are generally responsible for the following activities: Drafting
from the proposal, planning and scheduling of the project, estimation and costs of the project,
supervision and review of the project, selection and evaluation of personnel and the drafting and presentation
of reports.
But the following activities are the most important during software development:
Project planning: A project manager must anticipate problems that may arise.
emerge in the development, which is why it is important to have a plan that serves as a guide for
project, this plan is modified during the process according to how it is generated
information, the main factor to take into account in the preparation of the project plan
These are the global business goals.
This plan sets the available resources, divides the work, and creates a work schedule.
The details of the plan vary according to the type of project but generally include the following
puntos: introducción, organización del proyecto, análisis de riesgo, requerimientos de recursos de
hardware and software, division of labor, project program and supervision mechanisms and
report.
Project scheduling: This is one of the most difficult tasks as this is where it happens
the time and resource estimates to complete the activities and organize them. When carrying out the
estimates should be taken into account in each of the activities we do not know if there will be
problems for which we need to allow a few days for this in case it is needed and not generate a
delay.
This is a fundamental part of the project's success because it depends on the estimates that are
they are carried out, both in terms of requirements and development time, and if they are not done properly
there is a potential risk of failure because it may result in the project being completed out of time or
that the budget is exceeded, that is why when making the estimate, the
following points: product size, required effort, project duration, resources
necessary and expected quality. It is important not to rely on past projects because the
complexity and requirements are not the same from one organization to another and that instead of helping
generally delays progress.
Measure the size: The size could be measured according to the amount of bytes it occupies on the disk.
the program number, the number of lines of code, the number of lines of code, the quantity of
reports.
The size of the software is a determining factor in the effort of a development project.
software as it is necessary to take it into account in the time estimates and requirements. The
size based on the functionality obtained and centers decisions on obtaining more
functionality for the investment is why it becomes convenient to choose the technologies that give us
make them more productive.
It is a metric to establish the size and complexity of information systems based on the
amount of functionality required and delivered to users.
In this metric, the function points analysis method is performed, which consists of identifying the
components of the system that the business requires and is assigned a number of points according to
we adjust the functionality and complexity of the component and the summation of these points
based on the general characteristics of the system to be implemented.
It is important to emphasize that sometimes even having a good estimation of times there are certain
aspects that may cause a delay in the assigned activities, for example:
1.- El síndrome del estudiante: En algunos casos al saber que se cuentan con días extras por si en la
problems arise, one starts with the tasks after a while and if problems arise in the activity
Some problem, the project is delayed since the days assigned for those probable risks were
used in advance. In the best cases, the activity is completed as planned.
2.- Parkinson's Law: Advances are not recognized or rewarded in any way.
any activity is done up to the deadline, therefore no time is gained.
3.- Multitasking: It is a serious problem that arises if a project manager assigns
multiple tasks to the same person and even worse if they have the same priority.
That is why deadlines should not be handled, but only an estimated duration.
activity, thus we avoid wasting time on each of the activities and in this way
we save time in case we have any problem during development, and there is no delay in the
software liberation.
It is also important not to assign different tasks the same priority to one alone.
person or resource as this can cause us a considerable delay.
Generally, the project schedule is represented as a set of charts that show the
division of labor, activities, and personnel assignment.
The main purpose of the PMBOK guide is to identify the subset of foundations of the
project creation generally recognized as best practices.
Other processes that can be carried out include configuration management (CM), which is
the development and application of standards and procedures to manage a software system
Evolutionary. These define how to record, process the proposed changes to the system, and how to relate.
these with the system components and the methods used to identify the various versions
of the system.
CM in agile development and rapid development cannot be based on rigid procedures and
bureaucratic paperwork. Although these may be necessary for large or complex projects.
They can slow down the development process.
Management planning which describes the standards and procedures used for management
from the configuration. It is organized into several chapters that include: The definition of what should be
manage, a statement of who takes responsibility for management procedures
settings, the CM policies used, a description of the tools to be used for the
configuration management in addition to a definition of the configuration DB.
The identification of the configuration elements where it is necessary to know what all of them are
documents used to keep track of configurations and the database
of configurations in which all information related to the must be recorded
configurations and their elements.
Change management, which focuses on the analysis of costs and benefits of changes
proposed, approving those that are worthwhile and recording the components of the system that are
They have to change.
Version management and deliveries are the process of identifying and maintaining records of the
various versions and deliveries of a system. Therefore, it should be emphasized that by version
we understand an instance that differs, in some way, from other instances. In order to carry on
The version management and deliveries must exist:
Delivery management is a version of the system that is distributed to customers which includes:
The decision-making of the delivery which are the decisions to deliver a new version of the
systems which are driven by various technical and organizational factors: technical quality,
changes in the platform, fifth law of Lehman, competition, marketing requirements and
client change proposals.
Creation of the delivery, when a collection of files and documentation is created that includes
all components of the system delivery.
Construction of the system is the process of compiling and linking the software components in
a program that runs in a particular configuration, that is, that it has the appropriate version
for each component.
1.- Open work environments: Tools for each stage of the CM process are integrated.
agreement with standard organizational procedures.
2.- Integrated environments: Which offer integrated facilities for version management, building
of the system or tracking of changes.
You are supporting the management of changes, for which it provides tools such as: editor
of forms, workflow system, change database and a management system
reports.
In addition, support for version management which manages large amounts of information.
to ensure that changes in the system are recorded and controlled, through identification
of versions and deliveries, storage management, change history logging, development
independent and support for the project.
I also support the construction of the system, as the construction of systems is a process.
intensive, CASE tools provide certain features such as: language dependency
of specification or the associated interpreter, selection of tools and support for instantiation,
distributed compilation and management of derived objects.
The best organization of products helps us maintain control over the versions of what
we are developing, that is why it is advisable to have a good administration of the
configuration not only because it helps us control a product more quickly but also that
it also gives us guidelines on how we organize the files. This brings with it the
benefits such as: reduction of maintenance costs, assurance of quality,
reduction of errors among others.
Configuration management provides us with a level of service that offers to those who
están relacionados con el desarrollo de software, control a los productos de trabajo como información,
documents, versions, requirements, tools, support, which provides help to
developers, engineers, and people related to the development cycle.
There is also the understanding of change, which states that the effectiveness of a change depends on
different factors such as: felt dissatisfaction (IS), diagnosis of the current state (DEA),
diagnosis of the future state (DEF), energy input for change (EMC). Which leads to a formula:
ECP=ISxDEAxDEFxEMC
In conclusion, we can say that it is good to have everything we are developing well managed.
with software, both the versions and all the documentation generated with it, since
In the future, this will make it easier for us to modify a software.