You are on page 1of 5

Software Project Management (SPM) 

is a proper way of planning and leading software projects. It is a part


of project management in which software projects are planned, implemented, monitored, and controlled.
Importance of Software Project Management:  Planning: The software project manager lays out
the complete project’s blueprint. The project plan will outline the scope, resources, timelines, techniques,
strategy, communication,  testing, and maintenance steps. SPM can aid greatly here.
Leading: A software project manager brings together and leads a team of engineers, strategists,
programmers, designers, and data scientists. Leading a team necessitates exceptional communication,
interpersonal, and leadership abilities. One can only hope to do this effectively if one sticks with the core
SPM principles.  Execution: SPM comes to the rescue here also as the person in charge of software projects
(if well versed with SPM/Agile methodologies) will ensure that each stage of the project is completed
successfully. measuring progress, monitoring to check how teams function, and  generating status reports
are all part of this process. Time management: Abiding by a timeline is crucial to completing deliverables
successfully. This is especially difficult when managing software projects because changes to the original
project charter are unavoidable over time. To assure progress in the face of blockages or changes, software
project managers ought to be specialists in managing risk and emergency preparedness. This Risk Mitigation
and  management is one of the core tents of the philosophy of SPM.  Budget: Software project managers,
like conventional project managers, are responsible for generating a project budget and adhering to it as
closely as feasible, regulating spending and reassigning funds as needed. SPM teaches us how to effectively
manage the monetary aspect  of projects to avoid running into a financial crunch later on in the project.
Maintenance: Software project management emphasizes continuous product testing to find and repair
defects early, tailor the end product to the needs of the client, and keep the project on track. The software
project manager makes ensuring that the product is thoroughly tested, analyzed, and adjusted as needed.
Another point in favour of SPM.
Project: A project is a planned activity. A Software Project is the complete procedure of software
development from requirement gathering to testing and maintenance, carried out according to the execution
methodologies, in a specified period of time to achieve intended software product.  Projects can vary from
simple to difficult and can be operated by one person or a hundred.
The following characteristics distinguish projects: 1) non-routine tasks are involved 2) planning is required;
3) specific objectives are to be met or a specified product is to be created
4) the project has a predetermined time span 5) work is carried out for someone other than yourself
6) work involves several specialism 7) people are formed into a temporary work group to carry out the task
8) work is carried out in several phases 9) the project is large or complex.
Characteristics of Software Project( soft. Proj. vs other proj.):
Invisibility: When a physical artefact such as a bridge is constructed the progress can actually be seen. With
software, progress is not immediately visible. Software project management can be seen as the process of
making the invisible visible. Complexity: Per dollar, pound or euro spent, software products contain more
complexity than other engineered artefacts.
Conformity: The 'traditional' engineer usually works with physical systems and materials like cement and
steel. These physical systems have complexity, but are governed by consistent physical laws. Software
Developers have to conform to the requirements of human clients. It is not just that individuals can be
inconsistent Organizations, because of lapses in collective memory, in internal communication or in effective
decision making, can exhibit remarkable 'organizational stupidity'.
Flexibility: That software is easy to change is seen as a strength. However, where the software system inter-
faces with a physical or organizational system, it is expected that the software will change to accommodate
the other components rather than vice versa. Thus software systems are particularly subject to change.
Software Development Life Cycle:
Requirements analysis: starts
with requirements elicitation or
requirements gathering which
establishes what the potential
users and their managers require
of the new system. It could relate
to a function that the system
should do something. It could be
a quality requirement - how well
the functions must work.
Architecture design: The
components of the new system
that fulfill each requirement have
to be identified. Existing
components may be able to
satisfy some requirements. In
other cases, a new component
will have to be made. These
components are not only
software: they could be new
hardware or work processes.
Although software developers are
primarily concerned with
software components, it is very
rare that these can be developed
in isolation. Detailed design: Each software component is made up of a number of software units that can be
separately coded and tested. The detailed design of these units is carried out separately.
Code and test: refers to writing code for each software unit. Initial testing to debug individual software units
would be carried out at this stage. Integration: The components are tested together to see if they meet the
overall requirements. Integration could involve combining different software components, or combining and
testing the software element of the system in conjunction with the hardware platforms and user interactions.
Qualification testing: The system, including the software components, has to be tested carefully to ensure
that all the requirements have been fulfilled. Installation: This is the process of making the new system
operational. It would include activities such as setting up standing data (for example, the details for employees
in a payroll system), setting system parameters, installing the software onto the hardware platforms and user
training. Acceptance support: This is the resolving of problems with the newly installed system, including the
correction of any errors, and implementing agreed extensions and improvements. Software maintenance can
be seen as a series of minor software projects. In many environments, most software development is in fact
maintenance.
Plan: for an activity must be based on some idea of a method of work. For example, if you were asked to test
some software, you may know nothing about the software to be tested, but you could assume that you would
need to: 1) analyse the requirements for the software 2) devise and write test cases that will check that each
requirement has been satisfied 3) create test scripts and expected results for each test case
4) compare the actual results and the expected results and identify discrepancies.
Method: relates to a type of activity in general, a plan takes that method (and perhaps others) and converts it
to real activities, identifying for each activity: 1) its start and end dates 2) who will carry it out 3) what tools
and materials - including information - will be needed. The output from one method might be the input to
another.

Ways to Categorise Software Project


1. Compulsory versus voluntary users: In workplaces there are systems that staff have to use if they want to
do something, such as recording a sale. However, use of a system is increasingly voluntary, as in the case of
computer games. Here it is difficult to elicit precise requirements from potential users as we could with a
business system. What the game will do will thus depend much on the informed ingenuity of the developers,
along with techniques such as market surveys, focus groups and prototype evaluation.
2. Information System versus Embedded Systems: Information Systems helps in office day to day processes
and embedded system are used to control machines. Examples of Information system are A stock control
system, transaction processing system, knowledge management system, learning management system,
database system etc. While Embedded systems control Microwave oven, AC, Mp3 Player, Digital Camera,
Washing Machine etc.
3. Outsourced Project: Most of the companies outsource parts of its work to other companies. There can be
several reasons to outsource project, e.g. company does not have sufficient expertise, or project is to be
completed in limited period in that case it can be outsourced to company with their development centre.
Outsourced project fetch one time revenue in good amount while product based company project earn over
period of time.
4. Object-Driven Development:  Project also vary depending on the aim of the project. If aim of the project is
to create product then client has the responsibility for justifying the product. In that case Service level
agreements are important as organisations contract out functions to external service suppliers.
Stakeholder: It is a person, group or a company which can affect or get affected by a decision, activity or
the outcome of the software project. It is important in order to identify the exact requirements of the
project and what various stakeholders are expecting from the project outcome. Type of Stakeholders:
1. Internal Stakeholder:  An internal stakeholder is a person, group or a company that is directly involved in
the project. For example: Project Manager, Project Team, Company, Funders
2. External Stakeholder:  An external stakeholder is the one who is linked indirectly to the project but has
significant contribution in the successful completion of the project.  For ex: Customer, Supplier, Government
Setting Objectives and Goals: The SMART is sometimes used to describe well-defined objectives:
Specific: Effective objectives are concrete and well defined. Vague aspirations such as 'to improve customer
relations' are unsatisfactory. Objectives should be defined so that it is obvious to all whether the project has
been successful. Measurable: Ideally there should be measures of effectiveness which tell us how successful
the project has been. For example, to reduce customer complaints' would be more satisfactory as an objective
than 'to improve customer relations". The measure can, in some cases, be an answer to simple yes/no
question, e.g. Did we install the new software by 1 June?"
Achievable: It must be within the power of the individual or group to achieve the objective.
Relevant: The objective must be relevant to the true purpose of the project.
Time: constrained There should be a defined point in time by which the objective should have been achieved.
Objectives: 1)to implement the new application on time and within budget 2) to implement the new software
application with the fewest possible software errors that might lead to operational failures
3) to design a system that is user-friendly. 4) to produce full documentation for the new system.
Management: It has been
suggested that management
involves the following activities
planning-deciding what is to be
done:
organizing-making arrangements:
staffing-selecting the right people for the job etc.;
directing-giving instructions:
monitoring- checking on progress; controlling-taking action to remedy hold-ups:
innovating-coming up with new solutions;
representing - liaising with clients, users, developer, suppliers and other stakeholders.
The effectiveness of all activities such as scheduling and staffing, which are planned at a later stage, depends
on the accuracy with which the above three project parameters have been estimated.
Scheduling: Based on estimations of effort and duration, the schedules for manpower and other resources are
developed. Staffing Staff organization and staffing plans are made. Risk Management: This activity includes risk
identification, analysis, and abatement planning. Miscellaneous Plans: This includes making several other plans
such as quality assurance plan, configuration management plan, etc.

Project control cycle:

You might also like