Upload
saurabhsinghgkp
View
216
Download
0
Embed Size (px)
Citation preview
7/29/2019 Agile Software Development_v1 3
1/29
7/29/2019 Agile Software Development_v1 3
2/29
Presented by
Sachin Jain
7/29/2019 Agile Software Development_v1 3
3/29
Topics Introduction
Terminology
Terms Glossary Why Agile ?
Agile Software Development
Values of Agile Principles behind Manifesto
Myths of Agile
Agile Methods Conclusion
References
7/29/2019 Agile Software Development_v1 3
4/29
What Is Agile Agile - readiness for motion, nimbleness, activity, dexterity in
motion
Agility - The ability to both create and respond to change in order toprofit in a turbulent business environment
Chaordic
Exhibiting properties of both chaos and order
The blend of chaos and order inherent in the external environment and in
people themselves, argues against the prevailing wisdom about predictabilityand planning
Things get done because people adapt, not because they slavishly followprocesses
7/29/2019 Agile Software Development_v1 3
5/29
Why we need Agile ? Requirements Change
Needs Change
Priorities Change
Schedule Change
Technology Change
Fashion Change
How to deal with Change ?
7/29/2019 Agile Software Development_v1 3
6/29
Agile Software Development Agile software development is a conceptual framework
for software engineering that promotes development
iterations throughout the life-cycle of the project.
Software developed during one unit of time is referred to as
an iteration, which may last from one to four weeks.
Agile methods also emphasize working software as the
primary measure of progress
7/29/2019 Agile Software Development_v1 3
7/29
Agile Software Development: Intro Characteristics of Agile Software Development
-- Light Weighted methodology
-- Small to medium sized teams
-- vague and/or changing requirements
-- vague and/or changing techniques-- Simple design
-- Minimal system into production
7/29/2019 Agile Software Development_v1 3
8/29
7/29/2019 Agile Software Development_v1 3
9/29
Terms Glossary Impediments
Anything that prevents a team member from performing work as efficiently as possible is an
impediment. Each team member has an opportunity to announce impediments during the daily Scrum
meeting.
Product Owner
Product owner is a a person who represents the business or user community and is responsible for
working with the user group to determine what features will be in the product release.
Story
A story is a particular business need assigned to the software development team.
Scrum
Scrum is an iterative and incremental agile software development framework for managing software
projects and product or application development. Its focus is on "a flexible, holistic product
development strategy where a development team works as a unit to reach a common goal" as opposed
to a "traditional, sequential approach
ScrumMaster Scrum is facilitated by a ScrumMaster, who is accountable for removing impediments to the ability of
the team to deliver the sprint goal/deliverables.
Sprint
A sprint is the basic unit of development in Scrum. The sprint is a "timeboxed" effort, i.e. it is restricted
to a specific duration. The duration is fixed in advance for each sprint and is normally between one
week and one month.
7/29/2019 Agile Software Development_v1 3
10/29
Terms Glossary Daily Scrum Meeting
A fifteen-minute daily meeting for each team member to answer three questions:
"What have I done since the last Scrum meeting? (i.e. yesterday)"
"What will I do before the next Scrum meeting? (i.e. today)"
"What prevents me from performing my work as efficiently as possible?
Release
A release is a deployable software package that is culmination of several iterations of development.
Product Backlog
Prioritization of features of products with descriptions of functionality desired. Iterative Development:
Iterative development is a way of breaking down the software development of a large application into
smaller chunks.
Product Owner:
Product owner is a scrum development role for a person who represents the business or usercommunity and is responsible for working with the user group to determine what features will be in
the product release.
7/29/2019 Agile Software Development_v1 3
11/29
Values Agile Software Development
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
7/29/2019 Agile Software Development_v1 3
12/29
Principles behind the Agile
Manifesto Our highest priority is to satisfy the customer through early and
continuous delivery of valuable software.
Welcome changing requirements, even late in development. Agile processes
harness change for the customer's competitive advantage.
Deliver working software frequently, from a couple of weeks to a couple ofmonths, with a preference to the shorter timescale.
Business people and developers must work together daily throughout the
project.
7/29/2019 Agile Software Development_v1 3
13/29
Principles behind the Agile
Manifesto Build projects around motivated individuals.
The most efficient and effective method of conveying information to and
within a development team is face-to-face conversation.
Working software is the primary measure of progress.
Agile processes promote sustainable development.
The sponsors, developers, and users should be able to maintain a constant
pace indefinitely.
7/29/2019 Agile Software Development_v1 3
14/29
Principles behind the Agile
Manifesto Continuous attention to technical excellence and good design enhances
agility.
Simplicity--the art of maximizing the amount of work not done--is essential.
The best architectures, requirements, and designs emerge from self-
organizing teams.
At regular intervals, the team reflects on how to become more effective,
then tunes and adjusts its behavior accordingly.
7/29/2019 Agile Software Development_v1 3
15/29
Agile Myths no design
no testing
no documentation
no idea of progress
poor quality
no plan
auditors wont allow it
7/29/2019 Agile Software Development_v1 3
16/29
Human Factors Competence
Common focus
Collaboration
Decision-making ability
Fuzzy problem-solving ability
Mutual trust and respect
Self-organization
7/29/2019 Agile Software Development_v1 3
17/29
Agile Methods Extreme Programming (XP)
SCRUM
Agile Modeling
Agile Unified Process (AUP)
Crystal Clear and Crystal Methods
Dynamic Systems Development Method (DSDM)
Feature Driven Development (FDD)
GSD
Kanban (development)
Lean software development
Velocity tracking
Tailored
7/29/2019 Agile Software Development_v1 3
18/29
Extreme Programming A system of practices that a community of software
developers is evolving to address the problems of quickly
delivering quality software, and then evolving it to meetchanging business needs.
7/29/2019 Agile Software Development_v1 3
19/29
Agile Unified Process AUP is a simplified version of RUP (Defined by IBM)
Phases of AUP
Inception
Elaboration
Construction
Transition
7/29/2019 Agile Software Development_v1 3
20/29
Scrum Delivering the highest business value in the shortest time.
Rapidly and repeatedly inspect actual working software (every two weeks
to one month).
The business sets the priorities. Our teams self-manage to determine the
best way to deliver the highest priority features.
7/29/2019 Agile Software Development_v1 3
21/29
Process Comparison
7/29/2019 Agile Software Development_v1 3
22/29
Agile in Offshore Dev. - Challenges Customers have limited budgets
Customers do not understand agile development
Customers do not engage as much as some of agiledevelopment frameworks demand
Strict timelines and launch dates
Teams not open to changes
Agile is seen as unorganized process
7/29/2019 Agile Software Development_v1 3
23/29
Agile in Offshore Dev. - SolutionSOLUTION TAILORED AGILE METHODOLOGY
Agile development is a concept and not a methodology
XP, Scrum, AUP are examples of methodologies CMMi and other Engineering disciplines do not suggest a
method. They provide guidelines for agile
Basic planning, documentation and prototyping can upfront The purpose is to increase collaboration, deliver better quality,
perform incremental development and become adaptive to
feedback and features. Any tailored methodology with such
characteristics is agile software development.
7/29/2019 Agile Software Development_v1 3
24/29
Agile in Offshore Dev. - Example Sprint
Capture Initial Requirements
Document Functional Requirements
Prepare a Prototype
Fix Budgets
Prepare Project Plan
Incremental Development Divide Development in Sprints of 1 3 Weeks
Bugs and QA part of Sprint
Deploy with each Sprint
Take customer feedback within 2 working days Incorporate feedback for next sprint
Allow changes in sprint plans based on customer priorities, show stopper bugs
and unexpected issues
7/29/2019 Agile Software Development_v1 3
25/29
Agile in Offshore Dev. - Implementation Educate customer
Educate teams and developers
Tailor the methodology to suit environment Monitor effectiveness
Use tools
Do not give up when challenges arise
7/29/2019 Agile Software Development_v1 3
26/29
Conclusion Agility is about flexibility and leanness.
Promotes feedback based development.
Agility != Lack of Structure.
Agile development is a concept and can be implemented
through different frameworks.
Change of process control from Top-Down to Bottom-
Up
7/29/2019 Agile Software Development_v1 3
27/29
Conclusion a high degree of flexibility
promises a high probability of success
an anticipating culture
increases the sense of urgency
promotes the sharing of knowledge encourages dense communications
facilitates honesty among developers
7/29/2019 Agile Software Development_v1 3
28/29
References [1]. Abrahamsson P, Salo O and Ronkainen J. Agile
software development methods (Review and analysis).
[2]. Scott W Ambler. Agile model driven development. [3]. Cohen D, Lindvall M, Costa P. Agile software
development.
[4]. http://en.wikipedia.org/wiki/Agile_Modeling. [5] http://en.wikipedia.org/wiki/Scrum_28development29.
7/29/2019 Agile Software Development_v1 3
29/29
Questions ?