ZeePedia buy college essays online

Software Project Management

<<< Previous Organizational Issues and Project Management Next >>>
Software Project Management (CS615)
2. Software Development Fundamentals
Management Fundamentals
Organizational Issues and Project Management
Organizational issues have a deep influence on a software project, its progress,
and the role of the project manager. The policies of an organization can affect the
way the organization handles the customer, different types of technologies, and
different software projects. The organizational issues that can influence a software
project include:
Reaction to external influences
Interest in adherence to standards
Definition of core competency area
Existence of knowledge management system
Interest in human resources
One organizational issue that can influence a software project is the reaction of
the organization to external influences.- As a project manager, it is important for
you to assess how the organization reacts to changes in the external environment,
For example, in the current technology environment that changes rapidly, an
organization should be proactive in strengthening its capability baseline by
adopting new technology and retraining its employees as per market
Interest in adherence to standards is another organizational issue that can
influence a software project. The current technology environment is highly
dynamic. Various nonprofit and independent organizations have developed
protocols and standards for the standardization of software development and
measurement: For example; the Software Engineering Institute at the Carnegie
Mellon University has developed the Capability Maturity Model (SEI-CMM).
The CMM rates the processes of a software development organization and
classifies it into five maturity levels. Software development organizations can also
get the quality-related certifications issued by the International Standards
Organization smoothen your project management tasks by standardizing the
internal processes and optimizing performance.
Definition of core competency area also influences a software project. An
organization that creates software must understand how they are created and
establish processes accordingly For example, if the core competency of the
organization lies in manufacturing chemicals, it should preferably not attempt
Software Project Management (CS615)
software development for such an organization, it is better to purchase an off-the-
shelf software product.
An organizational issue that positively influences the tasks of software project
managers is the presence of a good knowledge management system within the
organization. Knowledge management is the collection of processes that control
the creation and utilization of knowledge within the organization. A good
knowledge management system allows you to access relevant information and
make informed decisions.
Another organizational issue that can influence a software project is the interest of
management in human resources. The human resources of an organization are its
primary resource. You need to ensure that the people in the development team
enjoy a comfortable work environment, which is conducive for smooth and
trouble-free work. This includes providing suitable compensations, a friendly
work environment, and smooth processes. The absence of these factors negatively
affects employee morale, and therefore, productivity.
Managing Processes
As a software project manager, you become the key player in a software project.
You not only manager the day-to-day activities of the project but also ensure that
the software product is delivered on time. What makes your role challenging is
the performance of project-related activities within a specified budget and time
constraint. At the same time, you need to keep the requirements and specifications
of the customer in mind.
To deliver expected results, you carry out three successive processes: studying the
feasibility of the project, planning to meet the requirement, and executing the
plan. These processes can be further broken down into activities, such as
planning, staffing, and monitoring.
You plan and organize the software development team to complete development
within the stipulated time and budget. To do this, you form a team of people who
have the required technical skills. Then, you ensure that all activities are carried
out as planned by the relevant people.
Your responsibilities include analyzing customer requirements, determining the
scope of the software project, allocating resources top the project, scheduling the
project, and executing the project. These responsibilities can be considered in
terms of the areas where management skills are required. The primary software
project management areas that you need to concentrate on include:
Managing Resources
Managing Cost
Software Project Management (CS615)
Managing Risk
Managing Schedule
Managing the project plan
Managing quality
Managing Resources
The primary input required to create software are resources. Resources for a
software project may be of three kinds: human, hardware, "and software. Human
resource management is about effectively identifying the people with the
appropriate skills, assigning roles and responsibilities to these people, and
establishing reporting relationships. On the other hand, hardware and software
resource management relates to identifying and ensuring resources such as
workstations, disk space on servers, software tools, and software licenses. You
need to ensure that human resource identification and allocation is carried out;
simultaneously with hardware and software resource management.
To manage resources effectively, there are two areas that you require your
attention. These include:
Management of human resource
Identification of the critical hardware and software resources
Management of human resources calls for a number of actions. First, you define
reporting relationship for the software project. Reporting relationship can exist
within and across organizational units, technical areas, and hierarchical levels.
Next, determine the skills required for the software project, and identify the
appropriate people who possess the required skills. You can review the resource
pool and identify resources on the basis of their experience and availability. In
case the resources are unavailable, you request for their release from another
project or outsource the required resources. Depending upon the organizational
practices arid experiences from past projects, you can assign roles and
responsibilities to the development team. Finally, create a staff management plan
and an organizational chart to show the hierarchical structure of the development
Management of human resources also requires efficient team development. This
is a complex activity because it combines managing people and organizing the
reporting structure within the team. You can build cohesion and commitment
within the team through team building activities. These activities include
conducting team meetings to involve people from areas other than management
into decision-making.
To manage human resources, you also need to implement a reward and
recognition system. This helps in promoting and reinforcing positive
performance. It is important that you make the link between the performance and
Software Project Management (CS615)
reward explicit and achievable. You should also ensure that the training needs of
the development team are met.
A second resource management area that requires attention is identification of the
hardware and software resources that are critical for the project. As a software
project manager, you must identify all the critical hardware and software
resources and document them in the project plan. After the required resources are
identified, you define control limits for each resource. Control limits for a
resource are the upper and lower limit beyond which the resource is above or
below the required level. For example, if a software project requires disk space on
the central server, the control limits for the disk space are the required maximum
and minimum disk space. Note that not all hardware and software resources are
critical to the success of a software project. In some software projects, you may
not find any critical resource at the beginning. However, as the project progresses,
some resources might become critical. For efficient resource management, you
should periodically assess hardware and software resource requirements for the
software project. Just as a resource may become critical as a project progresses, a
resource might also become less critical over a period of time. Therefore; plan,
assess, and take corrective action for all the resources through the duration of the
software project.
Managing Cost
The cost factor has a considerable influence on the execution of a software
project. The budget of a software project is affected by factors, such as the current
orientation of the organization toward software development, number of skilled
personnel available, infrastructure, and computer hardware and software. The
budget can also be influenced by timely availability of resources. If a particular
resource is allocated to the project later than required, the costs involved could go
up drastically.
Quite often, when a software project starts to become too expensive, many project
managers also tend to start cutting costs. This can have a direct impact on
employee morale. When employee morale drops, so does the quality of work, and
the productivity. Therefore, as a project manager you must prepare for all
circumstances through proper estimation and allocation. To manage costs for
software projects, you need an accurate estimation of costs. To do that, there is a
sequence of steps that you need to perform.
Identify the resources required for the project
Estimate the cost of each activity
Set cost baselines for each activity
Implement a control system for cost changes
To estimate costs, you first identify and describe all the resources required in the
software project. You also estimate the duration for which the resources are used.
Software Project Management (CS615)
Next, estimate the cost of each resource. To estimate the cost, you can use
mathematical tools. However, in the case where limited information is available
about resources, you can also use expert judgment to estimate costs.
After the costs of the required resources are estimated, you set cost baselines for
each activity. Cost baselines measure the performance of an activity with regard
to the cost and duration defined for the completion of the activity.
Finally, as the project manager you implement a control system for cost changes.
The cost control system defines cost baselines, identifies cost changes, and
modifies cost baselines to adjust cost changes.
Management Risk
Risk management is an integral part of project management. In software projects,
where uncertainties are very high, risk management and mitigation is even more
critical. Taking risks for high payoffs might bring in high profits but not without
the danger of losses. Risk on a small scale is acceptable to most project managers
as the element of loss is minimal. However, large risks pose a danger to the
progress of a software project and you need to manage them. Risk management
activities involve identifying potential risks, assessing them, and planning for
contingent actions if a risk materializes.
As a project manager, you perform two primary activities to manage risks for
software project:
Risk Analysis
o Risk identification
o Risk quantification
Risk management
The first activity in risk analysis is risk identification. Risk identification helps
you point out the, potential risks for a software project across all phases of the
project. Risks might evolve through the duration of a software project, and
therefore, risk identification is an ongoing activity. To identify potential risks for
a software project, you can analyze the activities in the software project, the
software product description, and risks faced by the development team in similar
past projects. This exercise allows you to identify the potential sources of risks to
the current software project, Assessing the factor influencing the different inputs
also allows you to identify the phases in the SDLC when risk might materialize.
After potential risks have been identified, you can quantify them. This is done to
ascertain their priority. If multiple risks materialize at the same time, then you
must assign a priority to each risk based on the degree of impact on the project
and handle the highest-risk events first. For example, the risk of change in client
Software Project Management (CS615)
requirements during the software construction phase is a higher risk than a
deadline for a deliverable being missed. Therefore, you first manage the risk that
has a higher priority. To quantify project risks, you can use various mathematical
and statistical tools. You can also use expert judgment to assess and quantify
After you have identified and quantified the potential risks for a software project,
you create a risk mitigation plan. The purpose of the risk mitigation plan is to help
you identify procedures to choose the path of least damage and highest returns in
a case a risk materializes. To mitigate risks for a software project, you first need
to be aware of the opportunities and threats that can be pursued or ignored. This
enables you to focus on the risks that might have a negative impact on the
software project and develop contingent plans to deal with these risks. You can
also mitigate risks by evolving alternative strategies to altogether prevent
potential risks from materializing.
In case an unplanned risk materializes, you must be aware of the dependencies of
the project activities so that ad hoc solutions can be evolved. However, as the
project manager you can avoid unplanned risks from materializing by engaging in
an intensive risk identification and mitigation exercise before the software project
Managing Schedule
Time is a major constraint for a software project. With most software projects, the
delivery dates for the software product are already committed to the customer at
the time the project commences. As a software project manager you must perform
various tasks to balance time and deadlines. These are:
Identify the different deliverables that constitutes the software product
Define the activities that are required to produce the deliverables
Identify the interdependencies between activities
Define the duration of each activity
Assess the project network diagram
Create a schedule management and control plan
The first task is to identify the different deliverables that constitute the software
product. These deliverables also mark the completion of the different phases
within a software project.
Next, define the activities that are required to produce the deliverables. To do this,
you can break down the SDLC into phases, identify the deliverables at the end of
each phase, and the activities required for creating the deliverables.
Software Project Management (CS615)
After the activities are defined, you identify the interdependencies between them.
The purpose of this exercise is to organize the activities and sequence them in the
form of a project schedule.
Next, you define the duration of each activity. The inputs that you need for
scheduling are the resources required to complete each activity. Then, assesses the
availability of these resources and the duration of each similar activity in similar
past projects.
After estimating the time required for each activity to complete, you assess the
project network diagram. This includes an assessment of the duration estimates,
resource requirements, resource pool description, and assumptions and constraints
for the software. You can use Mathematical tools to determine a schedule for the
project. The project schedule defines the activities within each phase, the team
members assigned to complete each activity, the duration of each activity, and the
start and end dates for all of the activities.
Finally, create a schedule management and control plan. The purpose of this plan
is to identify when changes occur, Implement the changes to the project schedule,
and ensure that the changes are beneficial to the software project. After the
changes are implemented, you might need to modify the sections of the project
plan to ensure that the project is completed on time.
Table of Contents:
  1. Introduction & Fundamentals
  2. Goals of Project management
  3. Project Dimensions, Software Development Lifecycle
  4. Cost Management, Project vs. Program Management, Project Success
  5. Project Management’s nine Knowledge Areas
  6. Team leader, Project Organization, Organizational structure
  7. Project Execution Fundamentals Tracking
  8. Organizational Issues and Project Management
  9. Managing Processes: Project Plan, Managing Quality, Project Execution, Project Initiation
  10. Project Execution: Product Implementation, Project Closedown
  11. Problems in Software Projects, Process- related Problems
  12. Product-related Problems, Technology-related problems
  13. Requirements Management, Requirements analysis
  14. Requirements Elicitation for Software
  15. The Software Requirements Specification
  16. Attributes of Software Design, Key Features of Design
  17. Software Configuration Management Vs Software Maintenance
  18. Quality Assurance Management, Quality Factors
  19. Software Quality Assurance Activities
  20. Software Process, PM Process Groups, Links, PM Phase interactions
  21. Initiating Process: Inputs, Outputs, Tools and Techniques
  22. Planning Process Tasks, Executing Process Tasks, Controlling Process Tasks
  23. Project Planning Objectives, Primary Planning Steps
  24. Tools and Techniques for SDP, Outputs from SDP, SDP Execution
  25. PLANNING: Elements of SDP
  26. Life cycle Models: Spiral Model, Statement of Requirement, Data Item Descriptions
  27. Organizational Systems
  28. ORGANIZATIONAL PLANNING, Organizational Management Tools
  29. Estimation - Concepts
  30. Decomposition Techniques, Estimation – Tools
  31. Estimation – Tools
  32. Work Breakdown Structure
  33. WBS- A Mandatory Management Tool
  34. Characteristics of a High-Quality WBS
  35. Work Breakdown Structure (WBS)
  36. WBS- Major Steps, WBS Implementation, high level WBS tasks
  37. Schedule: Scheduling Fundamentals
  38. Scheduling Tools: GANTT CHARTS, PERT, CPM
  39. Risk and Change Management: Risk Management Concepts
  40. Risk & Change Management Concepts
  41. Risk Management Process
  42. Quality Concept, Producing quality software, Quality Control
  43. Managing Tasks in Microsoft Project 2000
  44. Commissioning & Migration