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.
 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
 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
 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
 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
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
 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
AD-hoc Software Development
 Linear Sequential Development
Evolutionary Development
Agile Philosophy
Domain Of Process Model
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
 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
 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
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).
What is Agile Methodology
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.
SCRUM Methodology
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.
Responsible for delivering a potentially shippable
increment of working software.
Self-organized
Cross functional
Defines practices
4 to 9 persons
The Development Team
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
Product Backlog
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
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.
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.
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.
Sprint Backlog
Meetings
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?
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.
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.
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.
 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
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.
 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:
Project To Built
Agile
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.
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?
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.
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
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
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
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.
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.
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.
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.
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.
 We want to reduce our development costs
Why Scrum?
 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?
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.
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?
 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?
Clients, or product owners, that are intimately aware
of progress and prioritize.
Can see progress almost immediately.
Why Scrum?
 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?
Collecting Information
Peoples Involved
User Representative or Stake Holder
Scrum Master
End User
Developing Team
Requirements And Wishes
Requirement Finalized By User Representative
Scrum Master & Developing Teams
Release Backlog
Release Backlog
Prioritizing Backlog
Dividing In Smaller Chunks
Further Dividing
Further Dividing
Work Distribution
Work Distribution
Work Distribution
Working In Sprints
On Time Completion
Late Completion
Burn down Chart
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.
Burn down Chart
Early Completion Of Project
Burn down Chart
Early Completion Of Project
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?
Daily Meet up
Bugs Fixing
Early Completion Of Project
THANK YOU
Software Development Process Models (SCRUM Methodology)

Software Development Process Models (SCRUM Methodology)

  • 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 helpsus 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 theproject 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 theprocess 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 canborrow 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 hundredsof 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 isbased 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 Agilefully 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 AgileMethodology  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).
  • 14.
    What is AgileMethodology
  • 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.
  • 16.
  • 17.
    The Product Owner TheProduct 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 deliveringa potentially shippable increment of working software. Self-organized Cross functional Defines practices 4 to 9 persons The Development Team
  • 19.
    Responsible for thescrum 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
  • 20.
  • 21.
    Single source ofrequirements 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 Duringa 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 sprintbacklog 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.
  • 25.
  • 26.
  • 27.
    The Daily Scrum 15minute 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 4hour 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 Improvesthe 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 meetingsmake 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 AgileSCRUM:  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 theteam 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:
  • 34.
  • 35.
  • 36.
    Why Agile?  Agilework 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 2011CHAOS 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 DifferentProcess 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. Itis 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. Cantuse 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
  • 43.
    Why Scrum…. whynot 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.
  • 45.
    Why Scrum?  Scrumis 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?  InScrum, 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?  Improvedquality 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?  Moredevelopment 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 wantto reduce our development costs Why Scrum?
  • 50.
     Almost dailycommunication 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?  ContinuousImprovements 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 whatis 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 timeestimates: 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 productowners, that are intimately aware of progress and prioritize. Can see progress almost immediately. Why Scrum?
  • 55.
     One ofthe 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?
  • 56.
  • 57.
    Peoples Involved User Representativeor Stake Holder Scrum Master End User Developing Team
  • 58.
  • 59.
    Requirement Finalized ByUser Representative
  • 60.
    Scrum Master &Developing Teams
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
    Burn down chartwill 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.
  • 75.
    Burn down Chart EarlyCompletion Of Project
  • 76.
    Burn down Chart EarlyCompletion Of Project
  • 77.
    Scrum Daily Meeting Allthe 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?
  • 78.
  • 79.
  • 80.

Editor's Notes

  • #49 More development teams working simultaneously