24
Modern Software Methodologies ADITYA TANEJA (12 CSU 141) KUSHAGRA GUPTA (12 CSU 142)

Modern Software Methodologies(Agile ,Scrum & Lean) + CASE STUDY(Google)

Embed Size (px)

DESCRIPTION

Modern Software Development Methodologies & Case Study (Google)

Citation preview

Page 1: Modern Software Methodologies(Agile ,Scrum & Lean) + CASE STUDY(Google)

Modern Software Methodologies

ADITYA TANEJA (12 CSU 141)

KUSHAGRA GUPTA (12 CSU 142)

Page 2: Modern Software Methodologies(Agile ,Scrum & Lean) + CASE STUDY(Google)

Software Development Processes

History of

Page 3: Modern Software Methodologies(Agile ,Scrum & Lean) + CASE STUDY(Google)

This approach is highly risky, often more costly and

generally less efficient than Agile approaches

REQUIREMENTS

DESIGN

DEVELOPMENT

TESTING

MAINTENANCE

Takes too long

Changes

Skipped

You don’t realize any value until the end of the project

You leave the testing until the end

You don’t seek approval from the stakeholders until late in the day

Page 4: Modern Software Methodologies(Agile ,Scrum & Lean) + CASE STUDY(Google)

AGILEIterative

AdaptableRapid

CooperativeQuality-driven

Not a process, it's a philosophy or set of values

Page 5: Modern Software Methodologies(Agile ,Scrum & Lean) + CASE STUDY(Google)

Individuals and interactions over

processes and tools

Working software over comprehensive

documentation

Customer collaboration over

contract negotiation

Responding to change over

following a plan

Agile Manifesto

Page 6: Modern Software Methodologies(Agile ,Scrum & Lean) + CASE STUDY(Google)

Agile Umbrella

Agile

Crystal

XPScrum DSDMFDD

Kanban RUP

RUP (120+)

XP (13)

Scrum (9)

Kanban (3)

Do Whatever!! (0)

More Prescriptive

More Adaptive

and few more…

RUP has over 30 roles, over 20 activities, and over 70 artifacts

more rules to follow

fewer rules to follow

Page 7: Modern Software Methodologies(Agile ,Scrum & Lean) + CASE STUDY(Google)

ScrumA light-weight Agile process tool

Split your organizationinto small, cross-functional, self-organizing teams.

Split your work into a list of small, concrete deliverables.

Sort the list by priority and estimate the relative effort of each item.

Scrum Team

Scrum Master

Product/ Project Owner

Page 8: Modern Software Methodologies(Agile ,Scrum & Lean) + CASE STUDY(Google)

Split time into short fixed-length iterations/ sprints (usually 2 – 4

weeks), with potentially shippable code demonstrated after each iteration.

Scrum (contd..)

January May

Optimize the release plan and update priorities in

collaboration with the customer, based on insights gained by inspecting the release after each iteration.

Optimize the process by having a retrospective after each

iteration.

Page 9: Modern Software Methodologies(Agile ,Scrum & Lean) + CASE STUDY(Google)

Single Scrum Process

REQUIREMENTS

DESIGN

DEVELOPMENT

TESTING

MAINTENANCE

Page 10: Modern Software Methodologies(Agile ,Scrum & Lean) + CASE STUDY(Google)

Iterative Scrum

Page 11: Modern Software Methodologies(Agile ,Scrum & Lean) + CASE STUDY(Google)

Scrum Terminologies

The project/ product is described as a list of features: the backlog.

The features are described in terms of user stories.

The scrum team estimates the work associated with each story.

Features in the backlog are ranked in order of importance.

Result: A ranked and weighted list of product features, a

roadmap.

Daily scrum meeting to discuss the work done yesterday and

the work to be done today and also the obstacles involved.

Page 12: Modern Software Methodologies(Agile ,Scrum & Lean) + CASE STUDY(Google)

Scrum planning example

Iteration cycle of 3 weeks

Working hours per day is 8 120hrs

Total hours of work iteration can accommodate

8hrs x 5days x 3weeks =

Product backlog of 20 stories

Each story effort is 10 hrs

Iteration backlog or number of stories per iteration

12 user story

Page 13: Modern Software Methodologies(Agile ,Scrum & Lean) + CASE STUDY(Google)

Scrum in a nutshell..

So instead of a large group spending a long time building a

big thing, we have a small team spending a short time building a small thing.

But integrating regularly to see the whole.

Page 14: Modern Software Methodologies(Agile ,Scrum & Lean) + CASE STUDY(Google)

KanbanJust-in-time (JIT)

Visualize the Work

Measure & Manage FlowSignboard

Limit Work-In-Progress

Visual Card

Page 15: Modern Software Methodologies(Agile ,Scrum & Lean) + CASE STUDY(Google)

KanbanLean approach to Agile development

Similar to Scrum in the sense that you focus on features as opposed to groups of features – however Lean takes this

one step further again.

You select, plan, develop, test and deploy one feature (in its simplest form) before you select, plan, develop, test and deploy the next feature.

Aim is to eliminate ‘waste’ wherever possible…

Page 16: Modern Software Methodologies(Agile ,Scrum & Lean) + CASE STUDY(Google)

Kanban (contd…)

Visualize the workflow

Limit WIP (Work In Progress)

Split the work into pieces, write each item on a card and put on the wall.

Use named columns to illustrate where each item is in the workflow.

Assign explicit limits to how many items may be in progress at each stage.

Measure the lead time (average time to complete one

item, sometimes called “cycle time”)

Optimize the process to make lead time as small and predictable as possible.

Page 17: Modern Software Methodologies(Agile ,Scrum & Lean) + CASE STUDY(Google)
Page 18: Modern Software Methodologies(Agile ,Scrum & Lean) + CASE STUDY(Google)
Page 19: Modern Software Methodologies(Agile ,Scrum & Lean) + CASE STUDY(Google)

SDM used by Google Inc.

Google’s Software Development Methodology is similar to

Agile, precisely, it’s

“ Break things & Move Over Fast “

kind of a strategy which is implemented in the following

manner via these tools developed by Google :

Percolator

Dremel

Pregel

Page 20: Modern Software Methodologies(Agile ,Scrum & Lean) + CASE STUDY(Google)

Hadoop(free, Java-based programming framework that supports the processing of large data sets in a distributed computing environment. It is part of the Apache project sponsored by the Apache Software ) traces its origins to Google where two early projects GFS (Google File System) and GMR (Google Map Reduce) were written besides Big Table, to manage large volumes of data. These systems are great at crunching large volumes of data in a distributed computing environment (with commodity servers) in batch mode. Any changes to the data requires streaming over the entire data-set and thus big latency.

Now Google finds itself limited by its own invention of GFS/GMR/BigTable. Hence they have been working on the post-Hadoop set of data crunching tools – Percolator, Dremel, and Pregel.

Page 21: Modern Software Methodologies(Agile ,Scrum & Lean) + CASE STUDY(Google)

Here is a brief narration of each of these tools:

Percolator is a system for incrementally processing updates to a large data set. By replacing a batch-based indexing system with one on incremental processing with Percolator, you significantly speed up the process and reduce analysis time. Percolator’s architecture provides horizontal scalability and resilience. The best candidates for this are large indices where the performance improvement factor can be 100. The big advantage of Percolator is that the indexing time is now proportional to the size of the page, not to the size of the index.

Dremel is for ad-hoc analytics. It is a scalable, interactive ad-hoc query system for analysis of read-only nested data. By combining multi-level execution trees and columnar data layout, it is capable of running aggregation queries over trillion-row tables in seconds. Dremel claims to be about 100 times faster than MapReduce. It’s architecture is similar to Pig and Hive, but instead of MapReduce, it’s engine is based on aggregator trees.

Page 22: Modern Software Methodologies(Agile ,Scrum & Lean) + CASE STUDY(Google)

Pregel is a system for large-scale graph processing and graph data analysis. It is designed to execute graph algorithms faster and API is easy to use. As to be expected Pregel is architected for efficient, scalable, and fault-tolerant implementation on clusters of thousands of commodity computers. Graphs are everywhere –social networks, computer network topologies, games among soccer teams, citations among scientific papers, and the most pervasive graph is the web itself. Pregel is a scalable infrastructure to mine a wide range of graphs and programs are expressed as a sequence of iterations. Google has been using Pregel internally for some time now.

Page 23: Modern Software Methodologies(Agile ,Scrum & Lean) + CASE STUDY(Google)

The 20% Time Rule

Google encourages their employees to devote 20% of their time working on any project they want. The idea is to spur innovation by letting smart people do what they’re interested in.Think about how awesome that is: No matter what your boss tells you, you could take some actual work time to focus on something you find interesting.

Gmail, AdSense, and Google News were supposedly created thanks to this very policy!

Page 24: Modern Software Methodologies(Agile ,Scrum & Lean) + CASE STUDY(Google)