Unit v Project Management
Unit v 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.
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.