SPM Unit 1
SPM Unit 1
A project is a group of tasks that need to complete to reach a clear result. A project
also defines as a set of inputs and outputs which are required to achieve a goal.
Projects can vary from simple to difficult and can be operated by one person or a
hundred.
Time
Cost
Quality
It is an essential part of the software organization to deliver a quality product,
keeping the cost within the client?s budget and deliver the project as per schedule.
There are various factors, both external and internal, which may impact this triple
factor. Any of three-factor can severely affect the other two.
Project Manager
A project manager is a character who has the overall responsibility for the planning,
design, execution, monitoring, controlling and closure of a project. A project
manager represents an essential role in the achievement of the projects.
A project manager is a character who is responsible for giving decisions, both large
and small projects. The project manager is used to manage the risk and minimize
uncertainty. Every decision the project manager makes must directly profit their
project.
2. Medium:
The Project manager is a medium between his clients and his team. He must
coordinate and transfer all the appropriate information from the clients to his team
and report to the senior management.
3. Mentor:
He should be there to guide his team at each step and make sure that the team has an
attachment. He provides a recommendation to his team and points them in the right
direction.
Advantages.
Improved Planning and Control :
● Helps in defining Clear Project Objectives; Scope and deliverable”s.
● Facilities better allocation and utilization of resources
Risk Management:
● Identities Potential risk's early and implements mitigation and Strategies an
● Reduces the likelihood of Project failure
Quality Assurance:-
● Ensures adherence to Standards the best 208 adherence Practices
● Improves the overall quality of the software Product.
Cost Management
● Monitors and controls Project costs to stay within budget
● Helps in identifying cost-Saving Opportunities
Time management :
● Creates realistic schedules and timelines
● Tracks Progress to ensure timely delivery
Stake holder Satisfaction
● Involves Stakeholder in the Planning Process
● Ensure their needs and expectations are met.
Enhanced Communication:-
● Facilitates Clear and effective communication, among team members and
stakeholders.
● Reduces misunderstandings and conflicts
Disadvantages
Resource Intensive
● Requires Significant time, effort, and resources for Planning and Control
activities.
● Can be Costly to implement and maintain
Complexity
● Managing large and Complex projects can be challenging
● Requires specialized skills and expertise.
Rigidity :
● Traditional methodologies can be inflexible in handling Changes
● May-not adapt well to evolving requirement
Overhead:
● Extensive documentation and format Processes can lead to project overhead
● May slow down the development Process
Dependency on Tools and Techniques
● Over-reliance Project Management tools and techniques can be Problematic if not
used effectively
● Requires Continuous training and updates
2. IT Infrastructures
Application:
Designing and managing the hardware and software frameworks that support an
organization's IT operations.
Ensuring data security, network management, and server maintenance.
Examples:
3. Product Development
Application:
The process of conceptualizing, designing, and developing a product from the initial
idea to the market ready product.
Involves prototyping, testing, and iterating based on feedback.
Examples:
4. System Integration
Application:
Combining different subsystems or components into one large system and ensuring
they function together effectively.
Involves software and hardware components, ensuring interoperability and
communication between systems.
Examples:
Providing ongoing support, troubleshooting, and updates for existing systems and
software.
Involves bug fixes, performance enhancements, and regular updates to ensure
systems remain functional and secure.
Examples:
Providing software patches and updates for an enterprise system.
Offering technical support for end users experiencing issues with software or
hardware.
Future Scope
1. Agile and Hybrid Methodologies.
Greater flexibility
Handling Changing requirement
2. Artificial intelligence and Automation
3. Remote and Distributed Teams
4. Emphasis on cyber security
5. Sustainability driven Decision making
6. Enhanced collaboration tools
They are three Primary analysis of a software industry's State and they are Listed
below
1) Finding and fixing a software problem after delivery costs 100 times more than
finding and fixing the Problem in early design phase
2) you can compress Software development Schedule 25% of nominal bud, no more
3) For every I solar, you spent on development,You will send $2 on maintenance..
4) Software development and maintenance cost are Primarily a function of the
number of source line of code.
Waterfall model:
The Waterfall Model was the first Process Model to be introduced. It is also referred
to as a linear-sequential life cycle model. It is very simple to understand and use. In
a waterfall model, each phase must be completed before the next phase can begin and
there is no overlapping in the phases.
The Waterfall model is the earliest SDLC approach that was used for software
development.
All these phases are cascaded to each other in which progress is seen as flowing
steadily downwards (like a waterfall) through the phases. The next phase is started
only after the defined set of goals are achieved for previous phase and it is signed off,
so the name "Waterfall Model". In this model, phases do not overlap.
Disadvantages
The disadvantage of waterfall development is that it does not allow much reflection
or revision. Once an application is in the testing stage, it is very difficult to go back
and change something that was not well-documented or thought upon in the concept
stage.
Size: The Size of the end product, which es typically, quantified in terms of the
number of Source instructions (or) the number of functional Points required to
develop the required functionalities.
Process:It is wed to Produce the end product an Particular the ability of the Process
to avoid hon-value adding activities. Personal:The capability of Software
"engineering Personal and particularly their experience with the computer science
issues and the application domain issues of the Project.
The relationship among these Parameters the estimated cost can be written or follows
Effort = (Personal) (Environment) (quality) (Size product) One important aspect of
Software economic is that the relationship between effort and Size exhibits a dis-
economy of Scale.
During this generation, organizations used various custom tools, custom processes,
and all components of custom that are built or developed in primitive languages. The
size is 100 % custom. At this generation, conventional development is generally
considered bad. It is because it was always costly and over budget and schedule. It
also does not fulfill requirements that are necessary such as some components,
symbolic languages, other languages like Fortran, PL/1, etc. The quality of
performance was always poor and less than great.
During this generation, organizations used various repeatable processes and off-the-
shelf tools, and more likely to use custom components) that are generally developed
in high-level languages. The size is 30 % component-based and 70 % custom. It is
not predictable to decide whether it is bad or good. Transition development is
infrequently on budget and schedule. Some of commercial components were simply
available such as databases, networking along with operating system, database
management system, and graphical user interface. But due to an increase in
complexity, all languages and technologies available were not enough for desired
business performance.
Improved “process” requires “tools” that are improved. The improved process
requires environmental support. Various technologies other for environment
automation, size reduction, and process improvement are not independent of each
other. In the new era, main key is only complementary growth in all these
technologies.
Here are the steps involved in the pragmatic cost estimation process:
Define the project scope: Clearly define the objectives, deliverable’s, and
boundaries of the project. This helps in understanding the requirements and setting
realistic cost estimates.
Identify the tasks: Break down the project into smaller tasks or activities. This helps
in understanding the effort required for each task and estimating the cost accordingly.
Estimate effort: Estimate the effort required to complete each task. This can be done
by considering factors such as the complexity of the task, the skills and experience of
the team members, and any dependencies or constraints.
Estimate resources: Identify the resources required to complete each task. This
includes personnel, equipment, software, and any other resources needed for the
project. Consider the availability and cost of these resources while estimating the
overall cost.
Consider risks: Identify potential risks and uncertainties that may impact the project.
Assess the likelihood and impact of these risks and factor them into the cost
estimation. This helps in accounting for any additional effort or resources that may
be required to mitigate or address these risks.
Calculate the cost: Once the effort, resources, and risks have been estimated,
calculate the cost for each task and the overall project. This can be done by
multiplying the effort estimate by the cost of resources and factoring in any
additional costs associated with risks or contingencies.
Review and refine: Review the cost estimates and validate them against historical
data or benchmarks. Refine the estimates based on any new information or insights
gained during the review process.
Document and communicate: Document the cost estimates along with the
assumptions and considerations made during the estimation process. Communicate
the estimates to stakeholders and ensure they understand the basis and limitations of
the estimates.
The pragmatic cost estimation process, organizations can make informed decisions
about resource allocation, budgeting, and project planning. It helps in setting realistic
expectations and managing project costs effectively.
Software Economics
These parameters are given in priority order for most software domains. Table 3-1
lists some of the technology developments, process improvement efforts, and
management approaches targeted at improving the economics of software
development and integration.
Here are some of the reasons why project size estimation is critical in project
management:
Financial Planning: Project size estimation helps in planning the financial aspects
of the project, thus helping to avoid financial shortfalls.
Resource Planning: It ensures the necessary resources are identified and allocated
accordingly.
Identifying Risks: It helps to identify potential risks associated with overall project
execution.
Detailed Planning: It helps to create a detailed plan for the project execution,
ensuring all the aspects of the project are considered.
Micro process: a project team's policies, procedures, and practices for achieving an
artifact of the software process. The focus of the micro process is on achieving an
intermediate product baseline with adequate quality and adequate functionality as
economically and rapidly as practical.
Although these three levels of process overlap somewhat, they have different
objectives, audiences, metrics, concerns, and time scales
In a perfect software engineering world with an immaculate problem description, an
obvious solution space, a development team of experienced geniuses, adequate
resources, and stakeholders with common goals, we could execute a software
development process in one iteration with almost no scrap and rework. Because we
work in an imperfect world, however, we need to manage engineering activities so
that scrap and rework profiles do not have an impact on the win conditions of any
stakeholder. This should be the underlying premise for most process improvements.
Software project managers need many leadership qualities in order to enhance team
effectiveness. The following are some crucial attributes of successful software
project managers that deserve much more attention:
1. Hiring skills. Few decisions are as important as hiring decisions. Placing the right
person in the right job seems obvious but is surprisingly hard to achieve.
2. Customer-interface skill: Avoiding adversarial relationships among stakeholders
is a prerequisite for success.
3. Decision-making skill:The jillion books written about management have failed to
provide a clear definition of this attribute. We all know a good leader when we run
into one, and decision-making skill seems obvious despite its intangible definition.
4. Team-building skill: Teamwork requires that a manager establish trust, motivate
progress, exploit eccentric prima donnas, transition average people into top
performers, eliminate misfits, and consolidate diverse opinions into a team direction.
5. Selling skill: Successful project managers must sell all stakeholders (including
themselves) on decisions and priorities, sell candidates on job positions, sell changes
to the status quo in the face of resistance, and sell achievements against objectives. In
practice, selling requires continuous negotiation, compromise, and empathy
IMPROVING AUTOMATION
The tools and environment used in the software process generally have a linear
effect on the productivity of the process. Planning tools, requirements management
tools,visual modeling tools,compilers, editors, debuggers, quality assurance analysis
tools, test tools, and user interfaces provide crucial automation support for evolving
the software engineering artifacts. Above all, configuration management
environments provide the foundation for executing and instrument the process. At
first order, the isolated impact of tools and automation generally allows
improvements of 20% to 40% in effort. However, tools and environments must be
viewed as the primary delivery vehicle for process automation and improvement, so
their impact can be much higher.
Software design activities have an impact on more than 50% of the resources.
Coding and unit testing activities consume about 50% of software
development effort andschedule.
Test activities can consume as much as 50% of a project's resources.
Configuration control and change management are critical activities that can
consume as much as25% of resources on a large-scale project.
Documentation activities can consume more than 30% of project engineering
resources.
Project management, business administration, and progress assessment can
consume as much as30% of project budgets.
Key practices that improve overall software quality include the following:
Project inception. The proposed design was asserted to be low risk with adequate
performance margin.
Initial design review. Optimistic assessments of adequate design margin were
based mostly on paper analysis or rough simulation of the critical threads. In
most cases, the actual application algorithms and database sizes were fairly well
understood.
Mid-life-cycle design review. The assessments started whittling away at
the margin, as early benchmarks and initial tests began exposing the optimism
inherent in earlier estimates.
Integration and test. Serious performance problems were uncovered, necessitating
fundamental changes in the architecture. The underlying infrastructure was
usually the scapegoat, but the real culprit was immature use of the infrastructure,
immature architectural solutions, or poorly under-stood early design trade-offs.
Inspections are also a good vehicle for holding authors accountable for quality
products. All authors of software and documentation should have their
products scrutinized as a natural by-product of the process. Therefore, the
coverage of inspections should be across all authors rather than across all
components