Agile Process Class
Transcript of Agile Process Class
-
8/14/2019 Agile Process Class
1/46
08/14/09 1
Agile Software Processes
S.R.Raja SL/MCA
-
8/14/2019 Agile Process Class
2/46
08/14/09 2
An agile view of process Agile -> Active, dynamic and quick
process
Four key issues in agile 1. Self organizing team that have control
over the work they perform 2. Communication and collaboration
between team members and customers
-
8/14/2019 Agile Process Class
3/46
08/14/09 3
An agile view of process..
3. Accepting changes 4. rapid delivery of software that
satisfies the customer
-
8/14/2019 Agile Process Class
4/46
08/14/09 4
What is AGILITY? Agility is a dynamic , content specify,
change embrace and growthoriented .
The following principles are used to achieveagility Our highest priority is to satisfy thecustomer through early and continuousdelivery of valuable software .Changing requirements of customer
needs .
-
8/14/2019 Agile Process Class
5/46
08/14/09 5
AGILITY
Deliver software frequently (couple of weeks shorter time scale )
Business people and developers must worktogether daily throughout the project.
Motivated individuals
Most efficient and effective methodconveying information ( development team ,face to face conversation ).
-
8/14/2019 Agile Process Class
6/46
08/14/09 6
AGILITY.
Working software is the primarymeasure of progress.
Promote sustainable development . Continuous attention to technical
excellence (Studies..) Simplicity to minimize the work is
essential.
-
8/14/2019 Agile Process Class
7/46
08/14/09 7
AGILITY.
The best architectures, requirements,and designs emerge from self conferencing teams .
At regular intervals, the team reflectson how to become more effective.
-
8/14/2019 Agile Process Class
8/46
08/14/09 8
AGILITY.
Agile methods are adaptive rather thanpredictive ;
Agile methods are people-orientedrather than process-oriented ;
-
8/14/2019 Agile Process Class
9/46
08/14/09 9
Agile Characterstics
They deliver software frequently; Every release should work and be
deployable to production; The line between "design" and
"development" is intentionally fuzzy
(Confused) Face to face communication is thedominant form of communication;
-
8/14/2019 Agile Process Class
10/46
08/14/09 10
Characterstics Business people and developers work
closely together; Simplicity , "the art of maximizing the
amount of work not done", is an importantdesign goal; and
The methodology expects, and supports,changes to requirements.
Examples of Agile Methodologies Extreme Programming, SCRUM, FDD etc.
-
8/14/2019 Agile Process Class
11/46
08/14/09 11
Agile Processes
Based on three key assumptions It is difficult to predict in advance which
requirements or customer priorities willchange and which will not For many types of software design and
construction activities are interleaved(construction is used to prove the design)
Analysis, design, and testing are not aspredictable from a planning perspective as onemight like them to be
-
8/14/2019 Agile Process Class
12/46
08/14/09 12
Human factors for Agile software
development Competence Common focus Collaboration Decision-making ability
Fuzzy-problem solving ability Mutual trust and respect Self-organization
-
8/14/2019 Agile Process Class
13/46
08/14/09 13
Human factors for Agile software
development1.Competence Talent, specific software related skills, and
overall knowledge (taught all team members)2.Common focus
- different task , different project ---- to achievesame goal
3.Collaboration- team members and business managerscommunication
-
8/14/2019 Agile Process Class
14/46
08/14/09 14
Human factors for Agile software
development4. Decision-making ability
- any good software team must be allowed.
agile team to freedom to control owndensity.5. Fuzzy-problem solving ability
New problem get the new solution.
-
-
8/14/2019 Agile Process Class
15/46
08/14/09 15
Human factors for Agile software
development6. Mutual trust and respect
- A jelled team exhibits the trust and respectthat the necessary to make them
7. Self organization- 1) work to be done2) best accommodate its local environment
3) organize the work schedule to delivery thesoftware.
-
8/14/2019 Agile Process Class
16/46
08/14/09 16
Agile Process Models
Extreme Programming (XP) Adaptive Software Development (ASD)
Dynamic Systems Development Method(DSDM)
Scrum
Crystal Feature Driven Development (FDD) Agile Modeling (AM)
-
8/14/2019 Agile Process Class
17/46
08/14/09 17
Extreme Programming (XP)
Xp uses an object oriented approach It has four framework activities
1. Planning2. Design
3.Coding4.Testing
-
8/14/2019 Agile Process Class
18/46
08/14/09 18
Extreme Programming (XP)
XP is a used to quickly develop qualitysoftware program to customers.
The goal of this methodology is todeliver what the customer is looking for in the quickest way.
-
8/14/2019 Agile Process Class
19/46
08/14/09 19
Extreme Programming
Planning user stories created and ordered by customer value Xp team assess each story and assign cost 1. All stories will be implemented immediately 2. The stories with highest value will be moved in
the schedule and implemented first 3. The riskiest stories will be moved up in the
schedule and implemented first
-
8/14/2019 Agile Process Class
20/46
08/14/09 20
Extreme Programming.
Project velocity is the number of customer stories
implemented during the first release Project velocity can be used in
1. Help estimate delivery dates andschedule for subsequent release and
2. determine whether an over commitment has been made for all stories across theentire development project.
-
8/14/2019 Agile Process Class
21/46
08/14/09 21
Extreme Programming. Design
Xp design follows the KIS (keep it simple) principle Xp use of CRC cards (class responsibility
collaborator) for simple OO context CRC cards and design prototypes are only work
products Spike Solution if a difficult problem is encountered in a design
story, Xp recommends the immediate creation of operational prototype of that portion of the design encourages use of refactoring process of
changing the softwaqre system .
-
8/14/2019 Agile Process Class
22/46
08/14/09 22
Extreme Programming ..
Coding emphasizes use of pairs programming to
create story code Unit testing is performed for every release
of software increment.
continuous integration and smoke testing isutilized
-
8/14/2019 Agile Process Class
23/46
08/14/09 23
Extreme Programming ..
Testing focuses on unit tests to exercise stories
unit tests created before coding are implementedusing an automated testing framework toencourage use of regression testing
integration and validation testing done on daily
basis acceptance tests focus on system features andfunctions viewable by the customer
-
8/14/2019 Agile Process Class
24/46
08/14/09 24
Extreme Programming A collection of best
practices each done tothe extreme
Sounds extreme, but verydisciplined
Created by Kent Beck,Ward Cunningham, RonJeffries
-
8/14/2019 Agile Process Class
25/46
08/14/09 25
Adaptive Software Development
Features ASD as a technique for building
complex software and systems .
ASD focus on human collaboration andSelf-organization .
ASD life cycle
1. Speculation2. Collaboration3.Learing
-
8/14/2019 Agile Process Class
26/46
08/14/09 26
Adaptive Software Development - 1
SpeculationThe word speculate refers to the planning.
project initiated risk driven adaptive cycle planning takesplace
Collaboration requires teamwork from a jelled team. joint application development is preferred
requirements gathering approach
-
8/14/2019 Agile Process Class
27/46
08/14/09 27
Adaptive Software Development - 2
Learning components implemented and tested
focus groups provide feedback formal technical reviews Postmortems
D i S t
-
8/14/2019 Agile Process Class
28/46
08/14/09 28
Dynamic SystemsDevelopment Method
Provides a framework for building andmaintaining systems which meet tight timeconstraints using incremental prototyping
Uses Pareto principle (80% of project can bedelivered in 20% required to deliver the entire
project) It suggests an iterative software process. Each increment only delivers enough functionality
to move to the next increment. Uses time boxes to fix time and resources to
determine how much functionality will bedelivered in each increment
D i S D l
-
8/14/2019 Agile Process Class
29/46
08/14/09 29
Dynamic Systems DevelopmentMethod Life Cycle
Three life cycle for iterative and two additionallife cycle for activities
Feasibility study establishes basic business requirements and
constraints Business study
establishes functional and informationrequirements needed to provide businessvalue
Functional model iteration produces set of incremental prototypes to
demonstrate functionality to customer
-
8/14/2019 Agile Process Class
30/46
08/14/09 30
Dynamic Systems Development
Method Life Cycle . Design and build iteration
revisits prototypes to ensure they provide
business value for end users may occur concurrently with functional
model iteration
Implementation latest iteration placed in operational
environment
-
8/14/2019 Agile Process Class
31/46
08/14/09 31
Scrum Principles
Small working teams used to maximizecommunication and minimize overhead andmaximize sharing
Process must be adaptable to both technical andbusiness changes to ensure best possible product isproduced.
Process yields frequent increments that can beinspected, adjusted, tested, documented and built on
Development work and people performing it arepartitioned into clean, low coupling partitions
Testing and documentation is performed as theproduct is built Ability to declare the product done whenever required
-
8/14/2019 Agile Process Class
32/46
-
8/14/2019 Agile Process Class
33/46
08/14/09 33
Scrum Principles
Within each framework activity , work tasksoccur within a process pattern called asprint
The work conducted within a sprint ,is adopted to problem at hand and isdefined and often modified in realtime by the scrum team
Figure
-
8/14/2019 Agile Process Class
34/46
08/14/09 34
-
8/14/2019 Agile Process Class
35/46
08/14/09 35
Scrum Principles
Scrum use a set of software processpatterns that have proven effective for projects with tight timelines, changingrequirements and business critically.
-
8/14/2019 Agile Process Class
36/46
08/14/09 36
Scrum
Backlog prioritized list of requirements or features the
provide business value to customer. items can be added at any time (changes are
introduced). Sprints
work units required to achieve one of the backlogitems must fit into a predefined time-box (30 days)
affected backlog items frozen (changes are notintroduced during the sprint)
-
8/14/2019 Agile Process Class
37/46
08/14/09 37
Scrum
Scrum meetings 15 minute daily meetings
what was done since last meeting? what obstacles were encountered? what will be done by the next meeting?
Demos deliver software increment to customer for
evaluation
-
8/14/2019 Agile Process Class
38/46
08/14/09 38
Scrum Term in rugby to get an out-
of-play ball back into play Term used in Japan in 1987
to describe hyper-productive development
Used by Ken Schwaber andMike Beedle to describetheir Agile methodology
-
8/14/2019 Agile Process Class
39/46
08/14/09 39
Scrum with Extreme
Programming
EXTREMEPROGRAMMING
Mostly Technical Best Practices
SCRUMProject Management
Best Practices
Scrum workswell as awrapper aroundExtremeProgramming
-
8/14/2019 Agile Process Class
40/46
08/14/09 40
Crystal
Scrum use a set of software processpatterns that have proven effective for projects with tight timelines, changingrequirements and business critically.
-
8/14/2019 Agile Process Class
41/46
08/14/09 41
Scrum Principles
Scrum use a set of software processpatterns that have proven effective for projects with tight timelines, changingrequirements and business critically.
-
8/14/2019 Agile Process Class
42/46
08/14/09 42
Feature Driven Philosophy
Emphasizes collaboration among team members Manages problem and project complexity using
feature-based decomposition followed integration of software increments
Technical communication using verbal, graphical,and textual means
Software quality encouraged by using incrementaldevelopment, design and code inspections, SQAaudits, metric collection, and use of patterns(analysis, design, construction)
-
8/14/2019 Agile Process Class
43/46
08/14/09 43
-
8/14/2019 Agile Process Class
44/46
08/14/09 44
Feature Driven Design - 1
Develop overall model contains set of classes depicting business model of
application to be built
Build features list features extracted from domain model features are categorized and prioritized work is broken up into two week chunks
Plan by feature features assessed based on priority, effort, technical issues,
schedule dependencies
-
8/14/2019 Agile Process Class
45/46
08/14/09 45
Feature Driven Design - 2
Design by feature classes relevant to feature are chosen class and method prologs are written
preliminary design detail developed owner assigned to each class owner responsible for maintaining design document for his
or her own work packages
Build by feature class owner translates design into source code and
performs unit testing integration performed by chief programmer
-
8/14/2019 Agile Process Class
46/46
08/14/09 46
Crystal