Unit 2 NOtes SPM
Unit 2 NOtes SPM
1. Project Initiation:
The project initiation phase is the starting point of the project, where the need or opportunity for
the project is identified, and its feasibility and viability are assessed. This phase involves defining the
project objectives, scope, stakeholders, and initial requirements.
2. Project Planning:
The project planning phase involves developing a detailed plan that outlines how the project will be
executed, monitored, and controlled. This phase focuses on defining the project scope, schedule,
budget, resources, risks, and quality requirements.
3. Project Execution:
The project execution phase is where the project plan is put into action, and project deliverables are
produced. This phase involves coordinating and managing project resources, tasks, and activities to
ensure that the project objectives are met within the specified constraints.
4. Project Closure:
Description: The project closure phase marks the formal end of the project and involves wrapping
up project activities, documenting lessons learned, and transitioning deliverables to the project
stakeholders or end users. This phase ensures that the project is completed satisfactorily and that all
project resources are released and closed out.
Agile Model
The Agile model is a flexible and iterative approach to software development and project management. It
focuses on delivering small, workable increments of the product through collaboration, feedback, and
adaptation.
The phases of the Agile model are as follows:
1. Requirements Gathering:
o Description: This initial phase involves collecting the project requirements from stakeholders.
The aim is to understand the project goals, user needs, and business objectives.
Requirements are often documented as user stories or use cases.
2. Design the Requirements:
o Description: In this phase, the gathered requirements are transformed into design
specifications. This includes creating prototypes, wireframes, or mockups. The design phase
ensures that there is a clear plan for how the requirements will be implemented.
3. Construction/Iteration:
o Description: The actual development of the product takes place in this phase. Work is done
in small, iterative cycles called sprints. Each sprint results in a potentially shippable
increment of the product. Developers write code, integrate it, and perform initial tests.
4. Testing/Quality Assurance:
o Description: Once a sprint's increment is developed, it undergoes rigorous testing to ensure
it meets the quality standards and requirements. This includes unit testing, integration
testing, system testing, and user acceptance testing (UAT).
5. Deployment:
o Description: After testing, the increment is deployed to a production environment or a
staging environment where it can be accessed by users. Deployment can be done frequently
to ensure continuous delivery of the product.
6. Feedback:
o Description: Once the product increment is deployed, feedback is gathered from end-users
and stakeholders. This feedback is crucial for understanding how well the product meets user
needs and for identifying any issues or areas for improvement.
Agile Methodologies
1. Scrum:
Scrum is one of the most popular Agile frameworks, characterized by its iterative approach, short
development cycles (sprints), and emphasis on self-organizing cross-functional teams.
2. Kanban:
Kanban is a visual workflow management method that emphasizes continuous delivery and optimization of
work processes. It provides visibility into the flow of work and encourages incremental improvements to
increase efficiency and quality.
3. Extreme Programming (XP):
Extreme Programming (XP) is an Agile methodology focused on engineering practices that prioritize
simplicity, feedback, and continuous improvement. XP emphasizes coding standards, test-driven
development, pair programming, and frequent releases.
4. Lean Software Development:
Lean Software Development is inspired by Lean manufacturing principles and focuses on eliminating waste,
optimizing flow, and delivering value to customers. It emphasizes customer-centricity, value stream
mapping, and continuous improvement.
5. Dynamic System Development Method (DSDM):
Dynamic Systems Development Method (DSDM) is an Agile methodology that provides a framework for
delivering software solutions iteratively and incrementally while maintaining a focus on business needs and
user involvement throughout the project lifecycle. DSDM emphasizes collaboration, communication, and
flexibility to adapt to changing requirements and priorities.
Software Process
Software process refers to a set of activities, methods, and practices used to develop, maintain, and
manage software systems effectively.
It provides a structured framework for organizing and executing software development activities,
guiding teams through the entire software lifecycle from inception to delivery and maintenance.
The software process encompasses various phases such as requirements gathering, design,
implementation, testing, deployment, and maintenance, each with its set of tasks, deliverables, and
quality assurance measures.
Cost Estimation:
Cost estimation in software development involves predicting the financial resources required to
complete a project. It encompasses various expenses, including labour costs, software tools and
infrastructure, overhead expenses, and any other project-related costs.
Cost estimation is closely tied to effort estimation, as the effort required directly influences the
labour costs. However, cost estimation also considers additional factors such as equipment costs,
licensing fees for software tools, training expenses, and potential overhead costs.
Software Estimation
Software estimation is the process of predicting the amount of effort, time, and resources required to
complete a software development project. Accurate software estimation is crucial for planning, budgeting,
scheduling, and managing projects effectively.
Key aspects of software estimation include:
1. Effort Estimation:
o Description: This involves predicting the total work required to complete the project, usually
measured in person-hours or person-days. It takes into account the complexity of the tasks,
the skills of the team, and the tools and technologies used.
2. Time Estimation:
o Description: This involves determining the duration needed to complete the project. Time
estimation considers not only the effort required but also factors such as team availability,
work schedules, dependencies between tasks, and potential delays.
3. Cost Estimation:
o Description: This includes calculating the total financial resources required for the project.
Costs can include labor, hardware, software, training, and other expenses. Accurate cost
estimation is vital for budgeting and financial planning.
4. Resource Estimation:
o Description: This involves identifying the necessary resources, including human resources
(e.g., developers, testers, project managers), physical resources (e.g., servers, workstations),
and software tools.
5. Scope Estimation:
o Description: This involves defining the boundaries of the project, including the features and
functionalities to be delivered. Scope estimation helps in understanding the overall size and
complexity of the project.
6. Risk Estimation:
o Description: This involves identifying potential risks that could impact the project and
estimating their likelihood and impact. Risk estimation helps in developing mitigation
strategies to address these risks proactively.