Module 5
PROJECT MANAGEMENT
Software Project Management (SPM) is all about planning, organizing, and observing the
software development process to make sure the project is completed successfully, on time, and
within budget. It involves tasks like planning, defining the project scope, calculating how much
time and resources are needed, scheduling tasks, allocating resources, and tracking progress.
The ultimate goal is to deliver a high-quality software product that meets the needs and
expectations of the users.
Need for Software Project Management
Software is a non-physical product. Software Development is a new stream in business, and there
is very little experience in building software products. Most of the software products are made to
fit clients’ requirements. The most important thing is that basic technology changes and advances
so frequently and rapidly that the experience of one product may not be applied to another one.
Such types of business and environmental constraints increase Risk in Software Development
hence it is essential to manage software projects efficiently. It is necessary for an organization to
deliver quality products, keep the cost within the client’s budget constraint, and deliver the
project as per schedule. Hence, in order, software project management is necessary to
incorporate user requirements along with budget and time constraints.
Types of Management in SPM
1. Conflict Management
Conflict management is the process to restrict the negative features of conflict while increasing
the positive features of conflict. The goal of conflict management is to improve learning and
group results including efficacy or performance in an organizational setting. Properly managed
conflict can enhance group results.
2. Risk Management
Risk management is the analysis and identification of risks that is followed by synchronized and
economical implementation of resources to minimize, operate and control the possibility or
effect of unfortunate events or to maximize the realization of opportunities.
3. Requirement Management
It is the process of analyzing, prioritizing, tracking, and documenting requirements and then
supervising change and communicating to pertinent stakeholders. It is a continuous process
during a project.
4. Change Management
Change Management is a systematic approach to dealing with the transition or transformation of
an organization's goals, processes, or technologies. The purpose of change management is to
execute strategies for effecting change, controlling change, and helping people to adapt to
change.
5. Software Configuration Management
Software configuration management is the process of controlling and tracking changes in the
software, part of the larger cross-disciplinary field of configuration management. Software
Configuration Management includes revision control and the inauguration of baselines.
6. Release Management
Release Management is the task of planning, controlling, and scheduling the built-in deploying
releases. Release management ensures that the organization delivers new and enhanced services
required by the customer while protecting the integrity of existing services.
Aspects of Software Project Management
Software project management involves several key aspects that help guide the development
process from start to finish. These aspects verify that the project stays on track, meets user needs,
and is delivered within time and budget constraints. Here are the main aspects of software project
management:
1. 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.
2. 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.
3. 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.
4. 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 tenets of the philosophy of SPM.
5. 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.
6. 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 favor of SPM.
Software Configuration Management ( SCM )
Software Configuration Management ( SCM ) is just like an umbrella activity which is to be
applied throughout the software process.
It manages and tracks the emerging product and its versions also it identifies and controls the
configuration of software, hardware and the tools that are used throughout the development
cycle.
SCM ensures that all people involved in the software process know what is being designed
developed, built, tested and delivered.
For software products, software configuration management (SCM) is the management and
tracking system that keeps development consistent and ensures integrity. This process is
important because it coordinates the work of multiple team members, allowing them to track
changes and remain in sync and on task.
Objectives of SCM Standards : Major objectives of software configuration are depicted as in
the following figure:
1. Remote System Administration :
For the remote system administration tools, the configuration standard should include
necessary software and/or privilege's.
The cornerstone on the client side is a remote administration client that is correctly
installed and configured for the remotely administered network.
These remote tools can be used to check the version of virus protection, check machine
configuration or offer remote help-desk functionality.
2. Reduced User Downtime :
A great advantage of using a standard configuration is that systems become completely
interchangeable resulting in reduced user downtime.
On experiencing an unrecoverable error, an identical new system can be dropped into
place.
User data can be transferred if the non-functional machine is still accessible, or the most
recent copy can be pulled off of the backup tape with the ultimate goal being that the user
experiences little change in the system interface. Software installed.
3. Reliable Data Backups :
Using standard directory for user data allows backup system to selectively backup a small
portion of a machine, greatly reducing the network traffic and tape usage for backup
systems.
A divided directory structure, between system and user data, is one of the main goals of
the configuration standards.
4. Easy workstation setup :
The standardized configuration of any sort will streamline the process of setting up the
system and insures that vital components are available.
If multiple machines are being setup according to a standard set-up, most of the setup
configurations can be automated.
5. Multi-user Support :
It is not common to share the workstation for the users. So that system configuration is
designed in such a way to use the same workstation without interfering with each other
networks.
Some software packages do not support completely independent settings for all users,
however, users can have independent data users.
Usage of structure will not impose limits on the number of independent users a system
can have.
6. Remote Software Installation:
Mostly the modern software packages are the pre-defined directories installed in factory.
No doubt, this type of installation is good for single user, but for the collection of
machines it will lead to non-uniform configuration.
A good configuration standard will have software installed in specific directory areas to
logically divide software on the disk.
With the help of universal scripts, it becomes easy to easily identify the installed
components and the possibility of automating installation procedures.
As software will be installed into specific directories, it's maintenance and upgrading
running software becomes less complex.
Project schedule
Project schedule simply means a mechanism that is used to communicate and know about
that tasks are needed and has to be done or performed and which organizational resources
will be given or allocated to these tasks and in what time duration or time frame work is
needed to be performed.
Effective project scheduling leads to success of project, reduced cost, and increased
customer satisfaction.
Scheduling in project management means to list out activities, deliverables, and
milestones within a project that are delivered.
It contains more notes than your average weekly planner notes. The most common and
important form of project schedule is Gantt chart.
Process : The manager needs to estimate time and resources of project while scheduling project.
All activities in project must be arranged in a coherent sequence that means activities
should be arranged in a logical and well-organized manner for easy to understand.
Initial estimates of project can be made optimistically which means estimates can be
made when all favorable things will happen and no threats or problems take place.
The total work is separated or divided into various small activities or tasks during project
schedule.
Then, Project manager will decide time required for each activity or task to get
completed. Even some activities are conducted and performed in parallel for efficient
performance.
The project manager should be aware of fact that each stage of project is not problem-
free.
Problems arise during Project Development Stage :
1. People may leave or remain absent during particular stage of development.
2. Hardware may get failed while performing.
3. Software resource that is required may not be available at present, etc.
The project schedule is represented as set of chart in which work-breakdown structure and
dependencies within various activities are represented. To accomplish and complete project
within a given schedule, required resources must be available when they are needed. Therefore,
resource estimation should be done before starting development.
Resources required for Development of Project :
Human effort
Sufficient disk space on server
Specialized hardware
Software technology
Travel allowance required by project staff, etc.
Advantages of Project Scheduling : There are several advantages provided by project schedule
in our project management:
It simply ensures that everyone remains on same page as far as tasks get completed,
dependencies, and deadlines.
It helps in identifying issues early and concerns such as lack or unavailability of
resources.
It also helps to identify relationships and to monitor process.
It provides effective budget management and risk mitigation.
The tracking tools can automatically produce a pictorial representation of the project plan. These
tools also instantly update time plans as soon as new information is entered and produce
automatic reports to control the project. Scheduling tools also look into Task breakdown and
Risk management also with greater accuracy and ease of monitoring the reports. It also provides
a good GUI to effectively communicate with the stakeholders of the project.
Features of Project Scheduling Tools
Time management: The project scheduling tools keep projects running the way it is
planned. There will be proper time management and better scheduling of the tasks.
Resource allocation: It provides the resources required for project development. There
will be proper resource allocation and it helps to make sure that proper permissions are
given to different individuals involved in the project. It helps to monitor and control all
resources in the project.
Team collaboration: The project scheduling tool improves team collaboration and
communication. It helps to make it easy to comment and chat within the platform without
relying on external software.
User-friendly interface: Good project scheduling tools are designed to be more user-
friendly to enable teams to complete projects in a better and more efficient way.
Benefits of Project Scheduling Tools
Defines work tasks: The project scheduling tool defines the work tasks of a project.
Time and resource management: It helps to keep the project on track with respect to the
time and plan.
Cost management: It helps in determining the cost of the project.
Improved projectivity: It enables greater productivity in teams as it helps in smarter
planning, better scheduling, and better task delegation.
Increased efficiency: The project scheduling tool increases speed and efficiency in
project development.
Criteria for Selecting Project Scheduling Tools
Capability to handle multiple projects: The scheduling tool must handle multiple projects
at a time.
User-frinedly: It should be easy to use and must have a user-friendly interface.
Budget friendly: The tool should be of low cost and should be within the development
budget.
Security features: The tool must be secured and risk-free from vulnerable threats.
DevOps
DevOps is a combination of software development (dev) and operations (ops). It is defined
as a software engineering methodology which aims to integrate the work of development teams
and operations teams by facilitating a culture of collaboration and shared responsibility.
It’s a modern approach where software developers and software operations teams work together
throughout the entire software life cycle, from planning and coding to testing, deploying, and
monitoring.
The main idea of DevOps is to improve the software delivery process. We achieve this by
software release automation, continuous monitoring/logging and testing.
The goals of DevOps are:
Faster and continuous software releases.
Reduces manual errors through automation.
Built-in Monitoring, detect failures or issues during delivery or in production.
Automate testing throughout the software delivery process.