Sepm
Sepm
1)initial (level 1): in initial level all processes are unpredictable and
chaotic. There is no defined processes in work place all work
happens in a chaotic manner leading to inconsistent result.
Project might lack clear goals or defined goals, causing confusion
and variability in outcomes.
2) managed (level 2): basic processes start to take shape at this
level. Organizations establish some structure by implementing
project management practices. There’s a focus on planning,
tracking, and following basic processes, leading to more stability in
project outcomes.
Unit 2
Prioritize software requirements bases on kano analysis
6)prioritize requirements:
Must-Be Requirements: These are non-negotiable and should
be prioritized as they directly impact user satisfaction.
Performance Requirements: Prioritize these based on the
level of satisfaction they provide. High satisfaction features
might be prioritized over others.
Excitement/Delighters: Consider implementing these
innovative features selectively, based on their potential impact
on customer satisfaction and the resources available.
Unit 3
Agile methodology for project development
1. Scrum:
Framework: Scrum divides work into time-boxed iterations called
sprints, each lasting 1-4 weeks. It involves defined roles (Product
Owner, Scrum Master, and Development Team) and ceremonies
like daily stand-ups, sprint planning, reviews, and retrospectives.
Focus: Collaboration, transparency, and adaptability to changing
requirements. It emphasizes delivering incremental value in short
cycles.
2. Kanban:
Method: Kanban visualizes work on a board with columns
representing different stages. It emphasizes limiting work in
progress (WIP) to improve flow and focuses on continuous delivery
by pulling work as capacity allows.
Focus: Optimizing flow, reducing bottlenecks, and responding
quickly to changes.
3. Extreme Programming (XP):
Practices: XP emphasizes engineering practices for high-quality
software. It includes pair programming (two developers coding
together), test-driven development (writing tests before code),
continuous integration (frequent integration of code changes), and
simple design.
Focus: Rapid feedback, customer involvement, and delivering
valuable software with high quality.
4. Lean Software Development:
Principles: Derived from Lean manufacturing, Lean Software
Development focuses on eliminating waste, optimizing flow, and
delivering value. It includes principles like value stream mapping,
just-in-time delivery, and continuous improvement (Kaizen).
Focus: Identifying and eliminating non-value adding activities,
ensuring the shortest path to value delivery.
5. Crystal:
Variants: Crystal methodologies come in different flavors (Crystal
Clear, Crystal Yellow, etc.) tailored to different project sizes and
team characteristics. They prioritize communication, team
interaction, and adapting processes based on team size.
Focus: Reflects a people-centric approach, emphasizing teamwork
and flexibility in adapting practices.
6. Dynamic Systems Development Method (DSDM):
Framework: DSDM provides a framework for developing software
iteratively and incrementally. It involves specific roles (like Business
Sponsor, Business Visionary) and phases (Feasibility, Foundations,
Exploration, Engineering, Deployment).
Focus: Emphasizes on-time delivery of products that meet the
business needs while managing risks effectively.
7. Feature-Driven Development (FDD):
Approach: FDD emphasizes designing and building features one at a
time. It involves domain object modeling, developing by feature,
and frequent builds.
Focus: Breaking down complex systems into manageable
components (features) and delivering them iteratively.
8. Adaptive Software Development (ASD):
Principles: ASD focuses on collaboration, constant learning, and
adapting to changing circumstances. It includes speculation,
collaboration, and learning cycles to drive development.
Focus: Adapting to changes, maintaining flexibility, and
continuously improving processes and products.
9. Disciplined Agile Delivery (DAD):
Framework: DAD provides a decision framework for Agile
practitioners, allowing teams to select and tailor their way of
working based on their context. It includes lifecycles, practices, and
roles from Agile to traditional methods.
Focus: Supporting a full range of project types and providing
guidance on how to choose practices that best suit the project at
hand.
10. Pair programming:
Pair programming, a practice within Extreme Programming (XP),
involves two developers working together at one workstation. One
person writes the code (the "driver"), while the other reviews each
line, suggests improvements, and navigates the code's direction
(the "navigator").
Pair programming
Pair programming, an integral practice in Agile development
methodologies, involves two programmers jointly working on code
at a single workstation. One assumes the role of the "driver,"
responsible for actively writing the code, while the other takes the
position of the "navigator," offering feedback, reviewing the code
in real time, and considering broader strategic approaches.
This collaborative approach fosters numerous benefits. Firstly, it
enables continuous peer review, ensuring that the code is
thoroughly inspected as it's being written, leading to early bug
detection and higher code quality. The navigator's role also extends
to suggesting improvements, discussing design decisions, and
sharing knowledge, creating an environment conducive to learning
and skill-sharing among team members.
Beyond the technical advantages, pair programming also greatly
influences team dynamics. It encourages effective communication,
trust, and shared responsibility within the development team. The
shared ownership of the codebase strengthens collective
accountability and often results in a more cohesive and engaged
team.
While initially perceived as a resource-intensive practice, pair
programming has shown to improve overall productivity by
reducing the time spent on debugging and rework. Moreover, it
brings a diversity of perspectives and ideas to problem-solving,
often leading to more innovative solutions and robust code
architectures.
Despite its advantages, pair programming might not suit every
individual or situation. However, for teams that adopt it, this
collaborative approach significantly contributes to delivering high-
quality software, fostering a culture of continuous learning, and
enhancing team collaboration and efficiency.
Burndown Chart
Disadvantages
• Scrum often leads to scope creep, due to lack of a definite end
date.
• The chances of project failure are high if individuals aren't very
committed or
cooperative
• Adopting the Scrum framework in large teams is challenging
• The framework can be successful only with experienced team
members
• Daily meetings sometimes frustrate team members
• If any team member leaves in the middle of a project, it can have
a huge negative
impact on the project
• Quality is hard to implement until the team goes through an
aggressive testing
process
Unit 4
Project initiation
Project initiation is the first phase of a project’s life cycle. It is
at this point where the opportunity or reason for the project is
identified and a project is developed to take advantage of that
opportunity.
It is during this phase of the project that a team is assembled,
assigning responsibilities and a business case is created to
define the project in detail.
A business case is used to explain the reason for starting a
project. The business case shows how to use of financial and
other resources are in support of a business need.