Agile XP Crystal Development-Updated

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 36

Measures and Models for

Software Engineering

Agile Methods – XP and Crystal

Dr Martina A. Doolan
Dr Yar Muhammad

1
An overview of the
session
What is Agile Development?
An overview of Agile Methods
Examples of Agile Methodologies
What is Extreme Programming?
What is the Crystal Framework/Methodology?
Agile Methods Activity
Extreme Programming Activity
Additional Exercises and Reading

2
Agile Methods
What are they?
Incremental (RAD) development and delivery
Agile methods are all built on incremental development (i.e.
incremental models).

The difference is the processes they use to achieve the end


result / the product.
Focus on writing of the software rather than the design
itself

3
Agile Methods
Why used?

An alternative to the ‘heavyweight, plan-based


development approach’ that dominates the
development process
For small and medium-sized business systems
Focus on ‘software’ rather than design and
documentation
Systems that are not critical, long-lived, need
coordination of multiple development teams or with
dispersed maintenance

4
Agile Methods
Principles of Agile methods (Sommerville p. 397)

Customer involvement
Incremental delivery
People not process
Embrace change
Maintain simplicity

5
What Is Agile
Methodology?

https://youtu.be/8eVXTyIZ1Hs

6
Agile Methods - Examples of?

Extreme Programming – Beck 1999


Scrum – Schwaber & Beedle 2001
Crystal – Cockburn 2001
Adaptive Software Development – Highsmith 2000
DSDM – Stapleton 1997
Feature Driven Development – Palmer and Felsing 2002

7
eXtreme Programming (XP)
introduced

What is XP
“XP is a lightweight methodology for small to medium-sized
teams developing software in the face of vague or rapidly
changing requirements”
Kent Beck
Key practices include:
 Customer involvement in development and its management
 Pair programming
 Emphasis on simplicity
 Testing all the time
8`
Release planning (1-3 months)

Releases are small and frequent (1st release identifies metaphor as


the basis of architecture
Customer writes stories
Programmers estimate stories (in ideal weeks or story points, if
too big break it down)
Customer prioritizes story/stories
Programmers state development velocity ( a metric of work done)
Customer chooses release scope

9
System as metaphor
What?
need an agreed metaphor (image) for the system (a familiar
thing or concept)
Which describes an approach to the solution
Why?
Provides a common vision of the system for developers and
customers to “pull up your socks”, and “drowning in paper”!
Identifies shared structure, vocabulary
Provides a basis for system architecture
Brings out issues, problems, solutions
10
Iteration (1-3 weeks)
Planning
Select stories to fit iteration time/people
Brainstorm to divide stories into tasks
Programmers choose tasks they want to do
If it fits, start work

Doing
Customer: writes acceptance tests
Programmers
code acceptance tests
refactor system to match new demands
implement stories
integrate completed stories
Customer: run acceptance test once/day, publish results

11
Iteration (1-3 weeks) –
cont.
Designing in XP
keep it as simple as possible
no functionality is added early
refactor whenever and wherever possible
Coding in XP the customer is always available
code must be written to agreed standards
all code is pair-programmed
only one pair integrates code at a time
integrate tests often, to check for breaks
use collective code ownership
no overtime

12
Testing in XP

All code must have unit tests


All code must pass all unit tests before it can be released
When a bug is found, (new) tests are created to test for re-
emergence
Acceptance tests are run often
Use automating testing environments, e.g. JUnit

13
Pair Programming
What?
two programmers, one computer
 One-person programming
 Others keeping a higher-level viewpoint
switch roles a few times per session
may need to be a ‘may I drive’ protocol

Why?
allows both high-level and low-level views
can help partner in context
mutual training built-in
can remind partner if something forgotten
reduces egoism as ‘person code ownership’

14
Refactoring
What?
Overview
Reworking class structure/details to make further changes easier
Improving system design and code without changing external behavior
Place in XP
Continuous (re)design during development
Objectives
Clean up design
Refine class hierarchies
Delete code no longer needed
Reverse problem of design decay

15
Refactoring

Use predefined process, refactoring process


Do a refactoring
Run unit tests to ensure behaviour has not changed
… and iterate until the design is OK:
passes tests
no duplications
communicates intent well
has as few classes/methods as possible

16
Code Refactoring
the process of restructuring existing computer code—
changing the factoring—without changing its external
behaviour.
Refactoring improves non-functional attributes of
the software.
Advantages include improved code readability and
reduced complexity; these can improve source-
code maintainability and create a more expressive
internal architecture or object model to
improve extensibility.

17
XP - Extreme Programming
& Agile and Lean
Frameworks

https://youtu.be/6o6QVDlfaCU

18
Why Refactor?

Improve design
Make the system easier to understand
Make the system easier to modify
Improve performance
Find bugs

19
Why ‘eXtreme’?
Code reviews: pair programming
Testing: test all the time (including customers)
Design : rework by refactoring; must not limit development
Simplicity: as simple as will work (= meet the tests)
Architecture: metaphor (image), not millstone
Integration testing: integrate/test several time a day
Short iterations: plan days or less using the times planning game

20
Advantages of XP

Moving programmers around


Spreads knowledge
Reduces dependence on key individuals
Supports inexperienced programmers
Priorities
Frequent releases and on-site user: can react quickly to changing user
needs
Simplest possible code produced
Integrated code is user-tested

21
Disadvantages of XP
Emphasises ‘programmer as hero’
may lead to failures with too many inexperienced programmers?
can all people work well in pairs?
Refactoring
may lead to sub-optimal structure, excessive rework
continually changing priorities
Possible management view
process seen as undisciplined
relies on good discipline by programmers
not a ‘management’ process
too much autonomy for programmers
relies on user rep maintaining user standpoint

22
Crystal – Agile
Framework
Methodology invented by Alistair Cockburn pre-
1988
‘Lightweight’ and ‘colour coded’
Focuses on individuals and their interactions.
Large projects use crystal sapphire or crystal
diamond
Small projects use crystal clear (team size 1-6) or
crystal yellow methods (team size 7-20).

23
Crystal Colour Coded
Source: https://www.geeksforgeeks.org/crystal-methods-in-agile-development-framework/

Crystal Orange split according to functional skills.


Project duration 1-2 years, release every 3 to 4
months.
Crystal Red- teams can be formed and divided
according to requirements.
Crystal Maroon- large-sized projects, various
methods used as per the requirement.

24
Crystal Framework
Roles include Sponsor, Senior Designer and Programmer
Frequent delivery
Osmotic communication
Personal Safety
Focus on work
Teamwork
Access to expert users
Customer involvement
Incremental delivery and timeboxing
Automated testing

25
Source: Internet

26
Crystal - Agile
Frameworks from the
Agile Practice Guide

https://youtu.be/II2Q5HPWH1U

27
Agile Methods –
Activity

1. Research Agile XP and Crystal


2. What are they?
3. Why used?
4. Key principles of these approaches?
5. Find examples of different agile methods?
6. What is the technological and Business rationale for their
inception?

28
Extreme
Programming (XP)

1. What is it?
2. Key Processes & Practices
3. Critique
4. Write a short overview (<200 words) and include
references to the key processes and practices
5. Write a short critique (<200 words) – advantages and
disadvantages (provide full references)

29
Crystal Methodology
1. Describe the principal features of the Crystal methodology.
2. State the category of process model to which Crystal
belongs.
3. Write a short overview of crystal (<200 words) and include
references to the key processes and practices
4. Write a short critique (<200 words) – advantages and
disadvantages (provide full references)
5. Discuss the technological and Business rationale for its
inception?

30
RAD & AGILE Reading and
Research

Read Sommerville course text book

Research projects that have used an Agile approach.

◦ Keep details of at least 2 projects (company developed for, type of system etc.
◦ What approach was followed?
◦ What worked, what didn’t work?

Keep bibliography of sources, remember to use the Harvard


Referencing system

31
XP: sources
books/journals
◦ IEEE Software; Nov/Dec 2001 special issue on XP: available electronically via Voyag
◦ Extreme Programming Explored; WC Wake; Addison Wesley; 2002
◦ Refactoring; Martin Fowler; Addison-Wesley; 1999
websites
◦ what’s it all about?
◦ www.extremeprogramming.org/
◦ FAQ
◦ www.jera.com/techinfo/xpfaq.html
◦ testing framework
◦ http://www.junit.org/
◦ As part of your own research find others…

32
Exercise
Explain how the principles underlying agile
methods lead to the accelerated development and
deployment of software.

Discuss why is it necessary to introduce some


methods and documentation from plan-based
approaches when scaling agile methods to larger
projects that are developed by distributed
development teams.

33
Exercise
Extreme programming expresses user
requirements as stories, with each story
written on a card.
Discuss the advantages and disadvantages of
this approach to requirements description.

34
Exercise
Compare and contrast the Scrum approach to project
management with conventional plan-based approaches i.e.
the Waterfall model.
Your comparison should be based on the effectiveness of
each approach for planning the allocation of people to
projects, estimating the cost of projects, maintaining team
cohesion and managing changes in project team
membership.

35
Exercise
One of the problems of having a user closely involved with a
software development team is that they adopt the outlook
of the development team and lose sight of the needs of
their (user) colleagues.
1. Suggest three ways to avoid this problem.
2. For each discuss the advantages and disadvantages

36

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy