Agile Methods, Aspects and Virtual Model Driven Engineering David Parsons Massey University...

33
Agile Methods, Aspects and Virtual Model Driven Engineering David Parsons Massey University Auckland, New Zealand
  • date post

    22-Dec-2015
  • Category

    Documents

  • view

    214
  • download

    0

Transcript of Agile Methods, Aspects and Virtual Model Driven Engineering David Parsons Massey University...

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:

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?

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

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• Links to agile paper and workshop materials

http://www.youtube.com/watch?v=xlZIDWHJz1c• 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