Software Development Process Models (SCRUM Methodology)

80
Software Development Process Models

description

SCRUM Methodology

Transcript of Software Development Process Models (SCRUM Methodology)

Page 1: Software Development Process Models (SCRUM Methodology)

Software Development Process Models

Page 2: Software Development Process Models (SCRUM Methodology)

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.

Page 3: Software Development Process Models (SCRUM Methodology)

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

Page 4: Software Development Process Models (SCRUM Methodology)

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

Page 5: Software Development Process Models (SCRUM Methodology)

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

Page 6: Software Development Process Models (SCRUM Methodology)

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

Page 7: Software Development Process Models (SCRUM Methodology)

By use the process model, we can improveDevelopment speed (time to market)Product qualityProject visibility

to understand the requirement design documents

Risk exposurecommunicationCustomer relations, etc.

Why Process Model

Page 8: Software Development Process Models (SCRUM Methodology)

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

Page 9: Software Development Process Models (SCRUM Methodology)

AD-hoc Software Development

Linear Sequential Development

Evolutionary Development

Agile Philosophy

Domain Of Process Model

Page 10: Software Development Process Models (SCRUM Methodology)

There are hundreds of different process models Some are;waterfall,bulid-and-fixSpiralRapid prototypingUnified process (UP)Agile methods, extreme programming (XP)COTSRUP modelOther models…

Type of Process Model

Page 11: Software Development Process Models (SCRUM Methodology)

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

Page 12: Software Development Process Models (SCRUM Methodology)

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

Page 13: Software Development Process Models (SCRUM Methodology)

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).

Page 14: Software Development Process Models (SCRUM Methodology)

What is Agile Methodology

Page 15: Software Development Process Models (SCRUM 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.

Page 16: Software Development Process Models (SCRUM Methodology)

SCRUM Methodology

Page 17: Software Development Process Models (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.

Page 18: Software Development Process Models (SCRUM Methodology)

Responsible for delivering a potentially shippableincrement of working software.Self-organizedCross functionalDefines practices4 to 9 persons

The Development Team

Page 19: Software Development Process Models (SCRUM Methodology)

Responsible for the scrum process

Removes impedimentsFacilitates scrum eventsFacilitates communication

Scrum Master is not the team leader, but acts as a buffer between the team and any distracting influences.

The Scrum Master

Page 20: Software Development Process Models (SCRUM Methodology)

Product Backlog

Page 21: Software Development Process Models (SCRUM Methodology)

Single source of requirements for any changes to bemade to the product.

Living list that is never complete Ordered: value, risk, priority & necessity Estimated by the team

Product Backlog

Page 22: Software Development Process Models (SCRUM Methodology)

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.

Page 23: Software Development Process Models (SCRUM Methodology)

What Happens During a Sprint?

What Happens During a Sprint? Frequent, short Scrum Meetings Each team produces a visible, usable incrementEach increment builds on prior incrementsClearly defined deliverables and responsibilitiesEach 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.

Page 24: Software Development Process Models (SCRUM Methodology)

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.

Page 25: Software Development Process Models (SCRUM Methodology)

Sprint Backlog

Page 26: Software Development Process Models (SCRUM Methodology)

Meetings

Page 27: Software Development Process Models (SCRUM Methodology)

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?

Page 28: Software Development Process Models (SCRUM Methodology)

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.

Page 29: Software Development Process Models (SCRUM Methodology)

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.

Page 30: Software Development Process Models (SCRUM Methodology)

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.

Page 31: Software Development Process Models (SCRUM Methodology)

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

Page 32: Software Development Process Models (SCRUM Methodology)

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.

Page 33: Software Development Process Models (SCRUM Methodology)

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:

Page 34: Software Development Process Models (SCRUM Methodology)

Project To Built

Page 35: Software Development Process Models (SCRUM Methodology)

Agile

Page 36: Software Development Process Models (SCRUM Methodology)

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.

Page 37: Software Development Process Models (SCRUM Methodology)

 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?

Page 38: Software Development Process Models (SCRUM Methodology)

Limitations Of Different Process Models

Build and Fix Model1. Have no design and no design document.2. It is normally used for small software.3. Maintenance is difficult or not possible.

Waterfall Model4. Cannot accommodate changing requirements.5. Users can only judge quality at the end.6. Percentage completion of functionality can not

be determined in mid of the project because every functionality is undergoing some phase.

Page 39: Software Development Process Models (SCRUM Methodology)

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 Model4. Too much involvement of client, is not always

preferred by the developer.5. Too many changes can disturb the rhythm of the

development team.

Limitations Of Different Process Models

Page 40: Software Development Process Models (SCRUM Methodology)

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 4. Needs good planning and design.5. Needs a clear and complete definition of the

whole system before it can be broken down and built incrementally.

6. Each phase of an iteration is rigid and do not overlap each other.

Limitations Of Different Process Models

Page 41: Software Development Process Models (SCRUM Methodology)

Spiral Model & Win Win Sprial1. 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 Model5. 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.

6. The development process is too complex and disorganized.

7. Expert Teams are required.8. Time consuming because of Documentation.9. Too Costly.

Limitations Of Different Process Models

Page 42: Software Development Process Models (SCRUM Methodology)
Page 43: Software Development Process Models (SCRUM Methodology)

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.

Page 44: Software Development Process Models (SCRUM Methodology)
Page 45: Software Development Process Models (SCRUM Methodology)

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.

Page 46: Software Development Process Models (SCRUM Methodology)

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.

Page 47: Software Development Process Models (SCRUM Methodology)

Why Scrum? Improved quality

Defects are discovered and tackled early by including testing aspects and only software needed by the customer is developed.

Managing riskBy using small steps and quick feedback (tests, customers) errors from misunderstandings are quickly addressed.

Page 48: Software Development Process Models (SCRUM Methodology)

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.

Page 49: Software Development Process Models (SCRUM Methodology)

We want to reduce our development costs

Why Scrum?

Page 50: Software Development Process Models (SCRUM Methodology)

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?

Page 51: Software Development Process Models (SCRUM Methodology)

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.

Page 52: Software Development Process Models (SCRUM Methodology)

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?

Page 53: Software Development Process Models (SCRUM Methodology)

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 organisationThe 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?

Page 54: Software Development Process Models (SCRUM Methodology)

Clients, or product owners, that are intimately aware of progress and prioritize.

Can see progress almost immediately.

Why Scrum?

Page 55: Software Development Process Models (SCRUM Methodology)

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?

Page 56: Software Development Process Models (SCRUM Methodology)

Collecting Information

Page 57: Software Development Process Models (SCRUM Methodology)

Peoples Involved User Representative or Stake Holder

Scrum Master

End User

Developing Team

Page 58: Software Development Process Models (SCRUM Methodology)

Requirements And Wishes

Page 59: Software Development Process Models (SCRUM Methodology)

Requirement Finalized By User Representative 

Page 60: Software Development Process Models (SCRUM Methodology)

Scrum Master & Developing Teams

Page 61: Software Development Process Models (SCRUM Methodology)

Release Backlog

Page 62: Software Development Process Models (SCRUM Methodology)

Release Backlog

Page 63: Software Development Process Models (SCRUM Methodology)

Prioritizing Backlog

Page 64: Software Development Process Models (SCRUM Methodology)

Dividing In Smaller Chunks

Page 65: Software Development Process Models (SCRUM Methodology)

Further Dividing 

Page 66: Software Development Process Models (SCRUM Methodology)

Further Dividing 

Page 67: Software Development Process Models (SCRUM Methodology)

Work Distribution

Page 68: Software Development Process Models (SCRUM Methodology)

Work Distribution

Page 69: Software Development Process Models (SCRUM Methodology)

Work Distribution

Page 70: Software Development Process Models (SCRUM Methodology)

Working In Sprints

Page 71: Software Development Process Models (SCRUM Methodology)

On Time Completion 

Page 72: Software Development Process Models (SCRUM Methodology)

Late Completion 

Page 73: Software Development Process Models (SCRUM Methodology)

Burn down Chart

Page 74: Software Development Process Models (SCRUM Methodology)

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.

Page 75: Software Development Process Models (SCRUM Methodology)

Burn down Chart

Early Completion Of Project

Page 76: Software Development Process Models (SCRUM Methodology)

Burn down Chart

Early Completion Of Project

Page 77: Software Development Process Models (SCRUM Methodology)

Scrum Daily MeetingAll the people participating in the sprint need

to attend the daily scrum.

Three QuestionsWhat did you do?What will you do today?What issues do you have?

Page 78: Software Development Process Models (SCRUM Methodology)

Daily Meet up

Page 79: Software Development Process Models (SCRUM Methodology)

Bugs Fixing

Early Completion Of Project

Page 80: Software Development Process Models (SCRUM Methodology)

THANK YOU