This document provides an overview of software process models and Scrum methodology. It defines a software process model as a description of the sequence of activities carried out in a software engineering project. The key activities include specification, design & implementation, validation, and evolution. Scrum is introduced as an agile software development framework. It utilizes short development cycles called sprints, daily stand-up meetings, product backlogs to track requirements, and emphasizes self-organizing teams and adaptive planning. The benefits of Scrum are discussed as improved productivity, quality, and ability to manage changing requirements.
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
Software Process Models Explained
1.
2. Software Process Model
Organizing a structured set of activities to develop software
systems.
A (software/system) process model is a description of the
sequence of activities carried out in an SE project, and the
relative order of these activities.
3. Specification – defining what the system should do;
Design and implementation – defining the organization of
the system and implementing the system;
Validation – checking that it does what the customer
wants;
Evolution – changing the system in response to changing
customer needs.
General Activities SDP
4. Models helps us understand the problem (and its
surrounding system) we are investigating solutions.
We cannot understand the complex software system so we
use model to understand the software system.
Software process models are general approaches for
organizing a project into activities.
Why Process Model
5. Help the project manager and his or her team to decide:
What work should be done?
What sequence to perform the work?
Each project ends up with its own unique plan
(Lethbridge/Laganière 2001).
Why Process Model
6. other engineers
(e.g. civil, electronic, chemical … etc.)
Software engineers do not produce anything physical.
It is inherently difficult to monitor an SE project due to
lack of visibility.
Why Process Model
7. By use the process model, we can improve
Development speed (time to market)
Product quality
Project visibility
to understand the requirement
design documents
Risk exposure
communication
Customer relations, etc.
Why Process Model
8. We can borrow ideas from different process models and
create an approach that is suited to the characteristics of
our particular project.
No personal decision.
Principle Of Modelling
9. AD-hoc Software Development
Linear Sequential Development
Evolutionary Development
Agile Philosophy
Domain Of Process Model
10. There are hundreds of different process models
Some are;
waterfall,
bulid-and-fix
Spiral
Rapid prototyping
Unified process (UP)
Agile methods, extreme programming (XP)
COTS
RUP model
Other models…
Type of Process Model
11. Agile is based on evolutionary development.
In evolutionary and agile requirements change with
passage of time.
In evolutionary and agile incremental development.
In evolutionary client may decide to make minor or major
changes or further the existing specification to improve the
software being developed.
Comparison between Evolutionary & Agile
12. In Agile fully iteration delivers fully tested and functional
deliverables.
In agile customer satisfaction by rapid, continuous delivery
of useful software.
In agile working software over comprehensive
documentation.
Comparison between Evolutionary & Agile
13. What is Agile Methodology
Agility: The ability to both create and respond to change in
order to profit in a turbulent business environment.
Agile approaches are typically used in software
development to help businesses respond to
unpredictability.
The two dominant Agile approaches are Scrum and
eXtreme Programming (XP).
15. Introduction To Scrum
Scrum is an Agile Software Development.
Scrum is not an acronym.
Name taken from the sport of Rugby, where everyone in the
team pack acts together to move the ball down the field.
Analogy to development is the team works together to
successfully develop quality software.
17. The Product Owner
The Product Owner represents stakeholders and is
the voice of the customer.
Represents the users
Clearly expresses backlog items
Priortize them.
Ensures visibility
Note:
Scrum teams should have one Product Owner.
May also be a member of the development team.
18. Responsible for delivering a potentially shippable
increment of working software.
Self-organized
Cross functional
Defines practices
4 to 9 persons
The Development Team
19. Responsible for the scrum process
Removes impediments
Facilitates scrum events
Facilitates communication
Scrum Master is not the team
leader, but acts as a buffer
between the team and any
distracting influences.
The Scrum Master
21. Single source of requirements for any changes to be
made to the product.
Living list that is never complete
Ordered: value, risk, priority & necessity
Estimated by the team
Product Backlog
22. The Sprint
Sprint: basic unit of development in Scrum.
Sprint duration: one week to one month;
“Time Boxed" effort of a constant length.
During Sprint, team creates finished portions of a
product. (an increment)
Each sprint is preceded by a planning meeting.
23. What Happens During a Sprint?
What Happens During a Sprint?
Frequent, short Scrum Meetings
Each team produces a visible, usable increment
Each increment builds on prior increments
Clearly defined deliverables and responsibilities
Each team member buys into the assignment
Sprint Goal
sets up minimum success criterion for the Sprint and
keeps the team focused on the broader picture rather
than narrowly on the task at hand.
24. Sprint Backlog
The sprint backlog is
A list of tasks identified by the Scrum team to be completed
during the Scrum sprint.
During the sprint planning meeting, the team selects some
number of product backlog items, usually in the form of user
stories, and identifies the tasks necessary to complete each
user story.
27. The Daily Scrum
15 minute time-boxed event for the Team to
synchronize activities.
What has been accomplished since last meeting?
What will be done before the next meeting?
What obstacles are in the way?
28. The Sprint Review
4 hour time-boxed meeting
Product owner identifies what has been done.
Team discusses what went well, what problems it ran into
& those that were solved.
Team demonstrates what it has done in a demo.
Product owner discusses the backlog as it stands.
Entire group collaborates on what to do next.
29. The Sprint Retrospective
Improves the process.
Inspect how the last Sprint went.
Identify and order the major items that went well and
potential improvements.
Create a plan for implementing improvements.
30. Advantages of SCRUM
Agile scrum helps the company in saving time and money.
Regular feedback from customer.
Improved productivity.
Enhanced customer and client relationships.
Due to short sprints and constant feedback, it becomes
easier to cope (manage) with the changes.
31. Daily meetings make it possible to measure individual
productivity.
This leads to the improvement in the productivity of each of
the team members.
Issues are identified well in advance through the daily
meetings and hence can be resolved in speedily.
It is easier to deliver a quality product in a scheduled time.
Scrum allows clients to change priorities and requirements
quickly.
Advantages of SCRUM
32. Disadvantages of Agile SCRUM:
Agile Scrum is one of the leading causes of scope creep because
unless there is a definite end date, the project management
stakeholders will be tempted to keep demanding new
functionality is delivered.
Scrum is not effective for small projects.
Expensive to implement.
Training Is required. (If the team consists of people who had
little experience, the project cannot be completed in time).
If a task is not well defined, estimating project costs and time
will not be accurate. In such a case, the task can be spread over
several sprints.
33. If the team members are not committed, the project will
either never complete or fail.
It is good for small, fast moving projects as it works well
only with small team.
If any of the team members leave during a development it
can have a huge inverse effect on the project.
Disadvantages of Agile SCRUM:
36. Why Agile?
Agile work well for products that require
constant improvements.
The requirements cannot be gathered completely
in the beginning of the project due to various
factors, continuous customer interaction is very
important to get proper product requirements.
Our project is CMS, where everything is changing, it’s
great, also requirements are changing.
37. According to 2011 CHAOS report from the Standish Group, 14
percent of Waterfall projects are successful, and 42 percent of
Agile projects are successful. Of course 42 percent is a big
improvement over 14 percent, but shouldn't we be doing even
better?
38. Limitations Of Different Process Models
Build and Fix Model
1. Have no design and no design document.
2. It is normally used for small software.
3. Maintenance is difficult or not possible.
Waterfall Model
1. Cannot accommodate changing requirements.
2. Users can only judge quality at the end.
3. Percentage completion of functionality can not be
determined in mid of the project because every
functionality is undergoing some phase.
39. V Model
1. It is rigid i.e. adjusting scope is less.
2. It is not well suited for projects where there is frequent
change in the requirements.
3. No early prototype can be designed as testing goes parallel
with development.
Prototyping Model
1. Too much involvement of client, is not always preferred by
the developer.
2. Too many changes can disturb the rhythm of the
development team.
Limitations Of Different Process Models
40. RAD Model
1. Cant use for large scale projects.
2. Depends on strong team and individual performances for
identifying business requirements.
3. Requires highly skilled developers/designers.
Incremental Model
1. Needs good planning and design.
2. Needs a clear and complete definition of the whole
system before it can be broken down and built
incrementally.
3. Each phase of an iteration is rigid and do not overlap each
other.
Limitations Of Different Process Models
41. Spiral Model & Win Win Sprial
1. Risk analysis requires highly specific expertise.
2. Project’s success is highly dependent on the risk analysis
phase.
3. Doesn’t work well for smaller projects.
4. It is not suitable for low risk projects.
RUP Model
1. On cutting edge projects which utilize new technology,
the reuse of components will not be possible. Hence the
time saving one could have made will be impossible to
fulfill.
2. The development process is too complex and
disorganized.
3. Expert Teams are required.
4. Time consuming because of Documentation.
5. Too Costly.
Limitations Of Different Process Models
42.
43. Why Scrum…. why not XP?
Scrum: easy to adopt, fails quietly. You're more likely to
successfully adopt Scrum.
Extreme Programming: hard to adopt, easier to master,
fails noisily. You're less likely to successfully adopt XP, but
you'll be well positioned for long-term success and mastery.
If you're missing pieces, you'll probably be able to tell.
44.
45. Why Scrum?
Scrum is a lightweight agile project management
framework with broad applicability for managing and
controlling iterative and incremental projects of all types.
Scrum is more high level, focusing on the management of
the project.
It allows to fail quicker. If there’s something spotted that’s
really, really off-base, It can propose to fix it in the next
iteration.
46. Why Scrum?
In Scrum, Focusing on the most valuable and most risky
aspect of the project up front reduce the cost of failure and
therefore give a greater understanding of risk in the
project.
Scrum has garnered increasing popularity in the software
community due to its simplicity, proven productivity, and
ability to act as a wrapper for various engineering practices
promoted by other agile methodologies.
47. Why Scrum?
Improved quality
Defects are discovered and tackled early by including
testing aspects and only software needed by the customer
is developed.
Managing risk
By using small steps and quick feedback (tests, customers)
errors from misunderstandings are quickly addressed.
48. Why Scrum?
More development teams working simultaneously
Then tasks are divided to time boxes (small time frames).
Ownership and Autonomy
During the sprint execution anybody can pick up any task they like.
49. We want to reduce our development costs
Why Scrum?
50. Almost daily communication through short meetings, called
standup meetings/Scrum Daily Meeting.
They report what you are working on yesterday, today and tomorrow
so any issues can be discovered early. The purpose of the meetings is
to encourage further communication offline. Therefore, meetings
are short.
Why Scrum?
51. Why Scrum?
Continuous Improvements
Meetings provide an opportunity to identify and solve the
most critical issues facing the team. It also forces teams to
think harder and uncover less obvious issues before they
become monsters.
52. Focus on what is important
If there’s an issue of the design not working the way
customer want it to, he can negotiate with the developer to
build it in a way that achieves everyone’s goals.
In Scrum, the "Product Owner" works closely with the
team to identify and prioritize system functionality in form
of a “Product Backlog”.
Sometimes, it’s not what you communicate but what you don’t
have to communicate that makes all the difference in the world.
Why Scrum?
53. Fair time estimates:
Since the production team is involved in the estimating of
the Product Backlog cards, the overall time estimate is fair
and square (accurate) due to Burn Chart.
Self organisation
The production team is a self-organised unit that works to
reach the Sprint Goal on time. It Involved in the whole
process & decision making activities giving them a greater
understanding of the value of their work.
Why Scrum?
54. Clients, or product owners, that are intimately aware
of progress and prioritize.
Can see progress almost immediately.
Why Scrum?
55. One of the biggest frustrations of working in software
development is waiting for something to be built. Agile takes
away some of that frustration because instead of developers
waiting until the last three weeks of a three month project to
show results, developers can agree upon delivered features
after the first iteration.
Why Scrum?
74. Burn down chart will keep track of product
development effort remaining in a sprint
X axis will display working days.
Y axis to display remaining Work In Hours.
Ideal effort as a guideline.
Real progress of effort.
Bring an Understanding.
77. Scrum Daily Meeting
All the people participating in the sprint need to
attend the daily scrum.
Three Questions
What did you do?
What will you do today?
What issues do you have?