1. Software Engineering | Project Management Process
Project Management is a discipline about planning, monitoring, and controlling
software projects, identifying the scope, estimating the work involved, and
creating a project schedule. Along with it is also responsible to keep the team
up to date on the project’s progress and handle problems and discuss
solutions.
The Project Management Process consists of the following 4 stages:
• Feasibility study
• Project Planning
• Project Execution
• Project Termination
Feasibility Study: A feasibility study explores system requirements to
determine project feasibility. There are several fields of feasibility study
including economic feasibility, operational feasibility, and technical feasibility.
The goal is to determine whether the system can be implemented or not. The
process of feasibility study takes as input the required details as specified by
the user and other domain-specific details. The output of this process simply
2. tells whether the project should be undertaken or not and if yes, what would
the constraints be. Additionally, all the risks and their potential effects on the
projects are also evaluated before a decision to start the project is taken.
Project Planning: A detailed plan stating a stepwise strategy to achieve the
listed objectives is an integral part of any project. Planning consists of the
following activities:
• Set objectives or goals
• Develop strategies
• Develop project policies
• Determine courses of action
• Making planning decisions
• Set procedures and rules for the project
• Develop a software project plan
• Prepare budget
• Conduct risk management
• Document software project plans
This step also involves the construction of a work breakdown structure(WBS).
It also includes size, effort, schedule, and cost estimation using various
techniques.
Principles of effective project planning:
Project should be effective so that the project begins with well-defined tasks.
Effective project planning helps to minimize the additional costs incurred on
the project while it is in progress.
1. Planning is necessary: Planning should be done before a project begins.
2. Risk analysis: Before starting the project, senior management and the
project management team should consider the risks that may affect the
project.
3. Tracking of project plan: Once the project plan is prepared, it should be
tracked and modified accordingly.
3. 4. Most quality standards and produce quality deliverables: The project
plan should identify processes by which the project management team
can ensure quality in software.
5. Description of flexibility to accommodate changes: The result of project
planning is recorded in the form of a project plan, which should allow
new changes to be accommodated when the project is in progress
Project Execution: A project is executed by choosing an appropriate software
development lifecycle model(SDLC). It includes a number of steps including
requirements analysis, design, coding, testing and implementation, testing,
delivery, and maintenance. There are a number of factors that need to be
considered while doing so including the size of the system, the nature of the
project, time and budget constraints, domain requirements, etc. An
inappropriate SDLC can lead to the failure of the project.
Project Termination: There can be several reasons for the termination of a
project. Though expecting a project to terminate after successful completion is
conventional, at times, a project may also terminate without completion.
Projects have to be closed down when the requirements are not fulfilled
according to given time and cost constraints.
Some of the reasons for failure include:
• Fast-changing technology
• Project running out of time
• Organizational politics
• Too much change in customer requirements
• Project exceeding budget or funds
Once the project is terminated, a post-performance analysis is done. Also, a
final report is published describing the experiences, lessons learned, and
recommendations for handling future projects.
Project management is a systematic approach to planning, organizing, and
controlling the resources required to achieve specific project goals and
objectives. The project management process involves a set of activities that are
performed to plan, execute, and close a project. The project management
process can be divided into several phases, each of which has a specific
purpose and set of tasks.
4. The main phases of the project management process are:
1. Initiation: This phase involves defining the project, identifying the
stakeholders, and establishing the project’s goals and objectives.
2. Planning: In this phase, the project manager defines the scope of the
project, develops a detailed project plan, and identifies the resources
required to complete the project.
3. Execution: This phase involves the actual implementation of the project,
including the allocation of resources, the execution of tasks, and the
monitoring and control of project progress.
4. Monitoring and Control: This phase involves tracking the project’s
progress, comparing actual results to the project plan, and making
changes to the project as necessary.
5. Closing: This phase involves completing the project, documenting the
results, and closing out any open issues.
6. Effective project management requires a clear understanding of the
project management process and the skills necessary to apply it
effectively. The project manager must have the ability to plan and
execute projects, manage resources, communicate effectively, and
handle risks and issues.
Advantages of the project management process:
1. Provides a structured approach to managing projects.
2. Helps to define project objectives and requirements.
3. Facilitates effective communication and collaboration among team
members.
4. Helps to manage project risks and issues.
5. Ensures that the project is delivered on time and within budget.
Disadvantages of the project management process:
1. Can be time-consuming and bureaucratic
2. May be inflexible and less adaptable to changes
3. Requires a skilled project manager to implement effectively
5. 4. May not be suitable for small or simple projects.
Responsibilities of software project manager:
-Proper project management is essential for the successful completion of a
software project and the person who is responsible for it is called project
manager.
-To do his job effectively, the project manager must have certain set of skills.
This section discusses both the job responsibilities of project manager and the
skills required by him.
Job Responsibilities :
-Involves with the senior managers in the process of appointing team
members.
-Builds the project team and assigns tasks to various team members.
-Responsible for effective project planning and scheduling, project monitoring
and control activities in order to achieve the project objectives.
-Acts as a communicator between the senior management and the other
persons involved in the project like the development team and internal and
external stakeholders.
-Effectively resolves issues that arise between the team members by changing
their roles and responsibilities.
-Modifies the project plan(if required)to deal with the situation.
Conclusion
Project management is a procedure that requires responsibility. The project
management process brings all of the other project tasks together and ensures
that the project runs smoothly. As a result, the project management team
should have a thorough awareness of all project management procedures as
well as the tools that can be used for each one.
6. Process Discriminants
Introduction:-In tailoring the management process to a specific
domain or project, there are two dimensions of discriminating
factors: technical complexity and management complexity. A
process framework is not a project-specific process
implementation with a well-defined recipe for success. The
process framework must be configured to the specific
characteristics of the project. The process discriminants are
organized around six process parameters - scale, stakeholder
cohesion, process flexibility, process maturity, architectural risk
and domain experience.
1. Scale:the scale of the project is the team size, which drives
the process configuration more than any other factor. There are
many ways to measure scale, including number of sources lines
of code, number of function points, number of use cases and
number of dollars. The primary measure of scale is the size of
the team. Five people are an optimal size for an engineering
team.
A team consisting of 1 member is said to be trivial, a team of 5
is said to be small, a team of 25 is said to be moderate, a team
of 125 is said to be large, a team of 625 is said to be huge and
so on. As team size grows, a new level of personnel
management is introduced at each factor of 5.
Trivial - sized projects require almost no management overhead.
Only little documentation is required. Workflow is single-
threaded. Performance is dependent on personnel skills.
Small projects consisting of 5 people require very little
management overhead. Project milestones are easily planned,
informally conducted and changed. There are a small number of
individual workflows. Performance depends primarily on
personnel skills. Process maturity is unimportant.
7. Moderate-sized projects consisting of 25 people require very
moderate management overhead. Project milestones are
formally planned and conducted. There are a small number of
concurrent team workflows, each team consisting of multiple
individual workflows. Performance is highly dependent on the
skills of key personnel. Process maturity is valuable.
Large projects consisting of 125 people require substantial
management overhead. Project milestones are formally planned
and conducted. A large number of concurrent team workflows
are necessary, each with multiple individual workflows.
Performance is highly dependent on the skills of the key
personnel. Process maturity is necessary.
Huge projects consisting of 625 people require substantial
management overhead. Project milestones are very formally
planned and conducted. There are a very large number of
concurrent team workflows, each with multiple individual
workflows. Performance is highly dependent on the skills of the
key personnel. Project performance is still dependent on
average people.
2. Stakeholder Cohesion or Contention:The degree of
cooperation and coordination among stakeholders (buyers,
developers, users, subcontractors and maintainers) significantly
drives the specifics of how a process is defined. This process
parameter ranges from cohesive to adversarial. Cohesive teams
have common goals, complementary skills and close
communications. Adversarial teams have conflicting goals,
competing and incomplete skills, and less-than-open
communication.
3. Process Flexibility or Rigor: The implementation of the
project's process depends on the degree of rigor, formality and
change freedom evolved from projects contract (vision
document, business case and development plan). For very loose
contracts such as building a commercial product within a
business unit of a software company, management complexity is
8. minimal. For a very rigorous contract, it could take many months
to authorize a change in a release schedule.
4. Process Maturity:The process maturity level of the
development organization is the key driver of management
complexity. Managing a mature process is very simpler than
managing an immature process. Organization with a mature
process have a high level of precedent experience in developing
software and a high level of existing process collateral that
enables predictable planning and execution of the process. This
sort of collateral includes well-defined methods, process
automation tools, and trained personnel, planning metrics,
artifact templates and workflow templates.
5. Architectural Risk:The degree of technical feasibility is an
important dimension of defining a specific projects process.
There are many sources of architecture risk. They are (1) system
performance which includes resource utilization, response time,
throughout and accuracy, (2) robustness to change which
includes addition of new features & incorporation of new
technology and (3) system reliability which includes predictable
behavior and fault tolerance.
6. Domain Experience:The development organization's domain
experience governs its ability to converge on an acceptable
architecture in a minimum no of iterations.