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