Slides for this seminar (PowerPoint)

advertisement
Agile Methods, Aspects and
Virtual Model Driven
Engineering
David Parsons
Massey University
Auckland, New Zealand
Agenda




What it means to be ‘agile’
The ‘agile hour’ workshop
Aspects and agile
Collaborative development in virtual worlds
Agile Methods and Techniques

Analysis of Scott Ambler’s 2006 survey
• Do agile methods have a positive effect?
• Do agile methods work better in combinations?
• What are the most effective methods, individually
•
and in combination
What are the most effective techniques?
Our Observations

Many organisations are using more than
one method
• Is there any point?

Techniques and methods don’t seem to be
used as one might expect
• What is the underlying relationship?
The Data is Deceptive Because




Lots of ‘don’t knows’
Large variations in sample sizes
•
DSDM used by only a handful, Crystal Clear also not a
large sample, misunderstandings of Feature Driven
Development and Test Driven Development
Lots of overlap between methods
Lack of clarity about the relationship between
techniques and methods
•
For example ‘we are doing XP’…
How Many Methods?






4,232 respondents
No agile methods: 2,541
One agile method: 1,019
Two agile methods: 500
Three or more methods: 175
Does this make any difference?
Result 1: Number of Methods




Cost
•
no difference
Productivity
•
significant difference between using no method or using
one
Quality and Satisfaction
•
significant difference between using no method or using
one AND between using one method and using two!
So:
•
•
Use at least one, preferably two
No point using three or more
Result 2: If I Use One, Which
One?





Productivity:
•
There is a significant different between both Crystal Clear and
Scrum, (0.02) and Crystal Clear and XP (0.02)
Quality
•
There is a significant difference between Crystal Clear and XP
(0.03)
Cost
•
There is a significant difference in cost between Crystal Clear
and Scrum (0.02)
Satisfaction
•
There is a significant difference between Crystal Clear and
Scrum (0.023)
So: Maybe use XP or Scrum?
Which Pairs are Agile
Used
Most?
Method Pairs
XP and FDD
XP and Scrum
Agile UP and XP
Agile MSF and XP
FDD and Scrum
Agile UP and FDD
Agile Method Pair
Agile UP and Scrum
Crystal Clear and XP
XP and Other
Agile MSF and FDD
Crystal Clear and FDD
0
20
40
60
80
100
120
140
160
Result 3: If I Use Two, Which
Two

Quality
•
There is a significant difference between the XP/Scrum
combination and all other pairs of methods.
• Only 6 pairs were considered in the sample because the
sample sizes were too small for other combinations.



Productivity
•
There is a significant difference between the top pair (XP
and Scrum) and the lowest three pairs
There was no significant difference in cost
between any pairs of methods
So: Mix XP and Scrum together?
Agile Techniques
Techniques
Number of
Percentage of
respondents
respondents
Active stakeholder participation
938
22.15%
Agile model driven development
260
6.14%
Code refactoring
1,467
34.64%
Code regression testing
1,383
32.66%
447
10.55%
Common coding guidelines
1,595
37.66%
Continuous integration
1,113
26.28%
Database refactoring
416
9.82%
Database regression testing
407
9.61%
Pair programming
587
13.86%
Single sourcing
241
5.69%
Test driven design
959
22.64%
Co-location
What About Techniques?





Not using any agile techniques is significantly worse in terms
of productivity, satisfaction and quality
Only DB regression testing is significantly more expensive
Best techniques for Productivity
•
Co-location, continuous integration, pair programming, test
driven design
Best techniques for Quality
•
Test driven design, pair programming, continuous integration,
Best techniques for Satisfaction
•
Active stakeholder participation, agile model driven
development, test driven design
Are We Doing XP?
Agile Technique used with XP
Number
Percentage of Sample
Active stakeholder
participation
114
27.14%
Code refactoring
269
64.05%
Code regression testing
210
50.00%
66
15.71%
Continuous integration
176
41.90%
Pair programming
183
43.57%
Test Driven Design (TDD)
180
42.86%
Co-location
Does it matter?
Productivity
Full XP
Partial XP
Quality
Cost
Satisfaction
4.25
4.39
2.70
4.07
3.62
3.77
2.63
3.55
Best Practices?

In the XP context, the most effective
techniques appear to be
• Test driven design
• Code refactoring
• Collaborative working
• Stakeholder involvement
• Co-location
How Many Techniques?
5
4
Productivity
Quality
3
Cost
Satisfaction
2
1
0
1
2
3
4
Number of XP Techniques
5
6
7
Tentative Conclusions



Using agile methods and techniques does
appear to be beneficial
It may be useful to combine aspects of XP
and Scrum
These techniques appear to consistently
contribute to better results
•

Co-location, test driven design
More techniques = better?
The Agile Hour Workshop

Explores some of the techniques used
within agile methods
• To try to assess their relative usefulness within a
simulated agile process

In the spirit of :
• Process Miniatures, eXtreme Hour, XP Hour, XP
Game, Planning Game
What Can We Try Out?



The ‘technique’ subset of agile practices
Not so much focus on planning and
estimating
More about what techniques are used
within agile methods
Some Agile Techniques







Active stakeholder participation
Pair programming
Co-location
Refactoring
Regression testing
Common coding guidelines
Continuous integration
Access controlled
by game rules
The Idea



To design a human powered vehicle
To do a process miniature that uses
subsets of the available techniques
To try to assess which techniques may be
the most helpful
The Agile Technique Hour
Three twenty minute iterations:



0 - 5 Minutes - planning
•
User Stories, estimates, prioritize stories
5 -15 Minutes - developing
•
•
•
QA writes acceptance tests
Developers build using subset of techniques
Includes mid-term review
15 - 20 Minutes - reviewing
•
Acceptance testing and review
Spot the Professionals…
Aspects and Agile





There may be some synergy between
aspect oriented development and agile
methods
Late arising requirements changes can be
cross cutting concerns
AOD has an ontology
Agile methods have an (Implied) ontology
Maybe we can map them together?
Aspect
Aspect
Ontology
Spatial
Lingual
…Implementatio
n
Social
is enhanced by 0..*
0..* is woven in
…Base Code
1..*
is realized by
Software
System
1..*
realizes
is made by
«by means of»
Weaving
1
1
Weaver
makes
is a feature of 0..*
is composed of 1..*
Static
Weaving
Dynamic
Weaving
Concern
0..*
is tangled with
«by means of»
Composition Scheme
1
allows
1
is based on
Composability
Agile
Ontology
Agile method
is dictated by 1..*
«is guided by»
Principle
*
builds
Development Process
* may consist of
Software System
is part of 1..*
«is guided by»
Practice
Phase
is carried out using 1..*
comprises *
consists of 1..*
Activity
Feature
addresses 1..*
is used in 1..*
is carried out using 1..*
Technique
Engineering
technique
Lingual
Management
technique
Spatial
Social
Unified Ontology
Software System
comprises *
addresses 1..*
Aspect /
Feature
Activity
is used in 1..*
is carried out using 1..*
Relates to *
Technique
Concern
0..*
is tangled with
…Implementation
Lingual
Engineering
technique
Management
technique
Spatial
Social
Initial Thoughts




A few more iterations required!
The ontology mapping has helped to clarify
the main issues
The semantic challenge is the relationship
between aspects, features and concerns
There is a cognitive leap between aspects
as orthogonal cross cutting concerns and
aspects as core business features
Second Life



One feature of agile methods is
collaborative development
Not easy in a globally distributed team
There is potential to build collaborative
tools in a Multi User Virtual Environment
(MUVE) such as Second Life
Second Life on YouTube
MUVE Model Driven Engineering


Lancaster based project to include Second
Life as a model driven engineering and
testing environment
First step is to explore collaborative
software tools that might support
distributed agile teams.
Useful Links

www.massey.ac.nz/~dpparson

http://www.youtube.com/watch?v=xlZIDWH
Jz1c
• Links to agile paper and workshop materials
• YouTube video
Journals


International Journal of Principles and
Applications in Information Science and
Technology (PAIST) http://www.paist.org
International Journal of Mobile and Blended
Learning http://www.igi-global.com/ijmbl
Download