SPM - Unit 2
SPM - Unit 2
0. Selecting project
• Choose a viable project based on business needs and feasibility
1. Identify the project objective
• Define project objectives and Scope
• Identify stakeholders
2. Identify project infrastructure
• Define tools, technology, and environment.
3. Analyze Project Characteristics
• Project Complexity – Is the project simple, moderate, or very complex?
• Size of the Project – How big is it? How many features will it have?
• Dependencies – Are there any external factors (like third-party software, APIs, or
teams) that the project depends on?
• Constraints – What are the limitations (like budget, time, or resources)?
4. Identify Products and Activities
• What you are going to deliver at the end of the project to the client, whether it is
Mobile app, Website or Software.
5. Estimate Effort for Activity
• Determine time, cost, and resources needed.
6. Identify Activity Risks
• By identifying risks early, the team can plan solutions to avoid delays and failures.
• Technical Risks – Issues with software bugs, compatibility, or performance.
• Resource Risks – Lack of skilled developers, designers, or testers.
• Time Risks – Deadlines might be missed due to unexpected delays.
• Cost Risks – Project might go over budget due to extra work.
• External Risks – Dependencies on third-party tools, APIs, or vendors.
7. Allocate Resources
• Assign tasks, team members, and required assets
8. Review/Publicize Plan
• This step is about checking the project plan carefully and then sharing it with the
team and stakeholders.
9. Execute Plan
• Implement project tasks as per the plan.
10. Lower-Level Planning
• This step is about breaking down the big plan into smaller, more detailed tasks to
improve execution.
• Makes complex tasks easier to manage
TOPIC:
Software Process and Process Models: A Software process is a set of related activities that
leads to the production of the software.
These may involve the development of the software from Scratch or modifying the existing
one.
Activities of any software process are:
TOPIC:
Software process model:
• A Software Process Model is a structured approach to software development that
defines the steps, activities.
• It helps in planning, managing, and executing software projects effectively.
• There are many kinds of process models for meeting different requirements. We
refer to these as SDLC models (Software Development Life Cycle models). The
most popular and important SDLC models are as follows:
1. Waterfall model
2. V model Incremental model
3. RAD model
4. Agile model
5. Iterative model
6. Prototype model
7. Spiral model
TOPIC:
Factors in choosing a software process:
1. Choosing the right software process model for your project can be difficult.
2. If you know your requirements well, then it will be easier to select a model.
TOPIC:
Agile Model:
Key Features of the Agile Model:
1. Agile means swift or versatile (able to adapt )
2. Software development based on iterative development
3. Agile methods break tasks into smaller iterations, or parts do not directly involve long
term planning.
4. Frequent communication with stakeholders ensures that the final product meets their
needs.
5. Agile allows changes at any stage of development based on feedback.
6. Continuous Testing – Testing happens throughout the development cycle to ensure
quality.
7. Project scope and requirements are laid down at the beginning of the development
process.
8. Plans regarding the number of iterations, duration and scope of each iteration
defined in advance.
9. Each iteration considered as a short time “frame” in Agile process model (last from
one to four week)
10. Division of the entire project into smaller parts helps in minimize project risk and
reduce overall time delivery.
Following are the phases in the Agile model are as follows:
1. Requirements gathering:
• You must define the requirements.
• Explain the time and the effort needed to build the project
2. Design the requirements
• When you identify the requirements
• Sit with the stakeholders, explain the project, show them UML (Unified Modeling
Language) diagram
• Show them Mockup design, Prototypes for the project
• The design remains flexible, allowing changes as the project progresses.
3. Construction/iteration
• This is the development phase, where coding takes place in small iterations.
• Where designing and the developments starts, Small modules distributed to
the development team to process it individual.
4. Testing/ Quality assurance
• The Quality Assurance team examines the product's performance and looks for
thee bug.
5. Deployment
• In this phase, the team issues a product for the user's work environment.
6. Feedback
• After releasing the product, the last step is feedback. In this, the team receives
feedback about the product and works through the feedback.
DSDM is an Agile framework used for software development, focusing on business needs,
on-time delivery, and active user involvement. It ensures projects are delivered quickly and
efficiently while maintaining quality.
Phases of DSDM:
1. Pre-Project – Define business goals
and project feasibility.
2. Feasibility Study – Assess technical
and financial viability.
3. Business Study – Define high-level
requirements and priorities.
4. Functional Model Iteration –
Develop prototypes and refine
requirements.
5. Design & Build Iteration – Finalize
design and develop working
software.
6. Implementation – Deploy the
solution and gather feedback.
7. Post-Project – Maintenance and
continuous improvement.
Advantages of DSDM:
Disadvantages of DSDM:
TOPIC:
Extreme Programming:
Applications of Extreme Programming (XP): Some of the projects that are suitable to
develop using the XP model are given below:
• Small projects: XP model is very useful in small projects consisting of small teams as
face-toface meeting is easier to achieve.
• Projects involving new technology or Research projects: This type of project face
changing requirements rapidly and technical problems. So the XP model is used to
complete this type of project.
TOPIC:
Grady Booch, describes two levels of development for managing interactive processes:
1. The Macro Process
2. The Micro Process
Key Characteristics:
• The micro process focuses on the detailed technical work within each iteration or
phase of development.
• It deals with coding, debugging, unit testing, and small-scale design decisions.
Key Characteristics:
TOPIC:
Basics of Software Estimation:
Software estimation is a crucial aspect of Software Project Management (SPM) that helps in
planning, budgeting, and scheduling software projects. It involves predicting cost, effort,
time, and resources required for successful project completion.
• Identify the sequence of activities that need to be performed for the project to be
completed. Divide activities into tasks that can be measured.
• Estimate the effort (in person hours/days) required to complete each task.
• Combine effort estimates of tasks of activity to produce an estimate for the activity.
• Obtain cost units (i.e., cost/unit effort) for each activity from the database.
• Compute the total effort and cost for each activity.
• Combine effort and cost estimates for each activity to produce an overall effort and
cost estimate for the entire project.
4. Reconcile Estimates
1. Compare Estimates
o Compare the effort and cost estimates obtained from Step 3 with those from
Step 2.
o If both sets of estimates agree, the numbers are considered highly reliable.
2. Investigate Divergence (if estimates differ significantly)
o Check if the project scope is unclear or misinterpreted.
o Verify the function and activity breakdown for accuracy.
o Ensure that the historical data used is relevant, up-to-date, and correctly
applied.
5. Resolve Discrepancies and Finalize Estimates
1. Identify the Cause of Divergence
o Analyze discrepancies in estimation results.
o Find out if incorrect assumptions, outdated data, or missing factors caused the
variation.
2. Reconcile Estimates
o Adjust the estimates based on findings from the investigation.
o Ensure alignment between all estimation techniques to produce a final,
reliable project estimate.
Estimation Accuracy in SPM (Simplified Points)
• Estimation Accuracy shows how close the estimated values (effort, cost, time, or
resources) are to the actual values after project completion.
• High accuracy → Estimates are close to actual values (more reliable).
• Low accuracy → Estimates are far from actual values (more deviation).
• Helps in better planning, budgeting, and risk management.
Estimation Issues:
Project estimation involves several challenges that can impact accuracy and project
success. Below are some of the key challenges:
1. Uncertainty in Requirements
o At the beginning of the project, requirements are often unclear.
o Clients may not have a complete understanding of what they need.
o Without clear requirements, estimating effort and time becomes difficult.
2. Not Splitting Bigger Tasks
o Estimations are sometimes done at a high level, without breaking tasks into
smaller units.
o Lack of task breakdown can lead to overlooked activities and incorrect
estimates.
o Smaller, well-defined tasks provide better accuracy in estimation.
3. Idealistic & Optimistic Estimation
o Many estimations assume perfect conditions, ignoring real-world challenges.
o Issues like version maintenance, resource unavailability, and delays are often
overlooked.
o Over-optimistic estimates result in missed deadlines and cost overruns.
4. Estimation by the Wrong Person
o Estimation should be done by the developer or with their assistance.
o If estimation is done by someone unfamiliar with technical complexities, it can
lead to huge mismatches.
o Developers understand the actual effort required and can provide realistic
estimates.
5. Buffer & Dependencies
A buffer in project estimation is extra time or effort added to the estimate to handle
unexpected delays or risks.
o It is uncertain how much buffer should be included in an estimate.
o A 15-20% buffer is typically taken to account for unexpected project changes
as it progresses.
o External dependencies (third-party tools, APIs, vendor support) can also affect
timelines.
( A dependency in project estimation means that one task depends on another task,
resource, or external factor to be completed before it can start.
Example:
• A login page cannot be tested until the coding of the login functionality is complete.
• A project may depend on a third-party API that must be ready before integration. )
Effort and cost estimation is essential for effective project planning. Below are five common
estimation techniques:
1. Top-Down Estimation
3. Expert Judgment
• Relies on the experience of skilled professionals.
• Experts provide estimates based on past knowledge.
• Pros: Quick and useful when historical data is unavailable.
• Cons: Subjective and varies based on the expert’s experience.
Example:
• A senior developer estimates that building an eCommerce site will take 4 months
based on past experience.
5. Three-Point Estimation
• Uses three estimates:
o Optimistic (O) – Best-case scenario
o Most Likely (M) – Expected scenario
o Pessimistic (P) – Worst-case scenario
• The final estimate is calculated as:
TOPIC
COCOMO Model (Constructive cost model):
• It helps estimate the effort, cost, and schedule required for software development
based on the project size in thousands of lines of code (KLOC).
• Developed by Barry Boehm in 1981
• Using this model we can estimate the time (month) and number of people needed to
develop the project.
Where:
• E = Effort in Person-Months
• A = Constant (usually 2.94)
• Size = Estimated project size in KLOC (Thousands of Lines of Code)
• E = Exponent derived from Scale Factors (SF)
• EAF = Effort Adjustment Factor from Cost Drivers