Agile Methods - PowerPoint PPT Presentation

1 / 40
About This Presentation
Title:

Agile Methods

Description:

And successful projects spawned enthusiasts. 7. University of Sunderland. CIFM03. Lecture 6 ... succeed and to help the enthusiasts start Agile projects. ... – PowerPoint PPT presentation

Number of Views:88
Avg rating:3.0/5.0
Slides: 41
Provided by: annec91
Category:

less

Transcript and Presenter's Notes

Title: Agile Methods


1
Agile Methods
  • CIFM03
  • Lecture 6

2
What is Agile Software Development?
  • late 1990's several methodologies gained
    increasing public attention. Theses methodologies
    had a combination of old and new ideas and/or
    transmuted old ideas. These common threads and
    ideas include
  • Close collaboration between the programmer, team
    and business experts
  • Face-to-face communication (considered to be more
    efficient than written documentation)
  • Frequent delivery of new deployable business
    value

3
What is Agile Software Development?
  • Cohesive and self-organizing teams
  • Ways of crafting the code and the team such that
    the inevitable requirements change did not result
    in crises.

4
What is Agile Software Development?
  • The originators and practitioners of these
    methodologies identified what these methodologies
    had in common
  • They coined the word Agile" to name the union of
    these methods
  • And, they developed the Manifesto for Agile
    Software Development.

5
The Manifesto for Agile Software Development
  • Here is the statement of shared development
    values that they identified
  • We are uncovering better ways of developing
    software by doing it and helping others do it.
    Through this work we have come to value
  • Individuals and interactions over processes and
    tools
  • Working software over comprehensive
    documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan
  • That is, while there is value in the items on the
    right, we value the items on the left more.

6
Implementation of the Manifesto Principles
  • http//www.agilemanifesto.org/principles.html
  • Many new Agile projects started
  • some succeeded and some failed
  • There were successes in which business people and
    technical people declared there love for the
    project approach
  • This was the way they wanted software development
    done
  • And successful projects spawned enthusiasts.

7
The Agile Alliance
  • The Agile Alliance was born spawned
  • To satisfy the customer through early and
    continuous delivery of valuable software
  • http//www.agilealliance.org/home

8
The Agile Alliance
  • The Agile Alliance exists to help more Agile
    projects succeed and to help the enthusiasts
    start Agile projects.

9
Agile Alliance
  • Emphasises
  • Face-to-face communication,
  • Visits to a users group and discusions with peers
    about their experiences of Agile methods
  • http//www.agilealliance.org/userGroups/index

10
History
  • http//www.agilemanifesto.org/history.html

11
  Agile Database Techniques
  • Agile Data (AD) methodology (Data Driven)
  • define strategies that apply in a wide variety of
    situations so IT professionals work together
    effectively on the data aspects of software
    systems
  • This gives a one size does not fit all
    methodology
  • And a collection of philosophies that will enable
    IT professionals to work together effectively on
    the data aspects of software-based systems

12
Agile Modelling
  • A practice-based methodology for effective
    modelling and documentation of software-based
    systems
  • A collection of values, principles, and
    practices for modelling software that can be
    applied on a software development project in an
    effective and light-weight manner (without
    overburdening planning and documentation)
  • It is proposed that Agile models are more
    effective than traditional models because they
    are just barely good enough perfection is not
    necessary
  • Agile modelling is applicable to requirements
    collection and analysis, architectural design and
    detailed design

13
Adaptive Software Development (ASD)
  • ASD practices are driven by a belief in
    continuous adaptation
  • Using a different philosophy and a different life
    cycle-geared to accepting continuous change as
    the norm
  • Replacing the static plan-design-build life cycle
    by a dynamic Speculate-Collaborate-Learn life
    cycle
  • Applying a life cycle dedicated to continuous
    learning and oriented to change, re-evaluation,
    predicting (speculating on) an uncertain future
  • And, enabling an intense collaboration among
    developers, management, and customers

14
Adaptive Software Development (ASD)
  • The Speculate-Collaborate-Learn life cycle

15
Speculate
  • Project Initiation, to set the project's mission
  • Establish the Time-Box for the entire project
  • Decide on the number of Iterations through
    project development and assign a time-box to each
    one
  • Develop a theme or objective for each of the
    Iterations
  • Developers and customers both assign features to
    each Iteration

16
Collaborate
  • The Technical Team delivers working software
  • The Project Managers facilitate collaboration and
    concurrent development activities

17
Learn
  • There are FOUR general categories of things to
    learn about at the end of each development
    iteration
  • Resultant Quality from the customer's perspective
  • Resultant Quality from a technical perspective
  • The Functioning of the delivery team and the
    Practices team members are utilizing
  • The project's Status

18
An ASD life cycles Six basic characteristics
  1. Mission focused
  2. Feature based
  3. Iterative
  4. Time-boxed
  5. Risk driven
  6. Change tolerant

19
The Crystal Approach
  • A family of human-powered and adaptive,
    Ultralight, Shrink-to-fit software development
    methodologies
  • A "Human-powered" approach - focused on achieving
    project success through enhancing the work of
    those involved (other methodologies might be
    process-centric, or architecture-centric, or
    tool-centric, but Crystal is people-centric)
  • A Ultralight approach - whatever the project size
    and priorities, a Crystal-family methodology for
    the project will work to reduce the paperwork,
    overhead and bureaucracy to the minimum that is
    practical for the parameters of that project
  • A "Shrink-to-fit - start with something seemingly
    small enough, and work to make it smaller and
    better fitting
  • Crystal - Non-jealous, that is, allows
    substitution of similar elements from other
    methodologies

20
Crystal
  • Crystal combines a self-adapting family of
    Shrink-to-fit, Human-powered software development
    methodologies based on the understanding that
  • Every project needs a different set of policies
    and conventions, or methodology
  • The workings of the project are sensitive to
    people issues, and improve as the people issues
    improve, individuals get better, and their
    teamwork gets better
  • Better communications and frequent deliveries
    communication reduce the need for intermediate
    work products

21
Feature-Driven Development (FDD)
  • FDD starts with creation of a domain object model
    in collaboration with domain experts
  • Using information from modelling and from
    requirements activities the developers create a
    features list
  • Then a rough plan of development is drawn up and
    responsibilities are assigned
  • Then small dynamically formed teams develop the
    features by repeatedly performing design and
    build iterations that last no longer than 2 weeks

22
At this point Dynamic Systems Development Method
(DSDM)
  • The DSDM Lifecycle
  • DSDM is more a framework than a method
  • The Project Process has 7 phases, which are
    repeated during the life-cycle of the project
    (hence making DSDM an iterative and incremental
    method)

23
DSDM
  • Pre-Project phase -- ensures that only the right
    projects are started and that they are set up
    correctly.
  • Feasibility Study -- assessment of whether DSDM
    is the right approach for the project and a
    definition of the problem, assessments of the
    costs and assessment of the technical feasibility
    of delivering a system.

24
DSDM
  • Business Study -- the prime focus of attention is
    on the business processes affected and their
    information needs. Using a series of facilitated
    workshops to quickly gain consensus as to the
    priorities of the development.
  • Functional Model Iteration -- refining the
    business-based aspects of the system.
  • Design and Build Iteration -- is where the system
    is engineered.

25
DSDM
  • Implementation -- covers the cutover from the
    development environment to the operational
    environment.
  • Post-Project -- this phase keeps the solution
    operating effectively.

26
Underlying Principles
  • Clear definition of roles and responsibilities in
    the project
  • Active user involvement is imperative with 4
    defined business roles
  • The team must be empowered to make decisions
  • The focus is on frequent delivery of products,
    which are defined in terms of purpose and quality
    and who's involved in the delivery

27
  • Fitness for business purpose is the essential
    criterion for acceptance of deliverables
  • Iterative and incremental development is
    necessary to converge on an accurate business
    solution
  • All changes during development are reversible
  • Requirements are baselined at a high level
  • Testing is integrated throughout the life-cycle
  • Collaboration and cooperation between all
    stakeholders is essential
  • http//www.agilealliance.org/programs/roadmaps/Roa
    dmap/dsdm/dsdm_index.htm

28
Lean Software Development
  • In the last 25 years, lean thinking has
  • had a tremendous global economic impact
  • transformed how many industries operate by
    changing the way they think about their work and
    their people.
  • Lean works because it produces more wealth by
  • eliminating waste,
  • enabling any given investment of people and
    productive resources to produce more value while
    providing more meaningful, fulfilling work to the
    participants.
  • Lean Software Development applies lean thinking
    to software development contexts.

29
Lean
  • not about what a team does practices it is
    about how a team decides what to do and when to
    do it.
  • starts at the level of principles derived from
    Deming
  • The application of lean thinking principles is
    different in each domain and it maps differently
    to different software development contexts as
    well.
  • Practices appropriate to lean manufacturing or
    lean construction will not necessarily be
    appropriate to software development.

30
Principles (adapted to the software context) are
  • Eliminate Waste - If the customer does not value
    it or if it slows down rapid delivery to the
    customer, it is waste. Don't do it.
  • Amplify Learning - Development is about discovery
    and feedback. Deliver in small batches to
    minimize uncertainty and permit the customer to
    steer.
  • Decide as Late as Possible - Delay commitment.
    Keep options open as long as possible to base
    decisions on the best possible information.

31
  • Deliver as Fast as Possible - The best measure of
    organizational maturity is the speed with which
    it can repeatedly and consistently deliver value.
  • Empower the Team - Teams should design their own
    processes. Provide the training and leadership
    they need.
  • Build Integrity In - Concurrent development
    enables rich communication, the essential
    ingredient for system integrity.
  • See the Whole - Decomposition leads to
    sub-optimization. Focus on overall results.

32
  • Lean Software Development is not a development
    methodology but rather a way to think about
    whatever approach a team uses.
  • Lean Software Development thinking tools support
    team decisions about which practices are
    appropriate in their unique context. Agile
    methods, including Extreme Programming, Scrum,
    DSDM, and Adaptive Software Development, are all
    consistent with the way Lean Software Development
    applies lean thinking to developing software.
  • http//www.agilealliance.org/programs/roadmaps/Roa
    dmap/lean/lean_index.htm

33
Scrum
  • Scrum - an agile, lightweight process that can be
    used to manage and control software and product
    development.
  • Wrapping existing engineering practices,
    including Extreme Programming, Scrum generates
    the benefits of agile development with the
    advantages of a simple implementation.
  • Scrum significantly increases productivity while
    facilitating adaptive, empirical systems
    development.

34
Test-Driven Development
  • craft of producing automated tests for production
    code, and using that process to drive design and
    programming.
  • For every tiny bit of functionality in the
    production code, you first develop a test that
    specifies and validates what the code will do.
  • You then produce exactly as much code as will
    enable that test to pass. Then you refactor
    (simplify and clarify) both the production code
    and the test code.

35
In recipe format the steps of TDD are
  • The first step is to quickly add a test,
    basically just enough code to fail.
  • Next you run your tests, often the complete test
    suite although for sake of speed you may decide
    to run only a subset, to ensure that the new test
    does in fact fail.
  • You then update your functional code to make it
    pass the new tests.
  • The fourth step is to run your tests again. If
    they fail you need to update your functional code
    and retest.
  • Now look for and remove duplication clean up the
    test code (extract common setup into the
    fixture/setUp() split fixtures if they become
    non-cohesive etc.)

36
  • The above sequence is repeated continuously
    throughout the programming process.
  • Each cycle has a duration of minutes, if you're
    not capable to fix a failing test within minutes,
    then throw away the test and the code that you
    wrote to satisfy the test and design a simpler
    test.

37
XBreed
  • XBreed is the product of mixing SCRUM, XP and
    Alexanderian ideas. XBreed is the result of
    developing multiple applications and shared
    components as fast as humanly possible.
    Combining Scrum and XP is very natural
  • Scrum provides a solid management framework,
    while XP provides a basic but complete set of
    engineering practices. The result is a lean but
    very mean (very effective) way to run software
    projects. In addition, Scrum practiced at the
    application team level, and provided a Shared
    Resources Team is involved, can lead to
    reusability.
  • http//www.agilealliance.org/programs/roadmaps/Roa
    dmap/xbreed/xbreed_index.htm

38
XP - eXtreme Programming
  • Extreme Programming is a discipline of software
    development based on values of
  • simplicity,
  • communication,
  • feedback,
  • courage.
  • Brings whole team together in the presence of
    simple practices, with enough feedback to enable
    the team to see where they are and to tune the
    practices to their unique situation.

39
Authors
  • Mike Beedle
  • Arie van Bennekum
  • Alistair Cockburn
  • Ward Cunningham
  • Martin Fowler
  • Jim Highsmith etc
  • http//agilemanifesto.org/authors.html

40
The new methodology
  • Rapidly growing interest in agile (aka
    "lightweight") methodologies.
  • Alternatively characterized as an antidote to
    bureaucracy or a license to hack they've stirred
    up interest all over the software landscape.
  • reasons for agile methods, focusing not so much
    on their weight but on their adaptive nature and
    their people-first orientation.
  • summary and references to the processes in this
    school and consider the factors that should
    influence your choice of whether to go down this
    newly trodden path.
  • http//www.martinfowler.com/articles/newMethodolog
    y.html
Write a Comment
User Comments (0)
About PowerShow.com