3. REQUIREMENTS
Changes
DESIGN
DEVELOPMENT
TESTING
Skipped
MAINTENANCE
Takes too long
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
This approach is highly risky, often more costly and
generally less efficient than Agile approaches
5. Agile Manifesto
Individuals and interactions over
processes and tools
Working software over comprehensive
documentation
Customer collaboration over
contract negotiation
Responding to change over
following a plan
6. Agile Umbrella
Agile
Scrum XP DSDM
Crystal
FDD
Kanban RUP
More Prescriptive
more rules to follow
RUP (120+)
XP (13)
Scrum (9)
Kanban (3)
Do Whatever!! (0)
More Adaptive
and few more…
RUP has over 30 roles, over 20
activities, and over 70 artifacts
fewer rules to follow
7. A light-weight Agile process tool Scrum
Split your organization
into small, cross-functional, self-organizing
teams.
Scrum Team
Product/ Project
Owner
Scrum Master
Split your work into a list of small, concrete deliverables.
Sort the list by priority and estimate the relative effort of each
item.
8. Scrum (contd..)
Split time into short fixed-length iterations/ sprints (usually 2 – 4
weeks), with potentially shippable code demonstrated after each
iteration.
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.
11. 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.
12. Scrum planning example
Total hours of work iteration can
accommodate
8hrs x 5days x 3weeks =
Iteration cycle of 3 weeks
Working hours per day is 8 120hrs
Product backlog of 20 stories
Each story effort is 10 hrs
Iteration backlog or number of stories per iteration
12 user story
13. 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.
14. Visualize the
Limit Work-In-Progress
Kanban Work
Just-in-time (JIT)
Visual Card
Signboard
Measure & Manage Flow
15. Lean approach to Agile development Kanban
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…
16. Kanban (contd…)
Visualize the workflow
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.
Limit WIP (Work In Progress)
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.
17.
18.
19. 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
20. 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.
21. 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.
22. 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.
23. 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!
Editor's Notes
The meanings of the Manifesto items on the left within the agile software development context are described below.
Individuals and Interactions – in agile development, self-organization and motivation are important, as are interactions like co-location and pair programming.Working software – working software will be more useful and welcome than just presenting documents to clients in meetings.Customer collaboration – requirements cannot be fully collected at the beginning of the software development cycle, therefore continuous customer or stakeholder involvement is very important.Responding to change – agile development is focused on quick responses to change and continuous development