Post on 22-Dec-2015
Agile Methods, Aspects and Virtual Model Driven
Engineering
David ParsonsMassey 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 Used Most?
0 20 40 60 80 100 120 140 160
Crystal Clear and FDD
Agile MSF and FDD
XP and Other
Crystal Clear and XP
Agile UP and Scrum
Agile UP and FDD
FDD and Scrum
Agile MSF and XP
Agile UP and XP
XP and Scrum
XP and FDD
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 TechniquesTechniques Number of
respondentsPercentage of
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%
Co-location 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%
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%
Co-location 66 15.71%
Continuous integration 176 41.90%
Pair programming 183 43.57%
Test Driven Design (TDD) 180 42.86%
Does it matter?
Productivity Quality Cost Satisfaction
Full XP 4.25 4.39 2.70 4.07
Partial XP3.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?
1
2
3
4
5
0 1 2 3 4 5 6 7
Number of XP Techniques
Productivity
Quality
Cost
Satisfaction
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
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
Three twenty minute iterations:
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?
AspectOntology
Software System
…Base Code
«by means of»Weaving
Weaver
Static Weaving
…Implementation
0..* is woven in
is enhanced by 0..*
Dynamic Weaving
1..*
realizes
is realized by1..*
1 1
makes
is made by
Concern
is a feature of 0..*
is composed of 1..*
«by means of»Composition Scheme
Composability
is tangled with
0..*
1 1
allows is based on
Spatial Lingual Social
Aspect
AgileOntology
«is guided by»Practice
Phase
Technique
Activity
Agile method
Development Process
*
«is guided by»Principle
*
is dictated by 1..*
may consist of
is carried out using 1..*
is used in 1..*
is part of 1..*
consists of 1..* is carried out using 1..*
Engineering technique
Management technique
Featureaddresses 1..*
Software Systembuilds
comprises *
Lingual SocialSpatial
Unified Ontology
…Implementation
Concern
is tangled with
0..*
Aspect / Feature
Technique
Activity
is carried out using 1..*
is used in 1..*
Engineering technique
Management technique
addresses 1..* Software System
comprises *
Lingual SocialSpatial
Relates to *
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
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• Links to agile paper and workshop materials
http://www.youtube.com/watch?v=xlZIDWHJz1c• YouTube video