Agile Process Class

download Agile Process Class

of 46

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