0% found this document useful (0 votes)
2 views9 pages

Unit v Project Management

The document outlines key concepts in Software Project Management (SPM), emphasizing the importance of planning, organizing, and monitoring software development to ensure successful project completion. It covers various management types, aspects of SPM, Software Configuration Management (SCM), project scheduling, resource management, and the DevOps framework, highlighting tools and techniques used throughout the development process. The ultimate goal is to deliver high-quality software products that meet user needs while adhering to budget and time constraints.

Uploaded by

Varshu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views9 pages

Unit v Project Management

The document outlines key concepts in Software Project Management (SPM), emphasizing the importance of planning, organizing, and monitoring software development to ensure successful project completion. It covers various management types, aspects of SPM, Software Configuration Management (SCM), project scheduling, resource management, and the DevOps framework, highlighting tools and techniques used throughout the development process. The ultimate goal is to deliver high-quality software products that meet user needs while adhering to budget and time constraints.

Uploaded by

Varshu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 9

UNIT V PROJECT MANAGEMENT

Software Project Management- Software Configuration Management - Project Scheduling-


DevOps: Motivation-Cloud as a platform-Operations- Deployment Pipeline: Overall
Architecture Building and Testing-Deployment- Tools- Case Study
Software Project Management (SPM)
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 analysing, 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, and
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,
analysed, and adjusted as needed. Another point in favour of SPM.

Software Configuration Management (SCM)


Configuration Management (SCM) is an arrangement of exercises that controls change by
recognizing the items for change, setting up connections between those things,
making/characterizing instruments for overseeing diverse variants, controlling the changes
being executed in the current framework, inspecting and revealing/reporting on the changes
made. It is essential to control the changes because if the changes are not checked
legitimately then they may wind up undermining a well-run programming. In this way, SCM
is a fundamental piece of all project management activities.
SCM involves a set of processes and tools that help to manage the different components of a
software system, including source code, documentation, and other assets. It enables teams to
track changes made to the software system, identify when and why changes were made, and
manage the integration of these changes into the final product.
Processes involved in SCM – Configuration management provides a disciplined environment
for smooth control of work products. It involves the following activities:
1. Identification and Establishment – Identifying the configuration items from
products that compose baselines at given points in time (a baseline is a set of mutually
consistent Configuration Items, which has been formally reviewed and agreed upon,
and serves as the basis of further development). Establishing relationships among
items, creating a mechanism to manage multiple levels of control and procedure for
the change management system.
2. Version control – Creating versions/specifications of the existing product to build
new products with the help of the SCM system.
3. Change control – Controlling changes to Configuration items (CI). The change
control process is explained in Figure below:

A change request (CR) is submitted and evaluated to assess technical merit, potential
side effects, the overall impact on other configuration objects and system functions,
and the projected cost of the change. The results of the evaluation are presented as a
change report, which is used by a change control board (CCB) —a person or group
who makes a final decision on the status and priority of the change.
An engineering change Request (ECR) is generated for each approved change.
Also, CCB notifies the developer in case the change is rejected with proper reason.
The ECR describes the change to be made, the constraints that must be respected, and
the criteria for review and audit.
The object to be changed is “checked out” of the project database, the change is
made, and then the object is tested again. The object is then “checked in” to the
database and appropriate version control mechanisms are used to create the next
version of the software.
4. Configuration auditing – A software configuration audit complements the formal
technical review of the process and product. It focuses on the technical correctness of
the configuration object that has been modified. The audit confirms the completeness,
correctness, and consistency of items in the SCM system and tracks action items from
the audit to closure.
5. Reporting – Providing accurate status and current configuration data to developers,
testers, end users, customers, and stakeholders through admin guides, user guides,
FAQs, Release notes, Memos, Installation Guide, Configuration guides, etc.

Project Scheduling
Project scheduling and resource management involve planning, allocating, and monitoring
resources like people, equipment, and materials to meet project goals within a set timeframe
and budget. This includes breaking down the project into manageable phases, estimating
durations, assigning resources to tasks, and tracking progress to ensure timely completion and
efficient utilization of resources.
Key aspects of project scheduling and resource management:
Planning:
Define project scope, identify tasks, estimate durations, and determine dependencies between
tasks.
Resource Allocation:
Assign the right resources to the right tasks based on their skills, availability, and project
requirements.
Scheduling:
Develop a project schedule that outlines the timeline for each task and the overall project
completion.
Monitoring and Control:
Track progress, identify potential delays, and make adjustments to the schedule or resource
allocation as needed.
Tools for project scheduling and resource management:
 Project management software
 Resource calendars
 Gantt charts
Resource Management
Resource management is the process of planning, scheduling, and allocating resources to
maximize efficiency. It involves managing both tangible and intangible resources to ensure
that they are used effectively and efficiently to achieve project goals.
Resource Management Techniques
Several techniques can be used to manage resources effectively:
Resource Allocation Matrix
A resource allocation matrix, also known as a responsibility assignment matrix (RAM), is a
tool used to assign tasks to team members and ensure that everyone knows their
responsibilities.
Gantt Charts
Gantt charts are visual tools that help project managers schedule tasks and track the progress
of a project. They show the start and end dates of tasks, dependencies between tasks, and
resource assignments.
Resource Levelling
Resource levelling is a technique used to resolve resource conflicts by adjusting the project
schedule. It involves redistributing tasks to avoid overloading resources.
Critical Path Method (CPM)
The Critical Path Method is a scheduling technique used to identify the longest path of tasks
in a project. It helps project managers prioritize tasks and allocate resources to critical
activities to prevent delays.
Resource Forecasting
Resource forecasting involves predicting future resource requirements based on current and
past project data. This technique helps in planning and allocating resources more effectively.
Time Tracking Tools
Time tracking tools help monitor how resources are being used in real-time. These tools
provide insights into resource productivity and help identify areas for improvement.
Resource Management Process
The Resource Management Process in Project Management includes below series of steps:
1. Resource Analysis
This is initiated by gathering comprehensive information necessary for project success. The
analysis defines the types of resources (manpower, materials, finances) required for each
task, explaining their degree and level. The objective is to provide clarity on the resources
needed to achieve project goals, measuring the overall resource magnitude required
throughout the project duration.
2. Resource Planning
In this phase, viable resources are acquired and utilized economically. Resource planning
addresses the sharing of resources, preparing an exploitation plan, and defining usage rules. It
structures resource allocation, creating a plan for how resources will be utilized to meet
project goals. Factors such as resource availability, workforce capabilities, and
interdependencies are considered to ensure timely placement at the right locations.
3. Resource Scheduling
An integral project management skill, resource scheduling involves creating a timetable
indicating when resources will be utilized throughout the project. Tasks are allocated
resources based on availability, avoiding scheduling conflicts and unproductive periods. This
methodology focuses on scheduling the workforce efficiently within resource constraints,
resulting in a realistic and achievable project timeline.
4. Resource Allocation
Resource allocation is the act of distributing project resources, whether finances or personnel,
among listed activities or tasks in the project plan. This process involves time and priority
considerations, ensuring each task receives the necessary resources for completion. The goal
of resource allocation is optimization, preventing both underutilization and overuse, and
maintaining a balanced distribution.
5. Resource Tracking
The final step involves tracking resources throughout the project to ensure proper utilization.
This includes comparing estimated resource utilization with actual consumption, identifying
variations, and making necessary corrections. Resource tracking serves as a tool to monitor
project progress against reserved resources, ensuring adherence to the planned schedule and
allowing adjustments to be made promptly.
DevOps
The software development (Dev) and IT operations (Ops) are combined into a coherent
framework by the constantly evolving principles and set of practices known as DevOps. Its
primary objective is to enhance and expedite the software development process by promoting
cooperation between the operations and development teams.
It is used to bridge the gap between software development and IT operations, enabling faster
and more reliable software delivery. It promotes collaboration, automation, and continuous
improvement, leading to increased efficiency, speed, and agility in software development.
Delivery Pipeline
The pipeline represents the different stages that software goes through before it is released to
production. These stages might typically include:
Build Stage
Developers write and organize code, using version control tools like Git to track changes.
The system automatically compiles and packages the code into a deployable format.
Dependencies (external libraries and tools) are included to ensure smooth operation.
 Common Tools: Git, Jenkins, GitLab CI/CD, Gradle, Maven.
Test Stage
The software undergoes thorough testing to catch bugs and security risks before release.
Different testing methods include:
 Unit Testing: Checks individual pieces of code.
 Integration Testing: Ensures different parts of the system work together.
 Performance Testing: Measures speed and scalability.
 Security Testing: Identifies potential vulnerabilities.
 Automated tests help ensure the software is stable before moving forward.
 Common Tools: Selenium, JUnit, TestNG, SonarQube.
Release Stage
The software is deployed in a staging environment to simulate real-world conditions.
If everything checks out, the software is rolled out to production using deployment strategies
like:
 Blue-Green Deployment: Two identical environments switch traffic for a
seamless update.
 Canary Deployment: A small percentage of users get the new version first,
ensuring safety.
 Rolling Updates: The update is gradually pushed out to all users.
 Common Tools: Docker, Kubernetes, Ansible, Helm, ArgoCD.
Continuous Feedback Loop
A key aspect of DevOps is learning from real-world performance and using that feedback to
improve future releases.
 Monitoring & Logging: Track system performance and detect errors.
 User Feedback: Gather insights from customers to enhance features.
 Incident Response: Alert systems notify teams of failures for quick fixes.
 Process Improvement: Teams analyze past releases to optimize automation
and workflow.
 Common Tools: Prometheus, Grafana, ELK Stack, Datadog, New Relic.

You might also like