Agile XP Crystal Development-Updated
Agile XP Crystal Development-Updated
Agile XP Crystal Development-Updated
Software Engineering
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).
3
Agile Methods
Why used?
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?
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)
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
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
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
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/
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
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
◦ Keep details of at least 2 projects (company developed for, type of system etc.
◦ What approach was followed?
◦ What worked, what didn’t work?
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.
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